@@ -29,7 +29,7 @@ func TestRun(t *testing.T) {
29
29
Args : []string {"sh" , "-c" , "cat" },
30
30
}
31
31
var stderr , stdout bytes.Buffer
32
- hookErr , err := Run (ctx , hook , []byte ("{}" ), & stdout , & stderr , DefaultPostKillTimeout )
32
+ hookErr , err := RunHook (ctx , RunOptions { Hook : hook , State : []byte ("{}" ), Stdout : & stdout , Stderr : & stderr , PostKillTimeout : DefaultPostKillTimeout } )
33
33
if err != nil {
34
34
t .Fatal (err )
35
35
}
@@ -46,7 +46,7 @@ func TestRunIgnoreOutput(t *testing.T) {
46
46
Path : path ,
47
47
Args : []string {"sh" , "-c" , "cat" },
48
48
}
49
- hookErr , err := Run (ctx , hook , []byte ("{}" ), nil , nil , DefaultPostKillTimeout )
49
+ hookErr , err := RunHook (ctx , RunOptions { Hook : hook , State : []byte ("{}" ), PostKillTimeout : DefaultPostKillTimeout } )
50
50
if err != nil {
51
51
t .Fatal (err )
52
52
}
@@ -60,7 +60,7 @@ func TestRunFailedStart(t *testing.T) {
60
60
hook := & rspec.Hook {
61
61
Path : "/does/not/exist" ,
62
62
}
63
- hookErr , err := Run (ctx , hook , []byte ("{}" ), nil , nil , DefaultPostKillTimeout )
63
+ hookErr , err := RunHook (ctx , RunOptions { Hook : hook , State : []byte ("{}" ), PostKillTimeout : DefaultPostKillTimeout } )
64
64
if err == nil {
65
65
t .Fatal ("unexpected success" )
66
66
}
@@ -125,7 +125,7 @@ func TestRunEnvironment(t *testing.T) {
125
125
t .Run (test .name , func (t * testing.T ) {
126
126
var stderr , stdout bytes.Buffer
127
127
hook .Env = test .env
128
- hookErr , err := Run (ctx , hook , []byte ("{}" ), & stdout , & stderr , DefaultPostKillTimeout )
128
+ hookErr , err := RunHook (ctx , RunOptions { Hook : hook , State : []byte ("{}" ), Stdout : & stdout , Stderr : & stderr , PostKillTimeout : DefaultPostKillTimeout } )
129
129
if err != nil {
130
130
t .Fatal (err )
131
131
}
@@ -143,6 +143,28 @@ func TestRunEnvironment(t *testing.T) {
143
143
}
144
144
}
145
145
146
+ func TestRunCwd (t * testing.T ) {
147
+ ctx := context .Background ()
148
+ hook := & rspec.Hook {
149
+ Path : path ,
150
+ Args : []string {"sh" , "-c" , "pwd" },
151
+ }
152
+ cwd , err := os .MkdirTemp ("" , "userdata" )
153
+ if err != nil {
154
+ t .Fatal (err )
155
+ }
156
+ var stderr , stdout bytes.Buffer
157
+ hookErr , err := RunHook (ctx , RunOptions {Hook : hook , Dir : cwd , State : []byte ("{}" ), Stdout : & stdout , Stderr : & stderr , PostKillTimeout : DefaultPostKillTimeout })
158
+ if err != nil {
159
+ t .Fatal (err )
160
+ }
161
+ if hookErr != nil {
162
+ t .Fatal (hookErr )
163
+ }
164
+ assert .Equal (t , "" , stderr .String ())
165
+ assert .Equal (t , strings .TrimSuffix (stdout .String (), "\n " ), cwd )
166
+ }
167
+
146
168
func TestRunCancel (t * testing.T ) {
147
169
hook := & rspec.Hook {
148
170
Path : path ,
@@ -186,7 +208,7 @@ func TestRunCancel(t *testing.T) {
186
208
defer cancel ()
187
209
}
188
210
hook .Timeout = test .hookTimeout
189
- hookErr , err := Run (ctx , hook , []byte ("{}" ), & stdout , & stderr , DefaultPostKillTimeout )
211
+ hookErr , err := RunHook (ctx , RunOptions { Hook : hook , State : []byte ("{}" ), Stdout : & stdout , Stderr : & stderr , PostKillTimeout : DefaultPostKillTimeout } )
190
212
assert .Equal (t , test .expectedRunError , err )
191
213
if test .expectedHookError == "" {
192
214
if hookErr != nil {
@@ -208,7 +230,7 @@ func TestRunKillTimeout(t *testing.T) {
208
230
Path : path ,
209
231
Args : []string {"sh" , "-c" , "sleep 1" },
210
232
}
211
- hookErr , err := Run (ctx , hook , []byte ("{}" ), nil , nil , time .Duration (0 ))
233
+ hookErr , err := RunHook (ctx , RunOptions { Hook : hook , State : []byte ("{}" ), PostKillTimeout : time .Duration (0 )} )
212
234
assert .Equal (t , context .DeadlineExceeded , err )
213
235
assert .Regexp (t , "^(failed to reap process within 0s of the kill signal|executing \\ [sh -c sleep 1]: signal: killed)$" , hookErr )
214
236
}
0 commit comments