github.com/v2fly/v2ray-core/v5@v5.16.2-0.20240507031116-8191faa6e095/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 9 "github.com/v2fly/v2ray-core/v5/common" 10 "github.com/v2fly/v2ray-core/v5/common/buf" 11 "github.com/v2fly/v2ray-core/v5/testing/servers/tcp" 12 . "github.com/v2fly/v2ray-core/v5/transport/internet" 13 ) 14 15 func TestTCPFastOpen(t *testing.T) { 16 tcpServer := tcp.Server{ 17 MsgProcessor: func(b []byte) []byte { 18 return b 19 }, 20 } 21 dest, err := tcpServer.StartContext(context.Background(), &SocketConfig{Tfo: SocketConfig_Enable}) 22 common.Must(err) 23 defer tcpServer.Close() 24 25 ctx := context.Background() 26 dialer := DefaultSystemDialer{} 27 conn, err := dialer.Dial(ctx, nil, dest, &SocketConfig{ 28 Tfo: SocketConfig_Enable, 29 }) 30 common.Must(err) 31 defer conn.Close() 32 33 _, err = conn.Write([]byte("abcd")) 34 common.Must(err) 35 36 b := buf.New() 37 common.Must2(b.ReadFrom(conn)) 38 if r := cmp.Diff(b.Bytes(), []byte("abcd")); r != "" { 39 t.Fatal(r) 40 } 41 }