mirror of https://github.com/v2ray/v2ray-core
				
				
				
			
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
package internet_test
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"v2ray.com/core/common"
 | 
						|
	"v2ray.com/core/common/buf"
 | 
						|
	"v2ray.com/core/common/compare"
 | 
						|
	"v2ray.com/core/testing/servers/tcp"
 | 
						|
	. "v2ray.com/core/transport/internet"
 | 
						|
)
 | 
						|
 | 
						|
func TestTCPFastOpen(t *testing.T) {
 | 
						|
	tcpServer := tcp.Server{
 | 
						|
		MsgProcessor: func(b []byte) []byte {
 | 
						|
			return b
 | 
						|
		},
 | 
						|
	}
 | 
						|
	dest, err := tcpServer.StartContext(ContextWithStreamSettings(context.Background(), &MemoryStreamConfig{
 | 
						|
		SocketSettings: &SocketConfig{
 | 
						|
			Tfo: SocketConfig_Enable,
 | 
						|
		},
 | 
						|
	}))
 | 
						|
	common.Must(err)
 | 
						|
	defer tcpServer.Close()
 | 
						|
 | 
						|
	ctx := context.Background()
 | 
						|
	ctx = ContextWithStreamSettings(ctx, &MemoryStreamConfig{
 | 
						|
		SocketSettings: &SocketConfig{
 | 
						|
			Tfo: SocketConfig_Enable,
 | 
						|
		},
 | 
						|
	})
 | 
						|
	dialer := DefaultSystemDialer{}
 | 
						|
	conn, err := dialer.Dial(ctx, nil, dest)
 | 
						|
	common.Must(err)
 | 
						|
	defer conn.Close()
 | 
						|
 | 
						|
	_, err = conn.Write([]byte("abcd"))
 | 
						|
	common.Must(err)
 | 
						|
 | 
						|
	b := buf.New()
 | 
						|
	common.Must(b.Reset(buf.ReadFrom(conn)))
 | 
						|
	if err := compare.BytesEqualWithDetail(b.Bytes(), []byte("abcd")); err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
	}
 | 
						|
}
 |