package core import ( "encoding/json" "eruhs/core/parser" "fmt" _ "net/http/pprof" "testing" "time" ) func TestCapture_StartCaptureOnDevice(t *testing.T) { cnt := 0 capture := NewCapture(func(pack *DataPack) { cnt++ for _, layer := range pack.LayerStack { switch layer.(type) { case *parser.Ethernet: fmt.Printf("%+v", layer.(*parser.Ethernet)) case *parser.IPv4: fmt.Printf("%+v", layer.(*parser.IPv4)) case *parser.ARP: fmt.Printf("%+v", layer.(*parser.ARP)) case *parser.TCP: fmt.Printf("%+v", layer.(*parser.TCP)) case *parser.UDP: fmt.Printf("%+v", layer.(*parser.UDP)) default: j, err := json.MarshalIndent(layer, "", " ") if err != nil { fmt.Println(err) } fmt.Println(j) } } fmt.Println("----------------") //if cnt == 16 { // t.SkipNow() //} }, func(err error) { t.Error(err) }) go func() { time.Sleep(3 * time.Second) capture.Stop() }() capture.StartCaptureOnDevice("\\Device\\NPF_{AA5A8BD6-43B3-489B-9858-0ECB96EAB05E}") }