summaryrefslogtreecommitdiff
path: root/tests/stress_tests/fsstress-loopback.bash
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stress_tests/fsstress-loopback.bash')
l---------[-rwxr-xr-x]tests/stress_tests/fsstress-loopback.bash95
1 files changed, 1 insertions, 94 deletions
diff --git a/tests/stress_tests/fsstress-loopback.bash b/tests/stress_tests/fsstress-loopback.bash
index 51c68db..139d4ec 100755..120000
--- a/tests/stress_tests/fsstress-loopback.bash
+++ b/tests/stress_tests/fsstress-loopback.bash
@@ -1,94 +1 @@
-#!/bin/bash
-#
-# Mount a go-fuse loopback filesystem in /tmp and run fsstress against it
-# in an infinite loop, only exiting on errors.
-#
-# When called as "fsstress-gocryptfs.bash", a gocryptfs filesystem is tested
-# instead.
-#
-# This test used to fail on older go-fuse versions after a few iterations with
-# errors like this:
-# "rm: cannot remove ‘/tmp/b/fsstress.2/pd/d1XXX/f4a’: No such file or directory"
-#
-# Nowadays it should pass an indefinite number of iterations.
-
-set -eu
-
-# Backing directory
-DIR=$(mktemp -d /tmp/fsstress.XXX)
-# Mountpoint
-MNT="$DIR.mnt"
-# fsstress binary
-FSSTRESS=~/src/xfstests/ltp/fsstress
-
-if [ ! -x $FSSTRESS ]
-then
- echo "fsstress binary not found, adjust FSSTRESS=$FSSTRESS"
- exit 1
-fi
-
-# 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 &
- disown
-elif [ $MYNAME = fsstress-gocryptfs.bash ]; then
- echo "Recompile gocryptfs"
- cd $GOPATH/src/github.com/rfjakob/gocryptfs
- ./build.bash
- $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: "
-sleep 0.5
-while ! grep "$MNT fuse" /proc/self/mounts > /dev/null
-do
- sleep 1
- echo -n x
-done
-echo
-
-# Cleanup trap
-trap "kill %1 ; cd /; fusermount -u -z $MNT; rm -rf $DIR $MNT" EXIT
-
-echo "Starting fsstress loop"
-N=1
-while true
-do
- echo $N
- mkdir $MNT/fsstress.1
- echo -n " fsstress.1 "
- $FSSTRESS -r -m 8 -n 1000 -d $MNT/fsstress.1 &
- wait
-
- mkdir $MNT/fsstress.2
- echo -n " fsstress.2 "
- $FSSTRESS -p 20 -r -m 8 -n 1000 -d $MNT/fsstress.2 &
- wait
-
- 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 &
- wait
-
- echo " rm"
- rm -R $MNT/*
-
- let N=$N+1
-done
-
+fsstress-gocryptfs.bash \ No newline at end of file