aboutsummaryrefslogtreecommitdiff
path: root/tests/test_helpers
diff options
context:
space:
mode:
authorJakob Unterwurzacher2019-01-03 15:38:51 +0100
committerJakob Unterwurzacher2019-01-03 15:38:51 +0100
commitbb9884549bab29e73dd0a7cb98ed7e8422796306 (patch)
treea85bd1b6552793a42c6761a029902cbec84333cc /tests/test_helpers
parent4f66d66755da63c78b09201c6c72353009251cf2 (diff)
tests: allow one extra fd in fd leak detector (dirCache)
The gocryptfs process may keep one fd open for up to one second in the dirCache.
Diffstat (limited to 'tests/test_helpers')
-rw-r--r--tests/test_helpers/mount_unmount.go7
1 files changed, 5 insertions, 2 deletions
diff --git a/tests/test_helpers/mount_unmount.go b/tests/test_helpers/mount_unmount.go
index 8ba96ec..39f7c77 100644
--- a/tests/test_helpers/mount_unmount.go
+++ b/tests/test_helpers/mount_unmount.go
@@ -122,6 +122,9 @@ func UnmountPanic(dir string) {
}
}
+// gocryptfs may hold up to maxCacheFds open for caching
+const maxCacheFds = 1
+
// UnmountErr tries to unmount "dir", retrying 10 times, and returns the
// resulting error.
func UnmountErr(dir string) (err error) {
@@ -146,7 +149,7 @@ func UnmountErr(dir string) (err error) {
// hope that all close commands get through to the gocryptfs
// process.
fdsNow = ListFds(pid)
- if len(fdsNow) <= len(fds) {
+ if len(fdsNow) <= len(fds)+maxCacheFds {
break
}
fmt.Printf("UnmountErr: fdsOld=%d fdsNow=%d, retrying\n", len(fds), len(fdsNow))
@@ -159,7 +162,7 @@ func UnmountErr(dir string) (err error) {
cmd.Stderr = os.Stderr
err = cmd.Run()
if err == nil {
- if len(fdsNow) > len(fds) {
+ if len(fdsNow) > len(fds)+maxCacheFds {
return fmt.Errorf("FD leak? pid=%d dir=%q, fds:\nold=%v \nnew=%v\n", pid, dir, fds, fdsNow)
}
return nil