diff options
Diffstat (limited to 'smoke.sh')
-rwxr-xr-x | smoke.sh | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/smoke.sh b/smoke.sh new file mode 100755 index 000000000..3226b74f1 --- /dev/null +++ b/smoke.sh @@ -0,0 +1,83 @@ +#!/bin/bash + +set -e; + +M=/mnt; +P=/build; +H=$(hostname); +T=600; +V=patchy; + + +function cleanup() +{ + killall -15 glusterfs glusterfsd glusterd glusterd 2>&1 || true; + killall -9 glusterfs glusterfsd glusterd glusterd 2>&1 || true; + umount -l $M 2>&1 || true; + rm -rf /etc/glusterd $P/export; +} + +function start_fs() +{ + mkdir -p $P/export; + chmod 0755 $P/export; + + glusterd; + gluster volume create $V replica 2 $H:$P/export/export{1,2,3,4}; + gluster volume start $V; + glusterfs -s $H --volfile-id $V $M; +# mount -t glusterfs $H:/$V $M; +} + + +function run_tests() +{ + cd $M; + + (sleep 1; dbench -x -s -t 60 10 >/dev/null) & + + (sleep 1; /opt/qa/tools/posix_compliance.sh) & + + wait %2 + wait %3 + + rm -rf clients; + + cd -; +} + + +function watchdog () +{ + # insurance against hangs during the test + + sleep $1; + + echo "Kicking in watchdog after $1 secs"; + + cleanup; +} + + +function finish () +{ + cleanup; + kill %1; +} + +function main () +{ + cleanup; + + watchdog $T & + + trap finish EXIT; + + set -x; + + start_fs; + + run_tests; +} + +main "$@"; |