Pull request 2361: imp-test-file-names
Merge in DNS/adguard-home from imp-test-file-names to master Squashed commit of the following: commit a0827efdf633fba012c5eb0e0f69eaabf7629724 Author: Stanislav Chzhen <s.chzhen@adguard.com> Date: Mon Mar 10 21:41:46 2025 +0300 all: imp tests commit 21fc274d9276ce0442572261ea39a1c018490870 Author: Stanislav Chzhen <s.chzhen@adguard.com> Date: Mon Mar 10 19:40:40 2025 +0300 all: imp test file names
This commit is contained in:
90
internal/dhcpd/bitset_internal_test.go
Normal file
90
internal/dhcpd/bitset_internal_test.go
Normal file
@@ -0,0 +1,90 @@
|
||||
package dhcpd
|
||||
|
||||
import (
|
||||
"math"
|
||||
"testing"
|
||||
"testing/quick"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestBitSet(t *testing.T) {
|
||||
t.Run("nil", func(t *testing.T) {
|
||||
var s *bitSet
|
||||
|
||||
ok := s.isSet(0)
|
||||
assert.False(t, ok)
|
||||
|
||||
assert.NotPanics(t, func() {
|
||||
s.set(0, true)
|
||||
})
|
||||
|
||||
ok = s.isSet(0)
|
||||
assert.False(t, ok)
|
||||
|
||||
assert.NotPanics(t, func() {
|
||||
s.set(0, false)
|
||||
})
|
||||
|
||||
ok = s.isSet(0)
|
||||
assert.False(t, ok)
|
||||
})
|
||||
|
||||
t.Run("non_nil", func(t *testing.T) {
|
||||
s := newBitSet()
|
||||
|
||||
ok := s.isSet(0)
|
||||
assert.False(t, ok)
|
||||
|
||||
s.set(0, true)
|
||||
|
||||
ok = s.isSet(0)
|
||||
assert.True(t, ok)
|
||||
|
||||
s.set(0, false)
|
||||
|
||||
ok = s.isSet(0)
|
||||
assert.False(t, ok)
|
||||
})
|
||||
|
||||
t.Run("non_nil_long", func(t *testing.T) {
|
||||
s := newBitSet()
|
||||
|
||||
s.set(0, true)
|
||||
s.set(math.MaxUint64, true)
|
||||
assert.Len(t, s.words, 2)
|
||||
|
||||
ok := s.isSet(0)
|
||||
assert.True(t, ok)
|
||||
|
||||
ok = s.isSet(math.MaxUint64)
|
||||
assert.True(t, ok)
|
||||
})
|
||||
|
||||
t.Run("compare_to_map", func(t *testing.T) {
|
||||
m := map[uint64]struct{}{}
|
||||
s := newBitSet()
|
||||
|
||||
mapFunc := func(setNew, checkOld, delOld uint64) (ok bool) {
|
||||
m[setNew] = struct{}{}
|
||||
delete(m, delOld)
|
||||
_, ok = m[checkOld]
|
||||
|
||||
return ok
|
||||
}
|
||||
|
||||
setFunc := func(setNew, checkOld, delOld uint64) (ok bool) {
|
||||
s.set(setNew, true)
|
||||
s.set(delOld, false)
|
||||
ok = s.isSet(checkOld)
|
||||
|
||||
return ok
|
||||
}
|
||||
|
||||
err := quick.CheckEqual(mapFunc, setFunc, &quick.Config{
|
||||
MaxCount: 10_000,
|
||||
MaxCountScale: 10,
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user