Skip to content

Commit

Permalink
fix: address race condition in socks5 test (#278)
Browse files Browse the repository at this point in the history
  • Loading branch information
amircybersec authored Sep 11, 2024
1 parent 19f5184 commit 2c970d3
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions transport/socks5/stream_dialer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -167,17 +167,23 @@ func testExchange(tb testing.TB, listener *net.TCPListener, destAddr string, req
}

func TestConnectWithoutAuth(t *testing.T) {

// Create a SOCKS5 server.
server := socks5.NewServer()

var running sync.WaitGroup
// Create SOCKS5 proxy on localhost with a random port.
listener, err := net.Listen("tcp", "127.0.0.1:0")
require.NoError(t, err)
defer listener.Close()
defer func() {
listener.Close()
running.Wait()
}()

running.Add(1)
go func() {
defer running.Done()
err := server.Serve(listener)
t.Log("server is listening...")
if !errors.Is(err, net.ErrClosed) && err != nil {
require.NoError(t, err) // Assert no error if it's not the expected close error
}
Expand Down Expand Up @@ -205,14 +211,20 @@ func TestConnectWithAuth(t *testing.T) {
socks5.WithAuthMethods([]socks5.Authenticator{cator}),
)

var running sync.WaitGroup
// Create SOCKS5 proxy on localhost with a random port.
listener, err := net.Listen("tcp", "127.0.0.1:0")
require.NoError(t, err)
defer listener.Close()
address := listener.Addr().String()
defer func() {
listener.Close()
running.Wait()
}()

running.Add(1)
// Create SOCKS5 proxy on localhost port 8001
go func() {
defer running.Done()
err := server.Serve(listener)
if !errors.Is(err, net.ErrClosed) && err != nil {
require.NoError(t, err) // Assert no error if it's not the expected close error
Expand Down

0 comments on commit 2c970d3

Please sign in to comment.