testutil: add testutil.Chdir() helper
A tiny helper to run a specific function inside a different dir, useful in our testsuite.
This commit is contained in:
parent
ccb4269b62
commit
2f0caddf91
2 changed files with 28 additions and 0 deletions
|
|
@ -110,3 +110,19 @@ func CaptureStdio(t *testing.T, f func()) (string, string) {
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
return stdout.String(), stderr.String()
|
return stdout.String(), stderr.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func Chdir(t *testing.T, dir string, f func()) {
|
||||||
|
cwd, err := os.Getwd()
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("%s", err.Error())
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
os.Chdir(cwd)
|
||||||
|
}()
|
||||||
|
|
||||||
|
err = os.Chdir(dir)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("%s", err.Error())
|
||||||
|
}
|
||||||
|
f()
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,3 +34,15 @@ func TestCaptureStdout(t *testing.T) {
|
||||||
assert.Equal(t, "output on stdout", stdout)
|
assert.Equal(t, "output on stdout", stdout)
|
||||||
assert.Equal(t, "output on stderr", stderr)
|
assert.Equal(t, "output on stderr", stderr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestChroot(t *testing.T) {
|
||||||
|
tmpdir := t.TempDir()
|
||||||
|
testutil.Chdir(t, tmpdir, func() {
|
||||||
|
cwd, err := os.Getwd()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, tmpdir, cwd)
|
||||||
|
})
|
||||||
|
cwd, err := os.Getwd()
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.NotEqual(t, tmpdir, cwd)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue