netshovel

Network Archaeology library for Go
git clone https://git.woozle.org/neale/netshovel.git

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}