"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "server/etcdserver/util_test.go" between
etcd-3.5.6.tar.gz and etcd-3.5.7.tar.gz

About: etcd is a distributed reliable key-value store for the most critical data of a distributed system (written in "Go").

util_test.go  (etcd-3.5.6):util_test.go  (etcd-3.5.7)
skipping to change at line 23 skipping to change at line 23
// limitations under the License. // limitations under the License.
package etcdserver package etcdserver
import ( import (
"net/http" "net/http"
"testing" "testing"
"time" "time"
"go.uber.org/zap" "go.uber.org/zap"
"go.uber.org/zap/zaptest"
pb "go.etcd.io/etcd/api/v3/etcdserverpb"
"go.etcd.io/etcd/client/pkg/v3/types" "go.etcd.io/etcd/client/pkg/v3/types"
"go.etcd.io/etcd/raft/v3/raftpb" "go.etcd.io/etcd/raft/v3/raftpb"
"go.etcd.io/etcd/server/v3/etcdserver/api/membership" "go.etcd.io/etcd/server/v3/etcdserver/api/membership"
"go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp" "go.etcd.io/etcd/server/v3/etcdserver/api/rafthttp"
"go.etcd.io/etcd/server/v3/etcdserver/api/snap" "go.etcd.io/etcd/server/v3/etcdserver/api/snap"
) )
func TestLongestConnected(t *testing.T) { func TestLongestConnected(t *testing.T) {
umap, err := types.NewURLsMap("mem1=http://10.1:2379,mem2=http://10.2:237 9,mem3=http://10.3:2379") umap, err := types.NewURLsMap("mem1=http://10.1:2379,mem2=http://10.2:237 9,mem3=http://10.3:2379")
if err != nil { if err != nil {
skipping to change at line 113 skipping to change at line 115
if s := p.String(); s != "test" { if s := p.String(); s != "test" {
t.Fatalf("expected 'test', got %q", s) t.Fatalf("expected 'test', got %q", s)
} }
} }
type testStringerFunc func() string type testStringerFunc func() string
func (s testStringerFunc) String() string { func (s testStringerFunc) String() string {
return s() return s()
} }
// TestWarnOfExpensiveReadOnlyTxnRequest verifies WarnOfExpensiveReadOnlyTxnRequ
est
// never panic no matter what data the txnResponse contains.
func TestWarnOfExpensiveReadOnlyTxnRequest(t *testing.T) {
testCases := []struct {
name string
txnResp *pb.TxnResponse
}{
{
name: "all readonly responses",
txnResp: &pb.TxnResponse{
Responses: []*pb.ResponseOp{
{
Response: &pb.ResponseOp_Response
Range{
ResponseRange: &pb.RangeR
esponse{},
},
},
{
Response: &pb.ResponseOp_Response
Range{
ResponseRange: &pb.RangeR
esponse{},
},
},
},
},
},
{
name: "all readonly responses with partial nil responses"
,
txnResp: &pb.TxnResponse{
Responses: []*pb.ResponseOp{
{
Response: &pb.ResponseOp_Response
Range{
ResponseRange: &pb.RangeR
esponse{},
},
},
{
Response: &pb.ResponseOp_Response
Range{
ResponseRange: nil,
},
},
},
},
},
{
name: "all readonly responses with all nil responses",
txnResp: &pb.TxnResponse{
Responses: []*pb.ResponseOp{
{
Response: &pb.ResponseOp_Response
Range{
ResponseRange: nil,
},
},
{
Response: &pb.ResponseOp_Response
Range{
ResponseRange: nil,
},
},
},
},
},
{
name: "partial non readonly responses",
txnResp: &pb.TxnResponse{
Responses: []*pb.ResponseOp{
{
Response: &pb.ResponseOp_Response
Range{
ResponseRange: nil,
},
},
{
Response: &pb.ResponseOp_Response
Put{},
},
{
Response: &pb.ResponseOp_Response
DeleteRange{},
},
},
},
},
{
name: "all non readonly responses",
txnResp: &pb.TxnResponse{
Responses: []*pb.ResponseOp{
{
Response: &pb.ResponseOp_Response
Put{},
},
{
Response: &pb.ResponseOp_Response
DeleteRange{},
},
},
},
},
}
for _, tc := range testCases {
tc := tc
t.Run(tc.name, func(t *testing.T) {
lg := zaptest.NewLogger(t)
start := time.Now().Add(-1 * time.Second)
// WarnOfExpensiveReadOnlyTxnRequest shouldn't panic.
warnOfExpensiveReadOnlyTxnRequest(lg, 0, start, &pb.TxnRe
quest{}, tc.txnResp, nil)
})
}
}
 End of changes. 3 change blocks. 
0 lines changed or deleted 2 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)