github.com/xmplusdev/xmcore@v1.8.11-0.20240412132628-5518b55526af/transport/internet/sockopt_test.go (about) 1 package internet_test 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/google/go-cmp/cmp" 8 "github.com/xmplusdev/xmcore/common" 9 "github.com/xmplusdev/xmcore/common/buf" 10 "github.com/xmplusdev/xmcore/testing/servers/tcp" 11 . "github.com/xmplusdev/xmcore/transport/internet" 12 ) 13 14 func TestTCPFastOpen(t *testing.T) { 15 tcpServer := tcp.Server{ 16 MsgProcessor: func(b []byte) []byte { 17 return b 18 }, 19 } 20 dest, err := tcpServer.StartContext(context.Background(), &SocketConfig{Tfo: 256}) 21 common.Must(err) 22 defer tcpServer.Close() 23 24 ctx := context.Background() 25 dialer := DefaultSystemDialer{} 26 conn, err := dialer.Dial(ctx, nil, dest, &SocketConfig{ 27 Tfo: 1, 28 }) 29 common.Must(err) 30 defer conn.Close() 31 32 _, err = conn.Write([]byte("abcd")) 33 common.Must(err) 34 35 b := buf.New() 36 common.Must2(b.ReadFrom(conn)) 37 if r := cmp.Diff(b.Bytes(), []byte("abcd")); r != "" { 38 t.Fatal(r) 39 } 40 }