fix: enable empty and len rules from testifylint

Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
This commit is contained in:
Matthieu MOREL
2024-10-10 08:23:14 +02:00
parent 5e238a0c4f
commit e06fb81713
18 changed files with 30 additions and 32 deletions

View File

@ -53,6 +53,6 @@ func TestEncodeTimePrecisionToMicroSeconds(t *testing.T) {
regex := `\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.(\d+)(Z|[+-]\d{4})` regex := `\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.(\d+)(Z|[+-]\d{4})`
re := regexp.MustCompile(regex) re := regexp.MustCompile(regex)
matches := re.FindStringSubmatch(fields.Timestamp) matches := re.FindStringSubmatch(fields.Timestamp)
require.Equal(t, 3, len(matches)) require.Len(t, matches, 3)
require.Equalf(t, fractionSecondsPrecision, len(matches[1]), "unexpected timestamp %s", fields.Timestamp) require.Lenf(t, matches[1], fractionSecondsPrecision, "unexpected timestamp %s", fields.Timestamp)
} }

View File

@ -64,7 +64,7 @@ func TestStoreGetDirectory(t *testing.T) {
assert.Equal(t, e.EtcdIndex, eidx) assert.Equal(t, e.EtcdIndex, eidx)
assert.Equal(t, e.Action, "get") assert.Equal(t, e.Action, "get")
assert.Equal(t, e.Node.Key, "/foo") assert.Equal(t, e.Node.Key, "/foo")
assert.Equal(t, len(e.Node.Nodes), 2) assert.Len(t, e.Node.Nodes, 2)
var bazNodes NodeExterns var bazNodes NodeExterns
for _, node := range e.Node.Nodes { for _, node := range e.Node.Nodes {
switch node.Key { switch node.Key {
@ -73,7 +73,7 @@ func TestStoreGetDirectory(t *testing.T) {
assert.False(t, node.Dir) assert.False(t, node.Dir)
case "/foo/baz": case "/foo/baz":
assert.True(t, node.Dir) assert.True(t, node.Dir)
assert.Equal(t, len(node.Nodes), 2) assert.Len(t, node.Nodes, 2)
bazNodes = node.Nodes bazNodes = node.Nodes
default: default:
t.Errorf("key = %s, not matched", node.Key) t.Errorf("key = %s, not matched", node.Key)

View File

@ -29,7 +29,7 @@ func Test_bucketBuffer_CopyUsed_After_Add(t *testing.T) {
bb.add([]byte(k), []byte(v)) bb.add([]byte(k), []byte(v))
bbCopy := bb.CopyUsed() bbCopy := bb.CopyUsed()
assert.Equal(t, bb.used, bbCopy.used) assert.Equal(t, bb.used, bbCopy.used)
assert.Equal(t, bbCopy.used, len(bbCopy.buf)) assert.Len(t, bbCopy.buf, bbCopy.used)
assert.GreaterOrEqual(t, len(bb.buf), len(bbCopy.buf)) assert.GreaterOrEqual(t, len(bb.buf), len(bbCopy.buf))
} }
} }
@ -85,7 +85,7 @@ func Test_bucketBuffer_CopyUsed(t *testing.T) {
} else { } else {
bbCopy := bb.CopyUsed() bbCopy := bb.CopyUsed()
assert.Equal(t, tt.wantUsed, bbCopy.used) assert.Equal(t, tt.wantUsed, bbCopy.used)
assert.Equal(t, tt.wantBufLen, len(bbCopy.buf)) assert.Len(t, bbCopy.buf, tt.wantBufLen)
} }
}) })
} }
@ -132,7 +132,7 @@ func TestDedupe(t *testing.T) {
bb.add([]byte(tt.keys[i]), []byte(tt.vals[i])) bb.add([]byte(tt.keys[i]), []byte(tt.vals[i]))
} }
bb.dedupe() bb.dedupe()
assert.Equal(t, bb.used, len(tt.expectedKeys)) assert.Len(t, tt.expectedKeys, bb.used)
for i := 0; i < bb.used; i++ { for i := 0; i < bb.used; i++ {
assert.Equal(t, bb.buf[i].key, []byte(tt.expectedKeys[i])) assert.Equal(t, bb.buf[i].key, []byte(tt.expectedKeys[i]))
assert.Equal(t, bb.buf[i].val, []byte(tt.expectedVals[i])) assert.Equal(t, bb.buf[i].val, []byte(tt.expectedVals[i]))

View File

@ -499,7 +499,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
} }
if isTombstone { if isTombstone {
assert.Equal(t, 0, len(am), "#%d: ki = %d, keep result wants empty because tombstone", i, ki) assert.Empty(t, am, "#%d: ki = %d, keep result wants empty because tombstone", i, ki)
} else { } else {
assert.Equal(t, tt.wam, am, assert.Equal(t, tt.wam, am,
"#%d: ki = %d, compact keep should be equal to keep keep if it's not tombstone", i, ki) "#%d: ki = %d, compact keep should be equal to keep keep if it's not tombstone", i, ki)
@ -550,7 +550,7 @@ func TestKeyIndexCompactAndKeep(t *testing.T) {
} }
if isTombstoneRevFn(ki, tt.compact) { if isTombstoneRevFn(ki, tt.compact) {
assert.Equal(t, 0, len(am), "#%d: ki = %d, keep result wants empty because tombstone", i, ki) assert.Empty(t, am, "#%d: ki = %d, keep result wants empty because tombstone", i, ki)
} else { } else {
assert.Equal(t, tt.wam, am, assert.Equal(t, tt.wam, am,
"#%d: ki = %d, compact keep should be equal to keep keep if it's not tombstone", i, ki) "#%d: ki = %d, compact keep should be equal to keep keep if it's not tombstone", i, ki)

View File

@ -108,13 +108,13 @@ func setupAuth(c interfaces.Client, roles []authRole, users []authUser) error {
} }
func requireRolePermissionEqual(t *testing.T, expectRole authRole, actual []*authpb.Permission) { func requireRolePermissionEqual(t *testing.T, expectRole authRole, actual []*authpb.Permission) {
require.Equal(t, 1, len(actual)) require.Len(t, actual, 1)
require.Equal(t, expectRole.permission, clientv3.PermissionType(actual[0].PermType)) require.Equal(t, expectRole.permission, clientv3.PermissionType(actual[0].PermType))
require.Equal(t, expectRole.key, string(actual[0].Key)) require.Equal(t, expectRole.key, string(actual[0].Key))
require.Equal(t, expectRole.keyEnd, string(actual[0].RangeEnd)) require.Equal(t, expectRole.keyEnd, string(actual[0].RangeEnd))
} }
func requireUserRolesEqual(t *testing.T, expectUser authUser, actual []string) { func requireUserRolesEqual(t *testing.T, expectUser authUser, actual []string) {
require.Equal(t, 1, len(actual)) require.Len(t, actual, 1)
require.Equal(t, expectUser.role, actual[0]) require.Equal(t, expectUser.role, actual[0])
} }

View File

@ -63,7 +63,7 @@ func TestEndpointHashKV(t *testing.T) {
resp, err := cc.HashKV(ctx, 0) resp, err := cc.HashKV(ctx, 0)
require.NoError(t, err, "failed to get endpoint hashkv: %v", err) require.NoError(t, err, "failed to get endpoint hashkv: %v", err)
require.Equal(t, 3, len(resp)) require.Len(t, resp, 3)
if resp[0].HashRevision == resp[1].HashRevision && resp[0].HashRevision == resp[2].HashRevision { if resp[0].HashRevision == resp[1].HashRevision && resp[0].HashRevision == resp[2].HashRevision {
require.Equal(t, resp[0].Hash, resp[1].Hash) require.Equal(t, resp[0].Hash, resp[1].Hash)
require.Equal(t, resp[0].Hash, resp[2].Hash) require.Equal(t, resp[0].Hash, resp[2].Hash)

View File

@ -70,7 +70,7 @@ func TestAuthCluster(t *testing.T) {
// make sure writes to both endpoints are successful // make sure writes to both endpoints are successful
endpoints := epc.EndpointsGRPC() endpoints := epc.EndpointsGRPC()
assert.Equal(t, len(endpoints), 2) assert.Len(t, endpoints, 2)
for _, endpoint := range epc.EndpointsGRPC() { for _, endpoint := range epc.EndpointsGRPC() {
if err := epc.Etcdctl(testUserClientOpts, e2e.WithEndpoints([]string{endpoint})).Put(ctx, "/test/key", endpoint, config.PutOptions{}); err != nil { if err := epc.Etcdctl(testUserClientOpts, e2e.WithEndpoints([]string{endpoint})).Put(ctx, "/test/key", endpoint, config.PutOptions{}); err != nil {
t.Fatalf("failed to write to Put to %q (%v)", endpoint, err) t.Fatalf("failed to write to Put to %q (%v)", endpoint, err)

View File

@ -134,7 +134,7 @@ func TestCtlV3ConsistentMemberList(t *testing.T) {
} }
count++ count++
require.Equal(t, 1, len(mresp.Members)) require.Len(t, mresp.Members, 1)
} }
}() }()
@ -152,7 +152,7 @@ func memberListTest(cx ctlCtx) {
func memberListSerializableTest(cx ctlCtx) { func memberListSerializableTest(cx ctlCtx) {
resp, err := getMemberList(cx, false) resp, err := getMemberList(cx, false)
require.NoError(cx.t, err) require.NoError(cx.t, err)
require.Equal(cx.t, 1, len(resp.Members)) require.Len(cx.t, resp.Members, 1)
peerURL := fmt.Sprintf("http://localhost:%d", e2e.EtcdProcessBasePort+11) peerURL := fmt.Sprintf("http://localhost:%d", e2e.EtcdProcessBasePort+11)
err = ctlV3MemberAdd(cx, peerURL, false) err = ctlV3MemberAdd(cx, peerURL, false)
@ -160,7 +160,7 @@ func memberListSerializableTest(cx ctlCtx) {
resp, err = getMemberList(cx, true) resp, err = getMemberList(cx, true)
require.NoError(cx.t, err) require.NoError(cx.t, err)
require.Equal(cx.t, 2, len(resp.Members)) require.Len(cx.t, resp.Members, 2)
} }
func ctlV3MemberList(cx ctlCtx) error { func ctlV3MemberList(cx ctlCtx) error {

View File

@ -243,7 +243,7 @@ func testCurlV3AuthUserBasicOperations(cx ctlCtx) {
users, ok := resp["users"] users, ok := resp["users"]
require.True(cx.t, ok) require.True(cx.t, ok)
userSlice := users.([]any) userSlice := users.([]any)
require.Equal(cx.t, 2, len(userSlice)) require.Len(cx.t, userSlice, 2)
require.Equal(cx.t, "user1", userSlice[0]) require.Equal(cx.t, "user1", userSlice[0])
require.Equal(cx.t, "user3", userSlice[1]) require.Equal(cx.t, "user3", userSlice[1])
} }
@ -372,7 +372,7 @@ func testCurlV3AuthRoleBasicOperations(cx ctlCtx) {
roles, ok := resp["roles"] roles, ok := resp["roles"]
require.True(cx.t, ok) require.True(cx.t, ok)
roleSlice := roles.([]any) roleSlice := roles.([]any)
require.Equal(cx.t, 2, len(roleSlice)) require.Len(cx.t, roleSlice, 2)
require.Equal(cx.t, "role1", roleSlice[0]) require.Equal(cx.t, "role1", roleSlice[0])
require.Equal(cx.t, "role3", roleSlice[1]) require.Equal(cx.t, "role3", roleSlice[1])
} }

View File

@ -53,7 +53,7 @@ func testCurlV3ClusterOperations(cx ctlCtx) {
// list members and get the new member's ID // list members and get the new member's ID
cx.t.Log("Listing members after adding a member") cx.t.Log("Listing members after adding a member")
members := mustListMembers(cx) members := mustListMembers(cx)
require.Equal(cx.t, 2, len(members)) require.Len(cx.t, members, 2)
cx.t.Logf("members: %+v", members) cx.t.Logf("members: %+v", members)
var newMemberIDStr string var newMemberIDStr string
@ -107,7 +107,7 @@ func testCurlV3ClusterOperations(cx ctlCtx) {
// list members again after deleting a member // list members again after deleting a member
cx.t.Log("Listing members again after deleting a member") cx.t.Log("Listing members again after deleting a member")
members = mustListMembers(cx) members = mustListMembers(cx)
require.Equal(cx.t, 1, len(members)) require.Len(cx.t, members, 1)
} }
func mustListMembers(cx ctlCtx) []any { func mustListMembers(cx ctlCtx) []any {

View File

@ -164,7 +164,7 @@ func testCurlV3KVTxn(cx ctlCtx) {
succeeded, responses := mustExecuteTxn(cx, string(jsonDat)) succeeded, responses := mustExecuteTxn(cx, string(jsonDat))
require.True(cx.t, succeeded) require.True(cx.t, succeeded)
require.Equal(cx.t, 1, len(responses)) require.Len(cx.t, responses, 1)
putResponse := responses[0].(map[string]any) putResponse := responses[0].(map[string]any)
_, ok := putResponse["response_put"] _, ok := putResponse["response_put"]
require.True(cx.t, ok) require.True(cx.t, ok)

View File

@ -159,7 +159,7 @@ func testLeaseRevokeIssue(t *testing.T, clusterSize int, connectToOneFollower bo
t.Log("Confirming the lease isn't revoked") t.Log("Confirming the lease isn't revoked")
leases, err := client.Leases(ctx) leases, err := client.Leases(ctx)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, 1, len(leases.Leases)) require.Len(t, leases.Leases, 1)
t.Log("Waiting for the keepAlive goroutine to exit") t.Log("Waiting for the keepAlive goroutine to exit")
close(stopC) close(stopC)

View File

@ -38,7 +38,7 @@ func TestLogObserver_Timeout(t *testing.T) {
cancel() cancel()
assert.True(t, errors.Is(err, context.DeadlineExceeded)) assert.True(t, errors.Is(err, context.DeadlineExceeded))
assert.Equal(t, 1, len(logOb.entries)) assert.Len(t, logOb.entries, 1)
} }
func TestLogObserver_Expect(t *testing.T) { func TestLogObserver_Expect(t *testing.T) {
@ -65,7 +65,7 @@ func TestLogObserver_Expect(t *testing.T) {
} }
res := <-resCh res := <-resCh
assert.Equal(t, 2, len(res)) assert.Len(t, res, 2)
// The logged message should be like // The logged message should be like
// //
@ -79,5 +79,5 @@ func TestLogObserver_Expect(t *testing.T) {
assert.True(t, strings.HasSuffix(res[idx], expected)) assert.True(t, strings.HasSuffix(res[idx], expected))
} }
assert.Equal(t, 2, len(logOb.entries)) assert.Len(t, logOb.entries, 2)
} }

View File

@ -158,7 +158,7 @@ func TestDoubleBarrierTooManyClients(t *testing.T) {
t.Errorf("Unexpected error: %v", err) t.Errorf("Unexpected error: %v", err)
} }
// Make sure the extra `b.Enter()` did not create a new ephemeral key // Make sure the extra `b.Enter()` did not create a new ephemeral key
assert.Equal(t, waiters, len(resp.Kvs)) assert.Len(t, resp.Kvs, waiters)
close(donec) close(donec)
wgDone.Wait() wgDone.Wait()

View File

@ -211,7 +211,7 @@ func TestLeasingGetNoLeaseTTL(t *testing.T) {
gresp, err := lkv.Get(context.TODO(), "k") gresp, err := lkv.Get(context.TODO(), "k")
testutil.AssertNil(t, err) testutil.AssertNil(t, err)
assert.Equal(t, len(gresp.Kvs), 1) assert.Len(t, gresp.Kvs, 1)
clus.Members[0].Stop(t) clus.Members[0].Stop(t)

View File

@ -377,7 +377,7 @@ func TestMaintenanceSnapshotContentDigest(t *testing.T) {
checksumInBytes, err := io.ReadAll(snapFile) checksumInBytes, err := io.ReadAll(snapFile)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, int(checksumSize), len(checksumInBytes)) require.Len(t, checksumInBytes, int(checksumSize))
// remove the checksum part and rehash // remove the checksum part and rehash
err = snapFile.Truncate(snapSize - checksumSize) err = snapFile.Truncate(snapSize - checksumSize)

View File

@ -183,6 +183,6 @@ func TestEtcdEndpointManager(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
eptsOther, err := emOther.List(context.Background()) eptsOther, err := emOther.List(context.Background())
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, len(epts), 1) assert.Len(t, epts, 1)
assert.Equal(t, len(eptsOther), 1) assert.Len(t, eptsOther, 1)
} }

View File

@ -110,14 +110,12 @@ linters-settings: # please keep this alphabetized
testifylint: testifylint:
disable: disable:
- compares - compares
- empty
- error-is-as - error-is-as
- error-nil - error-nil
- expected-actual - expected-actual
- float-compare - float-compare
- formatter - formatter
- go-require - go-require
- len
- negative-positive - negative-positive
- nil-compare - nil-compare
- require-error - require-error