Newer
Older
"encoding/binary"
"math/bits"
func TestHeader(t *testing.T) {
t.Parallel()
t.Run("lengths", func(t *testing.T) {
t.Parallel()
lengths := []int{
124,
125,
126,
127,
65534,
65535,
65536,
65537,
}
for _, n := range lengths {
n := n
t.Run(strconv.Itoa(n), func(t *testing.T) {
t.Parallel()
testHeader(t, header{
payloadLength: int64(n),
})
})
}
})
t.Run("fuzz", func(t *testing.T) {
t.Parallel()
r := rand.New(rand.NewSource(time.Now().UnixNano()))
}
for i := 0; i < 10000; i++ {
h := header{
fin: randBool(),
rsv1: randBool(),
rsv2: randBool(),
rsv3: randBool(),
testHeader(t, h)
}
})
}
func testHeader(t *testing.T, h header) {
b := &bytes.Buffer{}
w := bufio.NewWriter(b)
r := bufio.NewReader(b)
err := writeFrameHeader(h, w, make([]byte, 8))
h2, err := readFrameHeader(r, make([]byte, 8))
func Test_mask(t *testing.T) {
t.Parallel()
key := []byte{0xa, 0xb, 0xc, 0xff}
key32 := binary.LittleEndian.Uint32(key)
p := []byte{0xa, 0xb, 0xc, 0xf2, 0xc}