31 lines
733 B
Go
31 lines
733 B
Go
package fingerprint
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/google/gopacket"
|
|
"github.com/google/gopacket/layers"
|
|
)
|
|
|
|
func TestBuildSYNPacket(t *testing.T) {
|
|
data, err := BuildSYNPacket("192.0.2.1", "198.51.100.2", 12345, 80)
|
|
if err != nil {
|
|
t.Fatalf("BuildSYNPacket returned error: %v", err)
|
|
}
|
|
packet := gopacket.NewPacket(data, layers.LayerTypeIPv4, gopacket.Default)
|
|
if packet == nil {
|
|
t.Fatalf("Failed to decode packet")
|
|
}
|
|
if ipLayer := packet.Layer(layers.LayerTypeIPv4); ipLayer == nil {
|
|
t.Fatalf("IPv4 layer not found")
|
|
}
|
|
tcpLayer := packet.Layer(layers.LayerTypeTCP)
|
|
if tcpLayer == nil {
|
|
t.Fatalf("TCP layer not found")
|
|
}
|
|
tcp, _ := tcpLayer.(*layers.TCP)
|
|
if !tcp.SYN {
|
|
t.Fatalf("Expected SYN flag set")
|
|
}
|
|
}
|