Advertisement
adam900710

test.sh

Aug 20th, 2014
418
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.25 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. DEV1=/dev/sdb
  4. DEV2=/dev/sdc
  5. DEV3=/dev/sdd
  6. DEV4=/dev/sde
  7. DEVX=/dev/sdf
  8. MNT=/mnt/test
  9. RAIDTYPE=raid1
  10. TEST_TIME=1200
  11.  
  12. FSSTRESS_PROCCNT=1
  13.  
  14. # Auto setting
  15. MKFS_OPTIONS="-d $RAIDTYPE -m $RAIDTYPE -f"
  16. MOUNT_OPTIONS="-o compress=lzo"
  17.  
  18. change_var() {
  19.     local var=$1
  20.     eval $var=$2
  21. }
  22.  
  23. run_test()
  24. {
  25.     local show_cnt="$1"
  26.     shift
  27.     local test_func=("$@")
  28.  
  29.     trap "change_var 'should_stop' 1" INT HUP TERM
  30.  
  31.         local round=0
  32.         for (( ;;round++ )); do
  33.                 [[ "$should_stop" ]] && {
  34.                         echo "exit: ${test_func[*]}"
  35.                         return
  36.                 }
  37.         [[ "$show_cnt" ]] && {
  38.                     echo "${test_func[*]} round=$round"
  39.         }
  40.         "${test_func[@]}"
  41.         done
  42. }
  43.  
  44. add_test()
  45. {
  46.     local show_cnt
  47.         [[ $1 = "-c" ]] && {
  48.                 show_cnt=1
  49.                 shift
  50.         }
  51.         local test_func=("$@")
  52.  
  53.     run_test "$show_cnt" "${test_func[@]}" &
  54.     PIDS+=($!)
  55.     echo "add_test: $test_func $!"
  56. }
  57.  
  58. snapshot_test() {
  59.     btrfs sub snapshot $MNT $MNT/snapshot_test > /dev/null
  60.     btrfs sub delete $MNT/snapshot_test >/dev/null
  61. }
  62.  
  63. scrub_test() {
  64.     btrfs scrub start -B $MNT >/dev/null
  65. }
  66.  
  67. balance_test() {
  68.     btrfs balance start $MNT >/dev/null
  69. }
  70.  
  71. replace_test() {
  72.     btrfs replace start -fB $DEV1 $DEVX $MNT | grep -v 'SMALL VOLUME'
  73.     btrfs replace start -fB $DEVX $DEV1 $MNT | grep -v 'SMALL VOLUME'
  74. }
  75.  
  76. sync_test() {
  77.     sync
  78. }
  79.  
  80. simpleop_test() {
  81.     touch $MNT/test_file
  82.     local i
  83.     for ((i = 0; i < 100; i++)); do
  84.         echo "Line $i" >> $MNT/test_file
  85.     done
  86.     cat $MNT/test_file >/dev/null
  87.     rm $MNT/test_file
  88. }
  89.  
  90. fsstress_test() {
  91.     /var/lib/xfstests/ltp/fsstress -n 100 -p $FSSTRESS_PROCCNT -d $MNT >/dev/null
  92. }
  93.  
  94.  
  95. interrupt_exit () {
  96.     echo "killing $@"
  97.     kill "$@" &> /dev/null
  98.     wait "$@" &> /dev/null
  99. }
  100.  
  101. umount $MNT &> /dev/null
  102. mkfs.btrfs $MKFS_OPTIONS $DEV1 $DEV2 $DEV3 $DEV4
  103. mount $DEV1 $MOUNT_OPTIONS $MNT
  104.  
  105. unset PIDS
  106.  
  107. #add_test -c snapshot_test
  108. #add_test -c scrub_test
  109. #add_test -c balance_test
  110. add_test -c replace_test
  111. add_test -c sync_test
  112. add_test -c simpleop_test
  113. #add_test -c fsstress_test
  114.  
  115. trap "interrupt_exit ${PIDS[*]}" INT TERM HUP
  116. sleep $TEST_TIME
  117. interrupt_exit "${PIDS[@]}"
  118. echo "exiting..."
  119.  
  120. sync
  121. umount $MNT
  122. btrfsck $DEV1
  123. dmesg | tail
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement