MCPcopy
hub / github.com/google/gopacket / TestPcapFileRead

Function TestPcapFileRead

pcap/pcap_test.go:33–118  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

31}
32
33func TestPcapFileRead(t *testing.T) {
34 invalidData := []byte{
35 0xAB, 0xAD, 0x1D, 0xEA,
36 }
37
38 invalidPcap, err := ioutil.TempFile("", "invalid.pcap")
39 if err != nil {
40 t.Fatal(err)
41 }
42 invalidPcap.Close() // if the file is still open later, the invalid test fails with permission denied on windows
43 defer os.Remove(invalidPcap.Name())
44
45 err = ioutil.WriteFile(invalidPcap.Name(), invalidData, 0644)
46 if err != nil {
47 t.Fatal(err)
48 }
49
50 for _, file := range []struct {
51 filename string
52 num int
53 expectedLayers []gopacket.LayerType
54 err string
55 }{
56 {filename: "test_loopback.pcap",
57 num: 24,
58 expectedLayers: []gopacket.LayerType{
59 layers.LayerTypeLoopback,
60 layers.LayerTypeIPv6,
61 layers.LayerTypeTCP,
62 },
63 },
64 {filename: "test_ethernet.pcap",
65 num: 10,
66 expectedLayers: []gopacket.LayerType{
67 layers.LayerTypeEthernet,
68 layers.LayerTypeIPv4,
69 layers.LayerTypeTCP,
70 },
71 },
72 {filename: "test_dns.pcap",
73 num: 10,
74 expectedLayers: []gopacket.LayerType{
75 layers.LayerTypeEthernet,
76 layers.LayerTypeIPv4,
77 layers.LayerTypeUDP,
78 layers.LayerTypeDNS,
79 },
80 },
81 {filename: invalidPcap.Name(),
82 num: 0,
83 err: "unknown file format",
84 },
85 } {
86 t.Logf("\n\n\n\nProcessing file %s\n\n\n\n", file.filename)
87
88 packets := []gopacket.Packet{}
89 if handle, err := OpenOffline(file.filename); err != nil {
90 if file.err != "" {

Callers

nothing calls this directly

Calls 8

PacketsMethod · 0.95
NewPacketSourceFunction · 0.92
OpenOfflineFunction · 0.85
ErrorMethod · 0.65
DumpMethod · 0.65
LayerMethod · 0.65
CloseMethod · 0.45
LinkTypeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…