sockopt_test.go 909 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package internet_test
  2. import (
  3. "context"
  4. "testing"
  5. "v2ray.com/core/common"
  6. "v2ray.com/core/common/buf"
  7. "v2ray.com/core/common/compare"
  8. "v2ray.com/core/testing/servers/tcp"
  9. . "v2ray.com/core/transport/internet"
  10. )
  11. func TestTCPFastOpen(t *testing.T) {
  12. tcpServer := tcp.Server{
  13. MsgProcessor: func(b []byte) []byte {
  14. return b
  15. },
  16. }
  17. dest, err := tcpServer.Start()
  18. common.Must(err)
  19. defer tcpServer.Close()
  20. ctx := context.Background()
  21. ctx = ContextWithStreamSettings(ctx, &MemoryStreamConfig{
  22. SocketSettings: &SocketConfig{
  23. Tfo: SocketConfig_Enable,
  24. },
  25. })
  26. dialer := DefaultSystemDialer{}
  27. conn, err := dialer.Dial(ctx, nil, dest)
  28. common.Must(err)
  29. defer conn.Close()
  30. _, err = conn.Write([]byte("abcd"))
  31. common.Must(err)
  32. b := buf.New()
  33. common.Must(b.Reset(buf.ReadFrom(conn)))
  34. if err := compare.BytesEqualWithDetail(b.Bytes(), []byte("abcd")); err != nil {
  35. t.Fatal(err)
  36. }
  37. }