From 1c54fcd04bbf274dd5d4300e433bdcb1bb32e1ce Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Mon, 11 Jul 2016 20:31:36 +0200 Subject: tests: use unmount wrapper in ResetTmpDir This should make it work on OSX. Also, split unmount into two functions. Depending on what you want, * UnmountErr returns the resulting error * UnmountPanic panics if the error was not nil --- tests/test_helpers/helpers.go | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'tests/test_helpers') diff --git a/tests/test_helpers/helpers.go b/tests/test_helpers/helpers.go index d2c12a9..b42adcd 100644 --- a/tests/test_helpers/helpers.go +++ b/tests/test_helpers/helpers.go @@ -11,7 +11,6 @@ import ( "runtime" "syscall" "testing" - "time" "github.com/rfjakob/gocryptfs/internal/nametransform" ) @@ -50,9 +49,11 @@ func ResetTmpDir(plaintextNames bool) { d := filepath.Join(TmpDir, e.Name()) err = os.Remove(d) if err != nil { - fu := exec.Command("fusermount", "-z", "-u", d) - fu.Run() - os.RemoveAll(d) + UnmountErr(d) + err = os.RemoveAll(d) + if err != nil { + panic(err) + } } } } @@ -141,23 +142,26 @@ func MountOrFatal(t *testing.T, c string, p string, extraArgs ...string) { } } -// Unmount PLAINDIR "p" -func Unmount(p string) error { +// UnmountPanic tries to umount "dir" and panics on error. +func UnmountPanic(dir string) { + err := UnmountErr(dir) + if err != nil { + fmt.Println(err) + panic(err) + } +} + +// UnmountError tries to unmount "dir" and returns the resulting error. +func UnmountErr(dir string) error { var cmd *exec.Cmd if runtime.GOOS == "darwin" { - cmd = exec.Command("umount", p) + cmd = exec.Command("umount", dir) } else { - cmd = exec.Command("fusermount", "-u", "-z", p) + cmd = exec.Command("fusermount", "-u", "-z", dir) } cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr - err := cmd.Run() - if err != nil { - fmt.Println(err) - panic(err) - } - time.Sleep(10 * time.Millisecond) - return err + return cmd.Run() } // Return md5 string for file "filename" -- cgit v1.2.3