|
5 | 5 | "bytes" |
6 | 6 | "context" |
7 | 7 | "encoding/json" |
| 8 | + "errors" |
8 | 9 | "fmt" |
9 | 10 | "io" |
10 | 11 | "log" |
@@ -117,6 +118,7 @@ func NewExecutorTester(ctx context.Context) (*ExecutorTester, error) { |
117 | 118 | // use the mock instead. |
118 | 119 | "BUILDKITE_OVERRIDE_SELF=buildkite-agent", |
119 | 120 | }, |
| 121 | + HomeDir: homeDir, |
120 | 122 | PathDir: pathDir, |
121 | 123 | BuildDir: buildDir, |
122 | 124 | HooksDir: hooksDir, |
@@ -356,39 +358,24 @@ func (e *ExecutorTester) Close() { |
356 | 358 | _ = e.CloseErr() |
357 | 359 | } |
358 | 360 |
|
359 | | -// CloseErr closes the tester and returns any cleanup error. |
| 361 | +// CloseErr closes the tester and returns all cleanup errors. |
360 | 362 | func (e *ExecutorTester) CloseErr() error { |
| 363 | + var errs []error |
361 | 364 | for _, mock := range e.mocks { |
362 | | - if err := mock.Close(); err != nil { |
363 | | - return err |
364 | | - } |
| 365 | + errs = append(errs, mock.Close()) |
365 | 366 | } |
366 | 367 | if e.Repo != nil { |
367 | | - if err := e.Repo.CloseErr(); err != nil { |
368 | | - return err |
369 | | - } |
370 | | - } |
371 | | - if err := os.RemoveAll(e.HomeDir); err != nil { |
372 | | - return err |
373 | | - } |
374 | | - if err := os.RemoveAll(e.BuildDir); err != nil { |
375 | | - return err |
376 | | - } |
377 | | - if err := os.RemoveAll(e.HooksDir); err != nil { |
378 | | - return err |
379 | | - } |
380 | | - if err := os.RemoveAll(e.PathDir); err != nil { |
381 | | - return err |
382 | | - } |
383 | | - if err := os.RemoveAll(e.PluginsDir); err != nil { |
384 | | - return err |
385 | | - } |
386 | | - if e.GitMirrorsDir != "" { |
387 | | - if err := os.RemoveAll(e.GitMirrorsDir); err != nil { |
388 | | - return err |
389 | | - } |
390 | | - } |
391 | | - return nil |
| 368 | + errs = append(errs, e.Repo.CloseErr()) |
| 369 | + } |
| 370 | + errs = append(errs, |
| 371 | + os.RemoveAll(e.HomeDir), |
| 372 | + os.RemoveAll(e.BuildDir), |
| 373 | + os.RemoveAll(e.HooksDir), |
| 374 | + os.RemoveAll(e.PathDir), |
| 375 | + os.RemoveAll(e.PluginsDir), |
| 376 | + os.RemoveAll(e.GitMirrorsDir), |
| 377 | + ) |
| 378 | + return errors.Join(errs...) |
392 | 379 | } |
393 | 380 |
|
394 | 381 | func mockEnvAsJSONOnStdout(e *ExecutorTester) func(c *bintest.Call) { |
|
0 commit comments