@@ -3,6 +3,7 @@ package agentscripts_test
3
3
import (
4
4
"context"
5
5
"path/filepath"
6
+ "runtime"
6
7
"testing"
7
8
"time"
8
9
@@ -17,6 +18,7 @@ import (
17
18
"github.com/coder/coder/v2/agent/agentssh"
18
19
"github.com/coder/coder/v2/codersdk"
19
20
"github.com/coder/coder/v2/codersdk/agentsdk"
21
+ "github.com/coder/coder/v2/testutil"
20
22
)
21
23
22
24
func TestMain (m * testing.M ) {
@@ -58,17 +60,35 @@ func TestEnv(t *testing.T) {
58
60
})
59
61
defer runner .Close ()
60
62
id := uuid .New ()
63
+ script := "echo $CODER_SCRIPT_DATA_DIR\n echo $CODER_SCRIPT_BIN_DIR\n "
64
+ if runtime .GOOS == "windows" {
65
+ script = `cmd.exe /c "echo %CODER_SCRIPT_DATA_DIR%\r\necho %CODER_SCRIPT_BIN_DIR%\r\n"`
66
+ }
61
67
err := runner .Init ([]codersdk.WorkspaceAgentScript {{
62
68
LogSourceID : id ,
63
- Script : "echo $CODER_SCRIPT_DATA_DIR \n echo $CODER_SCRIPT_BIN_DIR \n " ,
69
+ Script : script ,
64
70
}})
65
71
require .NoError (t , err )
66
- require .NoError (t , runner .Execute (context .Background (), func (script codersdk.WorkspaceAgentScript ) bool {
72
+
73
+ ctx := testutil .Context (t , testutil .WaitLong )
74
+
75
+ require .NoError (t , runner .Execute (ctx , func (script codersdk.WorkspaceAgentScript ) bool {
67
76
return true
68
77
}))
69
- log := <- logs
70
- require .Contains (t , log .Logs [0 ].Output , filepath .Join (runner .DataDir (), id .String ()))
71
- require .Contains (t , log .Logs [1 ].Output , runner .ScriptBinDir ())
78
+ var log []agentsdk.Log
79
+ for {
80
+ select {
81
+ case <- ctx .Done ():
82
+ require .Fail (t , "timed out waiting for logs" )
83
+ case l := <- logs :
84
+ log = append (log , l .Logs ... )
85
+ }
86
+ if len (log ) >= 2 {
87
+ break
88
+ }
89
+ }
90
+ require .Contains (t , log [0 ].Output , filepath .Join (runner .DataDir (), id .String ()))
91
+ require .Contains (t , log [1 ].Output , runner .ScriptBinDir ())
72
92
}
73
93
74
94
func TestTimeout (t * testing.T ) {
0 commit comments