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 | 
