diff options
author | Jakob Unterwurzacher | 2016-11-26 13:43:50 +0100 |
---|---|---|
committer | Jakob Unterwurzacher | 2016-11-26 13:43:50 +0100 |
commit | a6006c0d2bcef66cc3c6a6bb22de747b9be874c1 (patch) | |
tree | 2142af1e608f00c3280e0cdcb60ebc80e7393cff | |
parent | 55ea345620ff1b11280512239ef17f63f47b53a5 (diff) |
test.bash: lock against multiple parallel incovations
Running multiple test.bash in parallel causes all kinds of
mayham.
-rwxr-xr-x | test.bash | 21 |
1 files changed, 18 insertions, 3 deletions
@@ -3,9 +3,22 @@ set -eu cd "$(dirname "$0")" +MYNAME=$(basename "$0") +TESTDIR=/tmp/gocryptfs-test-parent +LOCKFILE=$TESTDIR/$MYNAME.lock -# Clean up dangling filesystem -for i in $(cat /proc/mounts | grep /tmp/gocryptfs-test-parent | cut -f2 -d" "); do +mkdir -p $TESTDIR + +( +# Prevent multiple parallel test.bash instances as this causes +# all kinds of mayham +if ! flock --nonblock 200 ; then + echo "Could not acquire lock on $LOCKFILE - already running?" + exit 1 +fi + +# Clean up dangling filesystems +for i in $(cat /proc/mounts | grep $TESTDIR | cut -f2 -d" "); do echo "Warning: unmounting leftover filesystem: $i" fusermount -u $i done @@ -16,10 +29,12 @@ go test ./... $* # The tests cannot to this themselves as they are run in parallel. # Don't descend into possibly still mounted example filesystems. -rm -Rf --one-file-system /tmp/gocryptfs-test-parent +rm -Rf --one-file-system $TESTDIR if go tool | grep vet > /dev/null ; then go tool vet -all -shadow . else echo "\"go tool vet\" not available - skipping" fi + +) 200> $LOCKFILE |