package pcap import ( "bytes" "encoding/hex" "testing" "time" ) func TestWriter(t *testing.T) { var buf bytes.Buffer w, err := NewWriter(&buf, LinkTypeRaw) if err != nil { t.Fatal(err) } ts := time.Unix(0x01020304, 5000) if err := w.WritePacket(ts, []byte{0xaa, 0xbb}); err != nil { t.Fatal(err) } want := "d4c3b2a1" + "0200" + "0400" + "00000000" + "00000000" + "00000400" + "65000000" + "04030201" + "05000000" + "02000000" + "02000000" + "aabb" if got := hex.EncodeToString(buf.Bytes()); got != want { t.Errorf("got %s\nwant %s", got, want) } } func TestWriterRejectsOversizedPacket(t *testing.T) { w, err := NewWriter(&bytes.Buffer{}, LinkTypeEthernet) if err != nil { t.Fatal(err) } if err := w.WritePacket(time.Now(), make([]byte, DefaultSnapLen+1)); err == nil { t.Error("expected error for oversized packet") } }