Chromium Code Reviews| Index: go/src/infra/libs/infra_util/test_utils.go |
| diff --git a/go/src/infra/libs/infra_util/test_utils.go b/go/src/infra/libs/infra_util/test_utils.go |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..2e1aa266d5812944fd1a4ea26ce58b2fd84c765d |
| --- /dev/null |
| +++ b/go/src/infra/libs/infra_util/test_utils.go |
| @@ -0,0 +1,25 @@ |
| +package infra_util |
| + |
| +import ( |
| + "io/ioutil" |
| + "os" |
| +) |
| + |
| +func WithTempDir(dir, name string, f func(tmpdir string)) { |
| + var pval interface{} |
| + d, err := ioutil.TempDir(dir, name) |
| + if err != nil { |
| + panic(err) |
| + } |
| + func() { |
| + defer func() { pval = recover() }() |
| + f(d) |
| + }() |
| + err = os.RemoveAll(d) |
| + if err != nil { |
| + panic(err) |
| + } |
| + if pval != nil { |
| + panic(pval) |
| + } |
| +} |