func TestPackWithIPv4(t *testing.T) { var b packet.Buffer b.Init(make([]byte, len(test_with_ipv4))) ip4 := ipv4.Make() ip4.SrcAddr = net.ParseIP(ipsrc_str) ip4.DstAddr = net.ParseIP(ipdst_str) udp := &udp.Packet{ SrcPort: 52134, DstPort: 80, Length: 18, } ip4.SetPayload(udp) err := udp.Pack(&b) if err != nil { t.Fatalf("Error packing: %s", err) } if !bytes.Equal(test_with_ipv4, b.Buffer()) { t.Fatalf("Raw packet mismatch: %x", b.Buffer()) } }
func TestPackOptions(t *testing.T) { var b packet.Buffer b.Init(make([]byte, len(test_options))) p := MakeTestSimple() p.DataOff = 10 p.Options = append(p.Options, tcp.Option{ Type: tcp.MSS, Len: 4, Data: []byte{0x05, 0x78}, }, ) p.Options = append(p.Options, tcp.Option{ Type: tcp.SAckOk, Len: 2, }, ) p.Options = append(p.Options, tcp.Option{ Type: tcp.Timestamp, Len: 10, Data: []byte{0x61, 0x25, 0xE5, 0xB2, 0x00, 0x13, 0x15, 0x66}, }, ) p.Options = append(p.Options, tcp.Option{ Type: tcp.WindowScale, Len: 3, Data: []byte{0x0A}, }, ) p.Options = append(p.Options, tcp.Option{ Type: tcp.End, }, ) err := p.Pack(&b) if err != nil { t.Fatalf("Error packing: %s", err) } if !bytes.Equal(test_options, b.Buffer()) { t.Fatalf("Raw packet mismatch: %x", b.Buffer()) } }
func TestPack(t *testing.T) { var b packet.Buffer b.Init(make([]byte, len(test_simple))) p := MakeTestSimple() err := p.Pack(&b) if err != nil { t.Fatalf("Error packing: %s", err) } if !bytes.Equal(test_simple, b.Buffer()) { t.Fatalf("Raw packet mismatch: %x", b.Buffer()) } }
func TestPackWithIPv6(t *testing.T) { var b packet.Buffer b.Init(make([]byte, len(test_with_ipv6))) ip6 := ipv6.Make() ip6.SrcAddr = net.ParseIP(ipsrc_str) ip6.DstAddr = net.ParseIP(ipdst_str) icmp6 := MakeTestSimple() ip6.SetPayload(icmp6) err := icmp6.Pack(&b) if err != nil { t.Fatalf("Error packing: %s", err) } if !bytes.Equal(test_with_ipv6, b.Buffer()) { t.Fatalf("Raw packet mismatch: %x", b.Buffer()) } }