mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
test(agent): Fix tests without cmd.Wait() (#7029)
This commit is contained in:
committed by
GitHub
parent
2da0702009
commit
121c2bcde8
@ -480,10 +480,24 @@ func TestAgent_TCPLocalForwarding(t *testing.T) {
|
||||
}
|
||||
}()
|
||||
|
||||
pty := ptytest.New(t)
|
||||
|
||||
cmd := setupSSHCommand(t, []string{"-L", fmt.Sprintf("%d:127.0.0.1:%d", randomPort, remotePort)}, []string{"sleep", "5"})
|
||||
cmd.Stdin = pty.Input()
|
||||
cmd.Stdout = pty.Output()
|
||||
cmd.Stderr = pty.Output()
|
||||
err = cmd.Start()
|
||||
require.NoError(t, err)
|
||||
|
||||
go func() {
|
||||
err := cmd.Wait()
|
||||
select {
|
||||
case <-done:
|
||||
default:
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
}()
|
||||
|
||||
require.Eventually(t, func() bool {
|
||||
conn, err := net.Dial("tcp", "127.0.0.1:"+strconv.Itoa(randomPort))
|
||||
if err != nil {
|
||||
@ -547,10 +561,24 @@ func TestAgent_TCPRemoteForwarding(t *testing.T) {
|
||||
}
|
||||
}()
|
||||
|
||||
pty := ptytest.New(t)
|
||||
|
||||
cmd := setupSSHCommand(t, []string{"-R", fmt.Sprintf("127.0.0.1:%d:127.0.0.1:%d", randomPort, localPort)}, []string{"sleep", "5"})
|
||||
cmd.Stdin = pty.Input()
|
||||
cmd.Stdout = pty.Output()
|
||||
cmd.Stderr = pty.Output()
|
||||
err = cmd.Start()
|
||||
require.NoError(t, err)
|
||||
|
||||
go func() {
|
||||
err := cmd.Wait()
|
||||
select {
|
||||
case <-done:
|
||||
default:
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
}()
|
||||
|
||||
require.Eventually(t, func() bool {
|
||||
conn, err := net.Dial("tcp", fmt.Sprintf("127.0.0.1:%d", randomPort))
|
||||
if err != nil {
|
||||
@ -612,10 +640,24 @@ func TestAgent_UnixLocalForwarding(t *testing.T) {
|
||||
}
|
||||
}()
|
||||
|
||||
pty := ptytest.New(t)
|
||||
|
||||
cmd := setupSSHCommand(t, []string{"-L", fmt.Sprintf("%s:%s", localSocketPath, remoteSocketPath)}, []string{"sleep", "5"})
|
||||
cmd.Stdin = pty.Input()
|
||||
cmd.Stdout = pty.Output()
|
||||
cmd.Stderr = pty.Output()
|
||||
err = cmd.Start()
|
||||
require.NoError(t, err)
|
||||
|
||||
go func() {
|
||||
err := cmd.Wait()
|
||||
select {
|
||||
case <-done:
|
||||
default:
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
}()
|
||||
|
||||
require.Eventually(t, func() bool {
|
||||
_, err := os.Stat(localSocketPath)
|
||||
return err == nil
|
||||
@ -670,10 +712,24 @@ func TestAgent_UnixRemoteForwarding(t *testing.T) {
|
||||
}
|
||||
}()
|
||||
|
||||
pty := ptytest.New(t)
|
||||
|
||||
cmd := setupSSHCommand(t, []string{"-R", fmt.Sprintf("%s:%s", remoteSocketPath, localSocketPath)}, []string{"sleep", "5"})
|
||||
cmd.Stdin = pty.Input()
|
||||
cmd.Stdout = pty.Output()
|
||||
cmd.Stderr = pty.Output()
|
||||
err = cmd.Start()
|
||||
require.NoError(t, err)
|
||||
|
||||
go func() {
|
||||
err := cmd.Wait()
|
||||
select {
|
||||
case <-done:
|
||||
default:
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
}()
|
||||
|
||||
// It's possible that the socket is created but the server is not ready to
|
||||
// accept connections yet. We need to retry until we can connect.
|
||||
var conn net.Conn
|
||||
|
Reference in New Issue
Block a user