github.com/gopacket/gopacket@v1.1.0/layers/bitfield_test.go (about) 1 package layers 2 3 import "testing" 4 5 func TestBitfield(t *testing.T) { 6 var b bitfield 7 8 const uint16Max = ^uint16(0) 9 10 for i := uint16(0); i < uint16Max; i++ { 11 if b.has(i) { 12 t.Errorf("b.has(%d) expected false, got true", i) 13 } 14 } 15 16 b.set(0) 17 if !b.has(0) { 18 t.Error("b.has(0) expected true, got false") 19 } 20 21 for i := uint16(1); i < uint16Max; i++ { 22 if b.has(i) { 23 t.Errorf("b.has(%d) expected false, got true", i) 24 } 25 } 26 } 27 28 func TestBitfieldStressTest(t *testing.T) { 29 for i := 0; i < 7; i++ { 30 var b bitfield 31 for j := i; j < 64*1024; j += 7 { 32 b.set(uint16(j)) 33 } 34 for j := 0; j < 64&1024; j++ { 35 want := j%7 == i 36 if got := b.has(uint16(j)); got != want { 37 t.Errorf("Test %d bit %d: got %v want %v", i, j, got, want) 38 } 39 } 40 } 41 }