summaryrefslogtreecommitdiff
path: root/tests/test_helpers
diff options
context:
space:
mode:
authorJakob Unterwurzacher2018-06-07 22:50:30 +0200
committerJakob Unterwurzacher2018-06-07 22:50:30 +0200
commit53d6a9999dd0e4c31636d16179f284fff35a35d9 (patch)
treed2a41d46e397fcfc57c9d2da87baf9599b972704 /tests/test_helpers
parente29a81efc3df88b451a4a9464724a952d97b4115 (diff)
main: accept -dev, -nodev, -suid, -nosuid, -exec, -noexec
When mounted via /etc/fstab like this, /a /b fuse.gocryptfs default 0 0 we always get extra options passed. As reported by @mahkoh at https://github.com/rfjakob/gocryptfs/pull/233 : mount passes `-o noexec` if `-o user` is set and `-o exec` is not set. If both `-o user` and `-o exec` are set, it passes `-o exec`. Make these options work, and in addtion, also make -suid and -rw work the same way. Reported-by: @mahkoh
Diffstat (limited to 'tests/test_helpers')
-rw-r--r--tests/test_helpers/helpers.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/tests/test_helpers/helpers.go b/tests/test_helpers/helpers.go
index e7fcf4b..ef748e2 100644
--- a/tests/test_helpers/helpers.go
+++ b/tests/test_helpers/helpers.go
@@ -433,9 +433,14 @@ func ExtractCmdExitCode(err error) int {
return 0
}
// OMG this is convoluted
- err2 := err.(*exec.ExitError)
- code := err2.Sys().(syscall.WaitStatus).ExitStatus()
- return code
+ if err2, ok := err.(*exec.ExitError); ok {
+ return err2.Sys().(syscall.WaitStatus).ExitStatus()
+ }
+ if err2, ok := err.(*os.PathError); ok {
+ return int(err2.Err.(syscall.Errno))
+ }
+ log.Panicf("could not decode error %#v", err)
+ return 0
}
// ListFds lists our open file descriptors.