From 2d26e8f22135bcaeb12bf668f868b95a0f01c86b Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 15 Oct 2024 14:15:42 +0200 Subject: [PATCH 1/7] test: skip scaletest/reconnectingpty Test_Runner --- scaletest/createworkspaces/run_test.go | 1 - scaletest/reconnectingpty/run_test.go | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/scaletest/createworkspaces/run_test.go b/scaletest/createworkspaces/run_test.go index abb02fb8fa60c..73e26db71970b 100644 --- a/scaletest/createworkspaces/run_test.go +++ b/scaletest/createworkspaces/run_test.go @@ -31,7 +31,6 @@ import ( func Test_Runner(t *testing.T) { t.Parallel() - t.Skip("https://github.com/coder/internal/issues/98") if testutil.RaceEnabled() { t.Skip("Race detector enabled, skipping time-sensitive test.") diff --git a/scaletest/reconnectingpty/run_test.go b/scaletest/reconnectingpty/run_test.go index 817fabd1c5373..528bf6c082a8a 100644 --- a/scaletest/reconnectingpty/run_test.go +++ b/scaletest/reconnectingpty/run_test.go @@ -22,6 +22,7 @@ import ( func Test_Runner(t *testing.T) { t.Parallel() + t.Skip("https://github.com/coder/internal/issues/98") t.Run("OK", func(t *testing.T) { t.Parallel() From a474ffddc2d1cbeff35c428139804c76c7b50bb6 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 15 Oct 2024 14:46:10 +0200 Subject: [PATCH 2/7] test: scaletest/reconnectingpty: use `TerminalReader` --- scaletest/reconnectingpty/run_test.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scaletest/reconnectingpty/run_test.go b/scaletest/reconnectingpty/run_test.go index 528bf6c082a8a..e7fb538f5f896 100644 --- a/scaletest/reconnectingpty/run_test.go +++ b/scaletest/reconnectingpty/run_test.go @@ -22,7 +22,6 @@ import ( func Test_Runner(t *testing.T) { t.Parallel() - t.Skip("https://github.com/coder/internal/issues/98") t.Run("OK", func(t *testing.T) { t.Parallel() @@ -43,14 +42,16 @@ func Test_Runner(t *testing.T) { logs := bytes.NewBuffer(nil) err := runner.Run(ctx, "1", logs) - logStr := logs.String() - t.Log("Runner logs:\n\n" + logStr) require.NoError(t, err) - require.Contains(t, logStr, "Output:") + tr := testutil.NewTerminalReader(t, logs) + err = tr.ReadUntilString(ctx, "Output:") + require.NoError(t, err) + // OSX: Output:\n\thello world\n // Win: Output:\n\t\x1b[2J\x1b[m\x1b[H\x1b]0;Administrator: C:\\Program Files\\PowerShell\\7\\pwsh.exe\a\x1b[?25hhello world\n - require.Contains(t, logStr, "hello world\n") + err = tr.ReadUntilString(ctx, "hello world") + require.NoError(t, err) }) t.Run("NoLogOutput", func(t *testing.T) { From e703fd40c71f26b4b33fe502a39ad2673d6ccf2f Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 15 Oct 2024 15:33:24 +0200 Subject: [PATCH 3/7] one more --- scaletest/reconnectingpty/run_test.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scaletest/reconnectingpty/run_test.go b/scaletest/reconnectingpty/run_test.go index e7fb538f5f896..8ad024f5746aa 100644 --- a/scaletest/reconnectingpty/run_test.go +++ b/scaletest/reconnectingpty/run_test.go @@ -200,8 +200,7 @@ func Test_Runner(t *testing.T) { Init: workspacesdk.AgentReconnectingPTYInit{ Command: "echo 'hello world'; sleep 1", }, - ExpectOutput: "hello world", - LogOutput: false, + LogOutput: true, }) ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitSuperLong) @@ -209,8 +208,10 @@ func Test_Runner(t *testing.T) { logs := bytes.NewBuffer(nil) err := runner.Run(ctx, "1", logs) - logStr := logs.String() - t.Log("Runner logs:\n\n" + logStr) + require.NoError(t, err) + + tr := testutil.NewTerminalReader(t, logs) + err = tr.ReadUntilString(ctx, "hello world") require.NoError(t, err) }) From 6c045da0c3317b7c7785bb76466fad01dc061b52 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 15 Oct 2024 15:38:03 +0200 Subject: [PATCH 4/7] fix --- scaletest/reconnectingpty/run_test.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scaletest/reconnectingpty/run_test.go b/scaletest/reconnectingpty/run_test.go index 8ad024f5746aa..0fe072b3c8c27 100644 --- a/scaletest/reconnectingpty/run_test.go +++ b/scaletest/reconnectingpty/run_test.go @@ -180,10 +180,11 @@ func Test_Runner(t *testing.T) { logs := bytes.NewBuffer(nil) err := runner.Run(ctx, "1", logs) - logStr := logs.String() - t.Log("Runner logs:\n\n" + logStr) - require.Error(t, err) - require.ErrorContains(t, err, "expected timeout") + require.NoError(t, err) + + tr := testutil.NewTerminalReader(t, logs) + err = tr.ReadUntilString(ctx, "expected timeout") + require.NoError(t, err) }) }) From 451fd89afeec4ea58506d57b42b50e736a1ec271 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 15 Oct 2024 15:44:22 +0200 Subject: [PATCH 5/7] fix --- scaletest/reconnectingpty/run_test.go | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/scaletest/reconnectingpty/run_test.go b/scaletest/reconnectingpty/run_test.go index 0fe072b3c8c27..375162d868c2b 100644 --- a/scaletest/reconnectingpty/run_test.go +++ b/scaletest/reconnectingpty/run_test.go @@ -3,6 +3,7 @@ package reconnectingpty_test import ( "bytes" "context" + "io" "testing" "time" @@ -72,11 +73,12 @@ func Test_Runner(t *testing.T) { logs := bytes.NewBuffer(nil) err := runner.Run(ctx, "1", logs) - logStr := logs.String() - t.Log("Runner logs:\n\n" + logStr) require.NoError(t, err) - require.NotContains(t, logStr, "Output:") + tr := testutil.NewTerminalReader(t, logs) + err = tr.ReadUntilString(ctx, "Output:") + require.Error(t, err) + require.ErrorIs(t, err, io.EOF) }) t.Run("Timeout", func(t *testing.T) { @@ -226,8 +228,7 @@ func Test_Runner(t *testing.T) { Init: workspacesdk.AgentReconnectingPTYInit{ Command: "echo 'hello world'; sleep 1", }, - ExpectOutput: "bello borld", - LogOutput: false, + LogOutput: false, }) ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitSuperLong) @@ -235,10 +236,12 @@ func Test_Runner(t *testing.T) { logs := bytes.NewBuffer(nil) err := runner.Run(ctx, "1", logs) - logStr := logs.String() - t.Log("Runner logs:\n\n" + logStr) require.Error(t, err) - require.ErrorContains(t, err, `expected string "bello borld" not found`) + + tr := testutil.NewTerminalReader(t, logs) + err = tr.ReadUntilString(ctx, "bello borld") + require.Error(t, err) + require.ErrorIs(t, err, io.EOF) }) }) } From 82180b732c8761e777e90e89c36624ffd76f9b89 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 15 Oct 2024 15:54:51 +0200 Subject: [PATCH 6/7] remove skip --- scaletest/reconnectingpty/run_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/scaletest/reconnectingpty/run_test.go b/scaletest/reconnectingpty/run_test.go index 85422c5a54dc4..375162d868c2b 100644 --- a/scaletest/reconnectingpty/run_test.go +++ b/scaletest/reconnectingpty/run_test.go @@ -23,7 +23,6 @@ import ( func Test_Runner(t *testing.T) { t.Parallel() - t.Skip("https://github.com/coder/internal/issues/98") t.Run("OK", func(t *testing.T) { t.Parallel() From eced09c935e27ea04ee90f52fb052a2ffa370139 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 15 Oct 2024 16:19:50 +0200 Subject: [PATCH 7/7] fixes --- scaletest/reconnectingpty/run_test.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/scaletest/reconnectingpty/run_test.go b/scaletest/reconnectingpty/run_test.go index 375162d868c2b..84e2b0abf828f 100644 --- a/scaletest/reconnectingpty/run_test.go +++ b/scaletest/reconnectingpty/run_test.go @@ -182,11 +182,10 @@ func Test_Runner(t *testing.T) { logs := bytes.NewBuffer(nil) err := runner.Run(ctx, "1", logs) - require.NoError(t, err) - - tr := testutil.NewTerminalReader(t, logs) - err = tr.ReadUntilString(ctx, "expected timeout") - require.NoError(t, err) + logStr := logs.String() + t.Log("Runner logs:\n\n" + logStr) + require.Error(t, err) + require.ErrorContains(t, err, "expected timeout") }) }) @@ -228,7 +227,7 @@ func Test_Runner(t *testing.T) { Init: workspacesdk.AgentReconnectingPTYInit{ Command: "echo 'hello world'; sleep 1", }, - LogOutput: false, + LogOutput: true, }) ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitSuperLong) @@ -236,7 +235,7 @@ func Test_Runner(t *testing.T) { logs := bytes.NewBuffer(nil) err := runner.Run(ctx, "1", logs) - require.Error(t, err) + require.NoError(t, err) tr := testutil.NewTerminalReader(t, logs) err = tr.ReadUntilString(ctx, "bello borld")