Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- DEV1=/dev/sdb
- DEV2=/dev/sdc
- DEV3=/dev/sdd
- DEV4=/dev/sde
- DEVX=/dev/sdf
- MNT=/mnt/test
- RAIDTYPE=raid1
- TEST_TIME=1200
- FSSTRESS_PROCCNT=1
- # Auto setting
- MKFS_OPTIONS="-d $RAIDTYPE -m $RAIDTYPE -f"
- MOUNT_OPTIONS="-o compress=lzo"
- change_var() {
- local var=$1
- eval $var=$2
- }
- run_test()
- {
- local show_cnt="$1"
- shift
- local test_func=("$@")
- trap "change_var 'should_stop' 1" INT HUP TERM
- local round=0
- for (( ;;round++ )); do
- [[ "$should_stop" ]] && {
- echo "exit: ${test_func[*]}"
- return
- }
- [[ "$show_cnt" ]] && {
- echo "${test_func[*]} round=$round"
- }
- "${test_func[@]}"
- done
- }
- add_test()
- {
- local show_cnt
- [[ $1 = "-c" ]] && {
- show_cnt=1
- shift
- }
- local test_func=("$@")
- run_test "$show_cnt" "${test_func[@]}" &
- PIDS+=($!)
- echo "add_test: $test_func $!"
- }
- snapshot_test() {
- btrfs sub snapshot $MNT $MNT/snapshot_test > /dev/null
- btrfs sub delete $MNT/snapshot_test >/dev/null
- }
- scrub_test() {
- btrfs scrub start -B $MNT >/dev/null
- }
- balance_test() {
- btrfs balance start $MNT >/dev/null
- }
- replace_test() {
- btrfs replace start -fB $DEV1 $DEVX $MNT | grep -v 'SMALL VOLUME'
- btrfs replace start -fB $DEVX $DEV1 $MNT | grep -v 'SMALL VOLUME'
- }
- sync_test() {
- sync
- }
- simpleop_test() {
- touch $MNT/test_file
- local i
- for ((i = 0; i < 100; i++)); do
- echo "Line $i" >> $MNT/test_file
- done
- cat $MNT/test_file >/dev/null
- rm $MNT/test_file
- }
- fsstress_test() {
- /var/lib/xfstests/ltp/fsstress -n 100 -p $FSSTRESS_PROCCNT -d $MNT >/dev/null
- }
- interrupt_exit () {
- echo "killing $@"
- kill "$@" &> /dev/null
- wait "$@" &> /dev/null
- }
- umount $MNT &> /dev/null
- mkfs.btrfs $MKFS_OPTIONS $DEV1 $DEV2 $DEV3 $DEV4
- mount $DEV1 $MOUNT_OPTIONS $MNT
- unset PIDS
- #add_test -c snapshot_test
- #add_test -c scrub_test
- #add_test -c balance_test
- add_test -c replace_test
- add_test -c sync_test
- add_test -c simpleop_test
- #add_test -c fsstress_test
- trap "interrupt_exit ${PIDS[*]}" INT TERM HUP
- sleep $TEST_TIME
- interrupt_exit "${PIDS[@]}"
- echo "exiting..."
- sync
- umount $MNT
- btrfsck $DEV1
- dmesg | tail
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement