@@ -28,13 +28,13 @@ func TestExecutor_WorkingDir_Set(t *testing.T) {
2828
2929 ex .jobSpec .WorkingDir = & workingDir
3030 ex .jobSpec .Commands = append (ex .jobSpec .Commands , "pwd" )
31- err = ex .setJobWorkingDir (context . TODO ())
31+ err = ex .setJobWorkingDir (t . Context ())
3232 require .NoError (t , err )
3333 require .Equal (t , workingDir , ex .jobWorkingDir )
3434 err = os .MkdirAll (workingDir , 0o755 )
3535 require .NoError (t , err )
3636
37- err = ex .execJob (context . TODO (), io .Writer (& b ))
37+ err = ex .execJob (t . Context (), io .Writer (& b ))
3838 assert .NoError (t , err )
3939 // Normalize line endings for cross-platform compatibility.
4040 assert .Equal (t , workingDir + "\n " , strings .ReplaceAll (b .String (), "\r \n " , "\n " ))
@@ -47,11 +47,11 @@ func TestExecutor_WorkingDir_NotSet(t *testing.T) {
4747 require .NoError (t , err )
4848 ex .jobSpec .WorkingDir = nil
4949 ex .jobSpec .Commands = append (ex .jobSpec .Commands , "pwd" )
50- err = ex .setJobWorkingDir (context . TODO ())
50+ err = ex .setJobWorkingDir (t . Context ())
5151 require .NoError (t , err )
5252 require .Equal (t , cwd , ex .jobWorkingDir )
5353
54- err = ex .execJob (context . TODO (), io .Writer (& b ))
54+ err = ex .execJob (t . Context (), io .Writer (& b ))
5555 assert .NoError (t , err )
5656 assert .Equal (t , cwd + "\n " , strings .ReplaceAll (b .String (), "\r \n " , "\n " ))
5757}
@@ -61,7 +61,7 @@ func TestExecutor_HomeDir(t *testing.T) {
6161 ex := makeTestExecutor (t )
6262 ex .jobSpec .Commands = append (ex .jobSpec .Commands , "echo ~" )
6363
64- err := ex .execJob (context . TODO (), io .Writer (& b ))
64+ err := ex .execJob (t . Context (), io .Writer (& b ))
6565 assert .NoError (t , err )
6666 assert .Equal (t , ex .homeDir + "\n " , strings .ReplaceAll (b .String (), "\r \n " , "\n " ))
6767}
@@ -71,7 +71,7 @@ func TestExecutor_NonZeroExit(t *testing.T) {
7171 ex .jobSpec .Commands = append (ex .jobSpec .Commands , "exit 100" )
7272 makeCodeTar (t , ex .codePath )
7373
74- err := ex .Run (context . TODO ())
74+ err := ex .Run (t . Context ())
7575 assert .Error (t , err )
7676 assert .NotEmpty (t , ex .jobStateHistory )
7777 exitStatus := ex .jobStateHistory [len (ex .jobStateHistory )- 1 ].ExitStatus
@@ -90,11 +90,11 @@ func TestExecutor_SSHCredentials(t *testing.T) {
9090 PrivateKey : & key ,
9191 }
9292
93- clean , err := ex .setupCredentials (context . TODO ())
93+ clean , err := ex .setupCredentials (t . Context ())
9494 defer clean ()
9595 require .NoError (t , err )
9696
97- err = ex .execJob (context . TODO (), io .Writer (& b ))
97+ err = ex .execJob (t . Context (), io .Writer (& b ))
9898 assert .NoError (t , err )
9999 assert .Equal (t , key , b .String ())
100100}
@@ -106,10 +106,10 @@ func TestExecutor_LocalRepo(t *testing.T) {
106106 ex .jobSpec .Commands = append (ex .jobSpec .Commands , cmd )
107107 makeCodeTar (t , ex .codePath )
108108
109- err := ex .setupRepo (context . TODO ())
109+ err := ex .setupRepo (t . Context ())
110110 require .NoError (t , err )
111111
112- err = ex .execJob (context . TODO (), io .Writer (& b ))
112+ err = ex .execJob (t . Context (), io .Writer (& b ))
113113 assert .NoError (t , err )
114114 assert .Equal (t , "bar\n " , strings .ReplaceAll (b .String (), "\r \n " , "\n " ))
115115}
@@ -119,7 +119,7 @@ func TestExecutor_Recover(t *testing.T) {
119119 ex .jobSpec .Commands = nil // cause a panic
120120 makeCodeTar (t , ex .codePath )
121121
122- err := ex .Run (context . TODO ())
122+ err := ex .Run (t . Context ())
123123 assert .ErrorContains (t , err , "recovered: " )
124124}
125125
@@ -136,7 +136,7 @@ func TestExecutor_MaxDuration(t *testing.T) {
136136 ex .jobSpec .MaxDuration = 1 // seconds
137137 makeCodeTar (t , ex .codePath )
138138
139- err := ex .Run (context . TODO ())
139+ err := ex .Run (t . Context ())
140140 assert .ErrorContains (t , err , "killed" )
141141}
142142
@@ -158,12 +158,12 @@ func TestExecutor_RemoteRepo(t *testing.T) {
158158 err := os .WriteFile (ex .codePath , []byte {}, 0o600 ) // empty diff
159159 require .NoError (t , err )
160160
161- err = ex .setJobWorkingDir (context . TODO ())
161+ err = ex .setJobWorkingDir (t . Context ())
162162 require .NoError (t , err )
163- err = ex .setupRepo (context . TODO ())
163+ err = ex .setupRepo (t . Context ())
164164 require .NoError (t , err )
165165
166- err = ex .execJob (context . TODO (), io .Writer (& b ))
166+ err = ex .execJob (t . Context (), io .Writer (& b ))
167167 assert .NoError (t , err )
168168 expected := fmt .Sprintf ("%s\n %s\n %s\n " , ex .getRepoData ().RepoHash , ex .getRepoData ().RepoConfigName , ex .getRepoData ().RepoConfigEmail )
169169 assert .Equal (t , expected , strings .ReplaceAll (b .String (), "\r \n " , "\n " ))
@@ -204,11 +204,13 @@ func makeTestExecutor(t *testing.T) *RunExecutor {
204204 },
205205 }
206206
207- temp := filepath .Join (baseDir , "temp" )
208- _ = os .Mkdir (temp , 0o700 )
209- home := filepath .Join (baseDir , "home" )
210- _ = os .Mkdir (home , 0o700 )
211- ex , _ := NewRunExecutor (temp , home , new (sshdMock ))
207+ tempDir := filepath .Join (baseDir , "temp" )
208+ require .NoError (t , os .Mkdir (tempDir , 0o700 ))
209+ homeDir := filepath .Join (baseDir , "home" )
210+ require .NoError (t , os .Mkdir (homeDir , 0o700 ))
211+ dstackDir := filepath .Join (baseDir , "dstack" )
212+ require .NoError (t , os .Mkdir (dstackDir , 0o755 ))
213+ ex , _ := NewRunExecutor (tempDir , homeDir , dstackDir , new (sshdMock ))
212214 ex .SetJob (body )
213215 ex .SetCodePath (filepath .Join (baseDir , "code" )) // note: create file before run
214216 ex .setJobWorkingDir (context .Background ())
@@ -261,7 +263,7 @@ func TestExecutor_Logs(t *testing.T) {
261263 // \033[31m = red text, \033[1;32m = bold green text, \033[0m = reset
262264 ex .jobSpec .Commands = append (ex .jobSpec .Commands , "printf '\\ 033[31mRed Hello World\\ 033[0m\\ n' && printf '\\ 033[1;32mBold Green Line 2\\ 033[0m\\ n' && printf 'Line 3\\ n'" )
263265
264- err := ex .execJob (context . TODO (), io .Writer (& b ))
266+ err := ex .execJob (t . Context (), io .Writer (& b ))
265267 assert .NoError (t , err )
266268
267269 logHistory := ex .GetHistory (0 ).JobLogs
@@ -285,7 +287,7 @@ func TestExecutor_LogsWithErrors(t *testing.T) {
285287 ex := makeTestExecutor (t )
286288 ex .jobSpec .Commands = append (ex .jobSpec .Commands , "echo 'Success message' && echo 'Error message' >&2 && exit 1" )
287289
288- err := ex .execJob (context . TODO (), io .Writer (& b ))
290+ err := ex .execJob (t . Context (), io .Writer (& b ))
289291 assert .Error (t , err )
290292
291293 logHistory := ex .GetHistory (0 ).JobLogs
@@ -309,7 +311,7 @@ func TestExecutor_LogsAnsiCodeHandling(t *testing.T) {
309311
310312 ex .jobSpec .Commands = append (ex .jobSpec .Commands , cmd )
311313
312- err := ex .execJob (context . TODO (), io .Writer (& b ))
314+ err := ex .execJob (t . Context (), io .Writer (& b ))
313315 assert .NoError (t , err )
314316
315317 // 1. Check WebSocket logs, which should preserve ANSI codes.
0 commit comments