sockopt_linux_test.go 741 B

123456789101112131415161718192021222324252627282930313233
  1. // +build linux
  2. package tcp_test
  3. import (
  4. "context"
  5. "strings"
  6. "testing"
  7. "v2ray.com/core/common"
  8. "v2ray.com/core/testing/servers/tcp"
  9. "v2ray.com/core/transport/internet"
  10. . "v2ray.com/core/transport/internet/tcp"
  11. . "v2ray.com/ext/assert"
  12. )
  13. func TestGetOriginalDestination(t *testing.T) {
  14. assert := With(t)
  15. tcpServer := tcp.Server{}
  16. dest, err := tcpServer.Start()
  17. assert(err, IsNil)
  18. defer tcpServer.Close()
  19. config, err := internet.ToMemoryStreamConfig(nil)
  20. common.Must(err)
  21. conn, err := Dial(context.Background(), dest, config)
  22. assert(err, IsNil)
  23. defer conn.Close()
  24. originalDest, err := GetOriginalDestination(conn)
  25. assert(dest == originalDest || strings.Contains(err.Error(), "failed to call getsockopt"), IsTrue)
  26. }