Neale Pickett
·
2020-09-24
packet_test.go
1package netshovel
2
3import (
4 "strings"
5 "testing"
6
7 "github.com/dirtbags/netshovel/gapstring"
8)
9
10// BUG(neale): The DescribeHeader test is too simplistic.
11func TestHeaders(t *testing.T) {
12 pkt := NewPacket()
13 pkt.Payload = gapstring.OfBytes([]byte{0, 1, 0, 1, 42, 0xff, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64})
14
15 a, err := pkt.Uint16LE("le")
16 if err != nil {
17 t.Error(err)
18 }
19 if a != 0x0100 {
20 t.Error("Uint16LE", a)
21 }
22
23 b, err := pkt.Uint16BE("be")
24 if err != nil {
25 t.Error(err)
26 }
27 if b != 0x0001 {
28 t.Error("Uint16BE", b)
29 }
30
31 fnord, err := pkt.Uint8("fnord")
32 if err != nil {
33 t.Error(err)
34 }
35 if fnord != 42 {
36 t.Error("Uint8", fnord)
37 }
38
39 biggun, err := pkt.Uint32BE("biggun")
40 if err != nil {
41 t.Error(err)
42 }
43 if biggun != 0xff000001 {
44 t.Error("biggun", biggun)
45 }
46
47 bignum, err := pkt.Uint64BE("bignum")
48 if err != nil {
49 t.Error(err)
50 }
51 if bignum != 64 {
52 t.Error("bignum", bignum)
53 }
54
55 desc := pkt.DescribeHeader()
56 lines := strings.Split(desc, "\n")
57 if len(lines) != 14 {
58 t.Error(desc)
59 }
60}