diff options
| author | Jakob Unterwurzacher | 2016-05-05 12:58:44 +0200 | 
|---|---|---|
| committer | Jakob Unterwurzacher | 2016-05-05 12:58:44 +0200 | 
| commit | e97962bd3f9ef8cb9fbd57bd2a2424b1cc28ec75 (patch) | |
| tree | 150957e33806f92bac85b490cd214be55c364712 /stress_tests/fsstress-loopback.bash | |
| parent | cf29ce37627fd6ba4416dd9eb5e56bed44128131 (diff) | |
stress_tests: add stress test scripts
These were hosted at https://github.com/rfjakob/fsstress . To
make them easier to use for gocryptfs users and developers, add
them to the main repo.
Diffstat (limited to 'stress_tests/fsstress-loopback.bash')
| -rwxr-xr-x | stress_tests/fsstress-loopback.bash | 75 | 
1 files changed, 75 insertions, 0 deletions
| diff --git a/stress_tests/fsstress-loopback.bash b/stress_tests/fsstress-loopback.bash new file mode 100755 index 0000000..df60cd0 --- /dev/null +++ b/stress_tests/fsstress-loopback.bash @@ -0,0 +1,75 @@ +#!/bin/bash +set -eu + +# Backing directory +DIR=/tmp/a +# Mountpoint +MNT=/tmp/b +# Debug log +LOG=/tmp/log.txt +# fsstress binary +FSSTRESS=~/src/xfstests/ltp/fsstress + +if [ ! -x $FSSTRESS ] +then +	echo "fsstress binary not found, adjust FSSTRESS=$FSSTRESS" +	exit 1 +fi + +# Cleanup + Setup +fusermount -u -z $MNT &> /dev/null || true +mkdir -p $DIR $MNT +rm -Rf $DIR/* +rm -Rf $MNT/* + +# FS-specific compile and mount +MYNAME=$(basename $0) +if [ $MYNAME = fsstress-loopback.bash ]; then +	echo "Recompile go-fuse loopback" +	cd $GOPATH/src/github.com/hanwen/go-fuse/example/loopback +	go build && go install +	$GOPATH/bin/loopback -l $MNT $DIR & +elif [ $MYNAME = fsstress-gocryptfs.bash ]; then +	echo "Recompile gocryptfs" +	cd $GOPATH/src/github.com/rfjakob/gocryptfs +	go build && go install +	$GOPATH/bin/gocryptfs -q -init -extpass "echo test" -scryptn=10 $DIR +	$GOPATH/bin/gocryptfs -q -extpass "echo test" -nosyslog $DIR $MNT +else +	echo Unknown mode: $MYNAME +	exit 1 +fi + +echo -n "Waiting for mount: " +while ! grep "$MNT fuse" /proc/self/mounts > /dev/null +do +	sleep 1 +	echo -n x +done +echo " done, debug log goes to $LOG" + +echo "Starting fsstress loop" +N=1 +while true +do +	> $LOG + +	echo $N +	mkdir $MNT/fsstress.1 +	echo -n "    fsstress.1 " +	$FSSTRESS -r -m 8 -n 1000 -d $MNT/fsstress.1 + +	mkdir $MNT/fsstress.2 +	echo -n "    fsstress.2 " +	$FSSTRESS -p 20 -r -m 8 -n 1000 -d $MNT/fsstress.2 + +	mkdir $MNT/fsstress.3 +	echo -n "    fsstress.3 " +	$FSSTRESS -p 4 -z -f rmdir=10 -f link=10 -f creat=10 -f mkdir=10 -f rename=30 -f stat=30 -f unlink=30 -f truncate=20 -m 8 -n 1000 -d $MNT/fsstress.3 + +	echo "    rm" +	rm -R $MNT/* + +	let N=$N+1 +done + | 
