Browse Source

Explictly wait for server ready

V2Ray 10 years ago
parent
commit
d77fdbd719
1 changed files with 8 additions and 0 deletions
  1. 8 0
      proxy/freedom/freedom_test.go

+ 8 - 0
proxy/freedom/freedom_test.go

@@ -3,6 +3,7 @@ package freedom
 import (
 import (
 	"io/ioutil"
 	"io/ioutil"
 	"net"
 	"net"
+	"sync"
 	"testing"
 	"testing"
 
 
 	"golang.org/x/net/proxy"
 	"golang.org/x/net/proxy"
@@ -20,6 +21,9 @@ func TestSocksTcpConnect(t *testing.T) {
 	data2Send := "Data to be sent to remote"
 	data2Send := "Data to be sent to remote"
 	data2Return := "Data to be returned to local"
 	data2Return := "Data to be returned to local"
 
 
+	var serverReady sync.Mutex
+	serverReady.Lock()
+
 	go func() {
 	go func() {
 		listener, err := net.ListenTCP("tcp", &net.TCPAddr{
 		listener, err := net.ListenTCP("tcp", &net.TCPAddr{
 			IP:   []byte{0, 0, 0, 0},
 			IP:   []byte{0, 0, 0, 0},
@@ -27,6 +31,8 @@ func TestSocksTcpConnect(t *testing.T) {
 			Zone: "",
 			Zone: "",
 		})
 		})
 		assert.Error(err).IsNil()
 		assert.Error(err).IsNil()
+
+		serverReady.Unlock()
 		conn, err := listener.Accept()
 		conn, err := listener.Accept()
 		assert.Error(err).IsNil()
 		assert.Error(err).IsNil()
 
 
@@ -65,6 +71,8 @@ func TestSocksTcpConnect(t *testing.T) {
 	socks5Client, err := proxy.SOCKS5("tcp", "127.0.0.1:38724", nil, proxy.Direct)
 	socks5Client, err := proxy.SOCKS5("tcp", "127.0.0.1:38724", nil, proxy.Direct)
 	assert.Error(err).IsNil()
 	assert.Error(err).IsNil()
 
 
+	serverReady.Lock()
+
 	targetServer := "127.0.0.1:48274"
 	targetServer := "127.0.0.1:48274"
 	conn, err := socks5Client.Dial("tcp", targetServer)
 	conn, err := socks5Client.Dial("tcp", targetServer)
 	assert.Error(err).IsNil()
 	assert.Error(err).IsNil()