package protocol import ( "bufio" "net" "strings" "testing" ) func TestReadHeaderV1(t *testing.T) { r := bufio.NewReader(strings.NewReader("PROXY TCP4 203.0.113.10 192.0.2.1 443 9000\r\n")) h, err := ReadHeader(r) if err != nil { t.Fatal(err) } if !h.SrcIP.Equal(net.ParseIP("203.0.113.10")) || h.SrcPort != 443 { t.Fatalf("unexpected header %+v", h) } } func TestReadHeaderRejectsGarbage(t *testing.T) { r := bufio.NewReader(strings.NewReader("GET / HTTP/1.1\r\n")) if _, err := ReadHeader(r); err == nil { t.Fatal("expected error") } }