Skip to content

Commit 9f6c371

Browse files
authored
Ban require.Equal when testing for 0 (ava-labs#1495)
1 parent 9ac856a commit 9f6c371

25 files changed

+163
-145
lines changed

codec/test_codec.go

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func TestStruct(codec GeneralCodec, t testing.TB) {
149149
version, err := manager.Unmarshal(myStructBytes, myStructUnmarshaled)
150150
require.NoError(err)
151151

152-
require.Equal(uint16(0), version)
152+
require.Zero(version)
153153
require.Equal(myStructInstance, *myStructUnmarshaled)
154154
}
155155

@@ -180,7 +180,7 @@ func TestUInt32(codec GeneralCodec, t testing.TB) {
180180
var numberUnmarshaled uint32
181181
version, err := manager.Unmarshal(bytes, &numberUnmarshaled)
182182
require.NoError(err)
183-
require.Equal(uint16(0), version)
183+
require.Zero(version)
184184
require.Equal(number, numberUnmarshaled)
185185
}
186186

@@ -215,7 +215,7 @@ func TestSlice(codec GeneralCodec, t testing.TB) {
215215
var sliceUnmarshaled []bool
216216
version, err := manager.Unmarshal(bytes, &sliceUnmarshaled)
217217
require.NoError(err)
218-
require.Equal(uint16(0), version)
218+
require.Zero(version)
219219
require.Equal(mySlice, sliceUnmarshaled)
220220
}
221221

@@ -240,7 +240,7 @@ func TestMaxSizeSlice(codec GeneralCodec, t testing.TB) {
240240
var sliceUnmarshaled []string
241241
version, err := manager.Unmarshal(bytes, &sliceUnmarshaled)
242242
require.NoError(err)
243-
require.Equal(uint16(0), version)
243+
require.Zero(version)
244244
require.Equal(mySlice, sliceUnmarshaled)
245245
}
246246

@@ -263,7 +263,7 @@ func TestBool(codec GeneralCodec, t testing.TB) {
263263
var boolUnmarshaled bool
264264
version, err := manager.Unmarshal(bytes, &boolUnmarshaled)
265265
require.NoError(err)
266-
require.Equal(uint16(0), version)
266+
require.Zero(version)
267267
require.Equal(myBool, boolUnmarshaled)
268268
}
269269

@@ -286,7 +286,7 @@ func TestArray(codec GeneralCodec, t testing.TB) {
286286
var myArrUnmarshaled [5]uint64
287287
version, err := manager.Unmarshal(bytes, &myArrUnmarshaled)
288288
require.NoError(err)
289-
require.Equal(uint16(0), version)
289+
require.Zero(version)
290290
require.Equal(myArr, myArrUnmarshaled)
291291
}
292292

@@ -309,7 +309,7 @@ func TestBigArray(codec GeneralCodec, t testing.TB) {
309309
var myArrUnmarshaled [30000]uint64
310310
version, err := manager.Unmarshal(bytes, &myArrUnmarshaled)
311311
require.NoError(err)
312-
require.Equal(uint16(0), version)
312+
require.Zero(version)
313313
require.Equal(myArr, myArrUnmarshaled)
314314
}
315315

@@ -332,7 +332,7 @@ func TestPointerToStruct(codec GeneralCodec, t testing.TB) {
332332
var myPtrUnmarshaled *MyInnerStruct
333333
version, err := manager.Unmarshal(bytes, &myPtrUnmarshaled)
334334
require.NoError(err)
335-
require.Equal(uint16(0), version)
335+
require.Zero(version)
336336
require.Equal(myPtr, myPtrUnmarshaled)
337337
}
338338

@@ -369,7 +369,7 @@ func TestSliceOfStruct(codec GeneralCodec, t testing.TB) {
369369
var mySliceUnmarshaled []MyInnerStruct3
370370
version, err := manager.Unmarshal(bytes, &mySliceUnmarshaled)
371371
require.NoError(err)
372-
require.Equal(uint16(0), version)
372+
require.Zero(version)
373373
require.Equal(mySlice, mySliceUnmarshaled)
374374
}
375375

@@ -395,7 +395,7 @@ func TestInterface(codec GeneralCodec, t testing.TB) {
395395
var unmarshaledFoo Foo
396396
version, err := manager.Unmarshal(bytes, &unmarshaledFoo)
397397
require.NoError(err)
398-
require.Equal(uint16(0), version)
398+
require.Zero(version)
399399
require.Equal(f, unmarshaledFoo)
400400
}
401401

@@ -428,7 +428,7 @@ func TestSliceOfInterface(codec GeneralCodec, t testing.TB) {
428428
var mySliceUnmarshaled []Foo
429429
version, err := manager.Unmarshal(bytes, &mySliceUnmarshaled)
430430
require.NoError(err)
431-
require.Equal(uint16(0), version)
431+
require.Zero(version)
432432
require.Equal(mySlice, mySliceUnmarshaled)
433433
}
434434

@@ -461,7 +461,7 @@ func TestArrayOfInterface(codec GeneralCodec, t testing.TB) {
461461
var myArrayUnmarshaled [2]Foo
462462
version, err := manager.Unmarshal(bytes, &myArrayUnmarshaled)
463463
require.NoError(err)
464-
require.Equal(uint16(0), version)
464+
require.Zero(version)
465465
require.Equal(myArray, myArrayUnmarshaled)
466466
}
467467

@@ -489,7 +489,7 @@ func TestPointerToInterface(codec GeneralCodec, t testing.TB) {
489489
var myPtrUnmarshaled *Foo
490490
version, err := manager.Unmarshal(bytes, &myPtrUnmarshaled)
491491
require.NoError(err)
492-
require.Equal(uint16(0), version)
492+
require.Zero(version)
493493
require.Equal(myPtr, myPtrUnmarshaled)
494494
}
495495

@@ -512,7 +512,7 @@ func TestString(codec GeneralCodec, t testing.TB) {
512512
var stringUnmarshaled string
513513
version, err := manager.Unmarshal(bytes, &stringUnmarshaled)
514514
require.NoError(err)
515-
require.Equal(uint16(0), version)
515+
require.Zero(version)
516516
require.Equal(myString, stringUnmarshaled)
517517
}
518518

@@ -539,8 +539,8 @@ func TestNilSlice(codec GeneralCodec, t testing.TB) {
539539
var structUnmarshaled structWithSlice
540540
version, err := manager.Unmarshal(bytes, &structUnmarshaled)
541541
require.NoError(err)
542-
require.Equal(uint16(0), version)
543-
require.Equal(0, len(structUnmarshaled.Slice))
542+
require.Zero(version)
543+
require.Empty(structUnmarshaled.Slice)
544544
}
545545

546546
// Ensure that trying to serialize a struct with an unexported member
@@ -596,7 +596,7 @@ func TestSerializeOfNoSerializeField(codec GeneralCodec, t testing.TB) {
596596
unmarshalled := s{}
597597
version, err := manager.Unmarshal(marshalled, &unmarshalled)
598598
require.NoError(err)
599-
require.Equal(uint16(0), version)
599+
require.Zero(version)
600600

601601
expectedUnmarshalled := s{SerializedField: "Serialize me"}
602602
require.Equal(expectedUnmarshalled, unmarshalled)
@@ -627,8 +627,8 @@ func TestNilSliceSerialization(codec GeneralCodec, t testing.TB) {
627627
valUnmarshaled := &simpleSliceStruct{}
628628
version, err := manager.Unmarshal(result, &valUnmarshaled)
629629
require.NoError(err)
630-
require.Equal(uint16(0), version)
631-
require.Equal(0, len(valUnmarshaled.Arr))
630+
require.Zero(version)
631+
require.Empty(valUnmarshaled.Arr)
632632
}
633633

634634
// Test marshaling a slice that has 0 elements (but isn't nil)
@@ -656,7 +656,7 @@ func TestEmptySliceSerialization(codec GeneralCodec, t testing.TB) {
656656
valUnmarshaled := &simpleSliceStruct{}
657657
version, err := manager.Unmarshal(result, &valUnmarshaled)
658658
require.NoError(err)
659-
require.Equal(uint16(0), version)
659+
require.Zero(version)
660660
require.Equal(val, valUnmarshaled)
661661
}
662662

@@ -689,7 +689,7 @@ func TestSliceWithEmptySerialization(codec GeneralCodec, t testing.TB) {
689689
unmarshaled := nestedSliceStruct{}
690690
version, err := manager.Unmarshal(expected, &unmarshaled)
691691
require.NoError(err)
692-
require.Equal(uint16(0), version)
692+
require.Zero(version)
693693
require.Equal(1000, len(unmarshaled.Arr))
694694
}
695695

@@ -756,7 +756,7 @@ func TestNegativeNumbers(codec GeneralCodec, t testing.TB) {
756756
mySUnmarshaled := s{}
757757
version, err := manager.Unmarshal(bytes, &mySUnmarshaled)
758758
require.NoError(err)
759-
require.Equal(uint16(0), version)
759+
require.Zero(version)
760760
require.Equal(myS, mySUnmarshaled)
761761
}
762762

@@ -808,7 +808,7 @@ func TestUnmarshalInvalidInterface(codec GeneralCodec, t testing.TB) {
808808
s := outer{}
809809
version, err := manager.Unmarshal(bytes, &s)
810810
require.NoError(err)
811-
require.Equal(uint16(0), version)
811+
require.Zero(version)
812812
}
813813
{
814814
bytes := []byte{0, 0, 0, 0, 0, 1}

database/manager/manager_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func TestNewSingleLevelDB(t *testing.T) {
3939

4040
semDB := manager.Current()
4141
cmp := semDB.Version.Compare(v1)
42-
require.Equal(0, cmp, "incorrect version on current database")
42+
require.Zero(cmp, "incorrect version on current database")
4343

4444
_, exists := manager.Previous()
4545
require.False(exists, "there should be no previous database")
@@ -63,7 +63,7 @@ func TestNewCreatesSingleDB(t *testing.T) {
6363

6464
semDB := manager.Current()
6565
cmp := semDB.Version.Compare(v1)
66-
require.Equal(0, cmp, "incorrect version on current database")
66+
require.Zero(cmp, "incorrect version on current database")
6767

6868
_, exists := manager.Previous()
6969
require.False(exists, "there should be no previous database")
@@ -173,19 +173,19 @@ func TestNewSortsDatabases(t *testing.T) {
173173

174174
semDB := manager.Current()
175175
cmp := semDB.Version.Compare(vers[0])
176-
require.Equal(0, cmp, "incorrect version on current database")
176+
require.Zero(cmp, "incorrect version on current database")
177177

178178
prev, exists := manager.Previous()
179179
require.True(exists, "expected to find a previous database")
180180
cmp = prev.Version.Compare(vers[1])
181-
require.Equal(0, cmp, "incorrect version on previous database")
181+
require.Zero(cmp, "incorrect version on previous database")
182182

183183
dbs := manager.GetDatabases()
184184
require.Equal(len(vers), len(dbs))
185185

186186
for i, db := range dbs {
187187
cmp = db.Version.Compare(vers[i])
188-
require.Equal(0, cmp, "expected to find database version %s, but found %s", vers[i], db.Version.String())
188+
require.Zero(cmp, "expected to find database version %s, but found %s", vers[i], db.Version.String())
189189
}
190190
}
191191

@@ -401,7 +401,7 @@ func TestNewManagerFromDBs(t *testing.T) {
401401
dbs := m.GetDatabases()
402402
require.Len(dbs, len(versions))
403403
for i, db := range dbs {
404-
require.Equal(0, db.Version.Compare(versions[i]))
404+
require.Zero(db.Version.Compare(versions[i]))
405405
}
406406
}
407407

database/test_database.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -949,7 +949,7 @@ func TestClear(t *testing.T, db Database) {
949949

950950
count, err = Count(db)
951951
require.NoError(err)
952-
require.Equal(0, count)
952+
require.Zero(count)
953953

954954
require.NoError(db.Close())
955955
}

scripts/lint.sh

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ fi
2121
# by default, "./scripts/lint.sh" runs all lint tests
2222
# to run only "license_header" test
2323
# TESTS='license_header' ./scripts/lint.sh
24-
TESTS=${TESTS:-"golangci_lint license_header require_error_is_no_funcs_as_params single_import interface_compliance_nil"}
24+
TESTS=${TESTS:-"golangci_lint license_header require_error_is_no_funcs_as_params single_import interface_compliance_nil require_equal_zero"}
2525

2626
function test_golangci_lint {
2727
go install -v github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.2
@@ -57,6 +57,24 @@ function test_require_error_is_no_funcs_as_params {
5757
fi
5858
}
5959

60+
function test_require_equal_zero {
61+
# check if the first arg, other than t, is 0
62+
if grep -R -o -P 'require\.Equal\((t, )?(u?int\d*\(0\)|0)' .; then
63+
echo ""
64+
echo "Use require.Zero instead of require.Equal when testing for 0."
65+
echo ""
66+
return 1
67+
fi
68+
69+
# check if the last arg is 0
70+
if grep -R -zo -P 'require\.Equal\(.+?, (u?int\d*\(0\)|0)\)\n' .; then
71+
echo ""
72+
echo "Use require.Zero instead of require.Equal when testing for 0."
73+
echo ""
74+
return 1
75+
fi
76+
}
77+
6078
# Ref: https://go.dev/doc/effective_go#blank_implements
6179
function test_interface_compliance_nil {
6280
if grep -R -o -P '_ .+? = &.+?\{\}' .; then

snow/engine/common/requests_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func TestRequests(t *testing.T) {
1515
req := Requests{}
1616

1717
length := req.Len()
18-
require.Equal(t, 0, length, "should have had no outstanding requests")
18+
require.Zero(t, length, "should have had no outstanding requests")
1919

2020
_, removed := req.Remove(ids.EmptyNodeID, 0)
2121
require.False(t, removed, "shouldn't have removed the request")
@@ -69,7 +69,7 @@ func TestRequests(t *testing.T) {
6969
require.True(t, removed, "should have removed the request")
7070

7171
length = req.Len()
72-
require.Equal(t, 0, length, "should have had no outstanding requests")
72+
require.Zero(t, length, "should have had no outstanding requests")
7373

7474
req.Add(ids.EmptyNodeID, 0, ids.Empty)
7575

@@ -80,11 +80,11 @@ func TestRequests(t *testing.T) {
8080
require.True(t, removed, "should have removed the request")
8181

8282
length = req.Len()
83-
require.Equal(t, 0, length, "should have had no outstanding requests")
83+
require.Zero(t, length, "should have had no outstanding requests")
8484

8585
removed = req.RemoveAny(ids.Empty)
8686
require.False(t, removed, "shouldn't have removed the request")
8787

8888
length = req.Len()
89-
require.Equal(t, 0, length, "should have had no outstanding requests")
89+
require.Zero(t, length, "should have had no outstanding requests")
9090
}

snow/networking/benchlist/benchlist_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ func TestBenchlistAdd(t *testing.T) {
7373
require.False(t, b.isBenched(vdrID3))
7474
require.False(t, b.isBenched(vdrID4))
7575
require.Len(t, b.failureStreaks, 0)
76-
require.Equal(t, b.benchedQueue.Len(), 0)
77-
require.Equal(t, b.benchlistSet.Len(), 0)
76+
require.Zero(t, b.benchedQueue.Len())
77+
require.Zero(t, b.benchlistSet.Len())
7878
b.lock.Unlock()
7979

8080
// Register [threshold - 1] failures in a row for vdr0
@@ -84,8 +84,8 @@ func TestBenchlistAdd(t *testing.T) {
8484

8585
// Still shouldn't be benched due to not enough consecutive failure
8686
require.False(t, b.isBenched(vdrID0))
87-
require.Equal(t, b.benchedQueue.Len(), 0)
88-
require.Equal(t, b.benchlistSet.Len(), 0)
87+
require.Zero(t, b.benchedQueue.Len())
88+
require.Zero(t, b.benchlistSet.Len())
8989
require.Len(t, b.failureStreaks, 1)
9090
fs := b.failureStreaks[vdrID0]
9191
require.Equal(t, threshold-1, fs.consecutive)
@@ -98,8 +98,8 @@ func TestBenchlistAdd(t *testing.T) {
9898
// has passed since the first failure
9999
b.lock.Lock()
100100
require.False(t, b.isBenched(vdrID0))
101-
require.Equal(t, b.benchedQueue.Len(), 0)
102-
require.Equal(t, b.benchlistSet.Len(), 0)
101+
require.Zero(t, b.benchedQueue.Len())
102+
require.Zero(t, b.benchlistSet.Len())
103103
b.lock.Unlock()
104104

105105
// Move the time up

snow/networking/router/chain_router_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,7 @@ func TestRouterHonorsRequestedEngine(t *testing.T) {
801801
chainRouter.HandleInbound(context.Background(), msg)
802802
}
803803

804-
require.Equal(0, chainRouter.timedRequests.Len())
804+
require.Zero(chainRouter.timedRequests.Len())
805805
}
806806

807807
func TestRouterClearTimeouts(t *testing.T) {
@@ -1087,7 +1087,7 @@ func TestRouterClearTimeouts(t *testing.T) {
10871087
chainRouter.HandleInbound(context.Background(), msg)
10881088
}
10891089

1090-
require.Equal(t, 0, chainRouter.timedRequests.Len())
1090+
require.Zero(t, chainRouter.timedRequests.Len())
10911091
}
10921092

10931093
func TestValidatorOnlyMessageDrops(t *testing.T) {

0 commit comments

Comments
 (0)