Whamcloud - gitweb
LU-1540 tests: only run test for ldiskfs MDT
[fs/lustre-release.git] / lustre / tests / sanity.sh
index 6d8d4d0..c31107c 100644 (file)
@@ -11,6 +11,11 @@ ONLY=${ONLY:-"$*"}
 ALWAYS_EXCEPT="                27u   42a  42b  42c  42d  45   51d   68b   $SANITY_EXCEPT"
 # UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
 
+# with LOD/OSP landing
+# bug number for skipped tests: LU2036
+ALWAYS_EXCEPT="                 76     $ALWAYS_EXCEPT"
+
+
 # Tests that fail on uml
 CPU=`awk '/model/ {print $4}' /proc/cpuinfo`
 #                                    buffer i/o errs             sock spc runas
@@ -501,6 +506,10 @@ test_17m() {
        [ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.2.0) ] &&
        [ $(lustre_version_code $SINGLEMDS) -le $(version_code 2.2.93) ] &&
                skip "MDS 2.2.0-2.2.93 do not NUL-terminate symlinks" && return
+
+       [ "$(facet_fstype $SINGLEMDS)" != "ldiskfs" ] &&
+               skip "only for ldiskfs MDT" && return 0
+
        mkdir -p $WDIR
        long_sym=$short_sym
        # create a long symlink file
@@ -1085,6 +1094,7 @@ reset_enospc() {
        [ "$OSTIDX" ] && list=$(facet_host ost$((OSTIDX + 1)))
 
        do_nodes $list lctl set_param fail_loc=0
+       sync    # initiate all OST_DESTROYs from MDS to OST
        sleep_maxage
 }
 
@@ -2536,7 +2546,23 @@ run_test 39k "write, utime, close, stat ========================"
 # this should be set to future
 TEST_39_ATIME=`date -d "1 year" +%s`
 
+is_sles11()                                            # LU-1783
+{
+       if [ -r /etc/SuSE-release ]
+       then
+               local vers=`grep VERSION /etc/SuSE-release | awk '{print $3}'`
+               local patchlev=`grep PATCHLEVEL /etc/SuSE-release \
+                       | awk '{print $3}'`
+               if [ $vers -eq 11 ] && [ $patchlev -eq 1 ]
+               then
+                       return 0
+               fi
+       fi
+       return 1
+}
+
 test_39l() {
+       is_sles11 && skip "SLES 11 SP1" && return       # LU-1783
        remote_mds_nodsh && skip "remote MDS with nodsh" && return
        local atime_diff=$(do_facet $SINGLEMDS lctl get_param -n mdd.*.atime_diff)
 
@@ -5246,8 +5272,9 @@ test_101d() {
     echo read-ahead disabled time read $time_ra_OFF
     echo read-ahead enabled  time read $time_ra_ON
 
-    set_read_ahead $old_READAHEAD
-    rm -f $file
+       set_read_ahead $old_READAHEAD
+       rm -f $file
+       wait_delete_completed
 
     [ $time_ra_ON -lt $time_ra_OFF ] ||
         error "read-ahead enabled  time read (${time_ra_ON}s) is more than
@@ -6244,6 +6271,8 @@ test_118h() {
 }
 run_test 118h "Verify timeout in handling recoverables errors  =========="
 
+[ "$SLOW" = "no" ] && [ -n "$OLD_RESENDCOUNT" ] && set_resend_count $OLD_RESENDCOUNT
+
 test_118i() {
        remote_ost_nodsh && skip "remote OST with nodsh" && return
 
@@ -6282,6 +6311,8 @@ test_118i() {
 }
 run_test 118i "Fix error before timeout in recoverable error  =========="
 
+[ "$SLOW" = "no" ] && set_resend_count 4
+
 test_118j() {
        remote_ost_nodsh && skip "remote OST with nodsh" && return
 
@@ -7040,18 +7071,26 @@ cleanup_130() {
 }
 
 test_130a() {
-       filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
-       [ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" && return
+       local filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
+       [ -n "$filefrag_op" ] && skip_env "filefrag does not support FIEMAP" &&
+               return
 
        trap cleanup_130 EXIT RETURN
 
        local fm_file=$DIR/$tfile
        $SETSTRIPE -S 65536 -c 1 $fm_file || error "setstripe on $fm_file"
-       dd if=/dev/zero of=$fm_file bs=65536 count=1 || error "dd failed for $fm_file"
+       dd if=/dev/zero of=$fm_file bs=65536 count=1 ||
+               error "dd failed for $fm_file"
 
-       filefrag -ves $fm_file || error "filefrag $fm_file failed"
-       filefrag_op=`filefrag -ve $fm_file | grep -A 100 "ext:" | grep -v "ext:" | grep -v "found"`
+       # LU-1795: test filefrag/FIEMAP once, even if unsupported
+       filefrag -ves $fm_file
+       RC=$?
+       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+               skip "ORI-366/LU-1941: FIEMAP unimplemented on ZFS" && return
+       [ $RC != 0 ] && error "filefrag $fm_file failed"
 
+       filefrag_op=$(filefrag -ve $fm_file | grep -A 100 "ext:" |
+                     grep -v "ext:" | grep -v "found")
        lun=$($GETSTRIPE -i $fm_file)
 
        start_blk=`echo $filefrag_op | cut -d: -f2 | cut -d. -f1`
@@ -7082,21 +7121,28 @@ test_130a() {
 run_test 130a "FIEMAP (1-stripe file)"
 
 test_130b() {
-       [ "$OSTCOUNT" -lt "2" ] && skip_env "skipping FIEMAP on 2-stripe file test" && return
+       [ "$OSTCOUNT" -lt "2" ] &&
+               skip_env "skipping FIEMAP on 2-stripe file test" && return
 
-       filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
-       [ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" && return
+       local filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
+       [ -n "$filefrag_op" ] && skip_env "filefrag does not support FIEMAP" &&
+               return
 
        trap cleanup_130 EXIT RETURN
 
        local fm_file=$DIR/$tfile
        $SETSTRIPE -S 65536 -c 2 $fm_file || error "setstripe on $fm_file"
-       dd if=/dev/zero of=$fm_file bs=1M count=2 || error "dd failed on $fm_file"
+       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+               skip "ORI-366/LU-1941: FIEMAP unimplemented on ZFS" && return
+
+       dd if=/dev/zero of=$fm_file bs=1M count=2 ||
+               error "dd failed on $fm_file"
 
        filefrag -ves $fm_file || error "filefrag $fm_file failed"
-       filefrag_op=`filefrag -ve $fm_file | grep -A 100 "ext:" | grep -v "ext:" | grep -v "found"`
+       filefrag_op=$(filefrag -ve $fm_file | grep -A 100 "ext:" |
+                     grep -v "ext:" | grep -v "found")
 
-       last_lun=`echo $filefrag_op | cut -d: -f5`
+       last_lun=$(echo $filefrag_op | cut -d: -f5)
 
        IFS=$'\n'
        tot_len=0
@@ -7131,15 +7177,20 @@ test_130b() {
 run_test 130b "FIEMAP (2-stripe file)"
 
 test_130c() {
-       [ "$OSTCOUNT" -lt "2" ] && skip_env "skipping FIEMAP on 2-stripe file with hole test" && return
+       [ "$OSTCOUNT" -lt "2" ] &&
+               skip_env "skipping FIEMAP on 2-stripe file" && return
 
        filefrag_op=$(filefrag -e 2>&1 | grep "invalid option")
-       [ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" && return
+       [ -n "$filefrag_op" ] && skip "filefrag does not support FIEMAP" &&
+               return
 
        trap cleanup_130 EXIT RETURN
 
        local fm_file=$DIR/$tfile
        $SETSTRIPE -S 65536 -c 2 $fm_file || error "setstripe on $fm_file"
+       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+               skip "ORI-366/LU-1941: FIEMAP unimplemented on ZFS" && return
+
        dd if=/dev/zero of=$fm_file seek=1 bs=1M count=1 || error "dd failed on $fm_file"
 
        filefrag -ves $fm_file || error "filefrag $fm_file failed"
@@ -7195,6 +7246,8 @@ test_130d() {
 
        local fm_file=$DIR/$tfile
        $SETSTRIPE -S 65536 -c $OSTCOUNT $fm_file||error "setstripe on $fm_file"
+       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+               skip "ORI-366/LU-1941: FIEMAP unimplemented on ZFS" && return
        dd if=/dev/zero of=$fm_file bs=1M count=$OSTCOUNT || error "dd failed on $fm_file"
 
        filefrag -ves $fm_file || error "filefrag $fm_file failed"
@@ -7244,6 +7297,9 @@ test_130e() {
 
        local fm_file=$DIR/$tfile
        $SETSTRIPE -S 131072 -c 2 $fm_file || error "setstripe on $fm_file"
+       [ "$(facet_fstype ost$(($($GETSTRIPE -i $fm_file) + 1)))" = "zfs" ] &&
+               skip "ORI-366/LU-1941: FIEMAP unimplemented on ZFS" && return
+
        NUM_BLKS=512
        EXPECTED_LEN=$(( (NUM_BLKS / 2) * 64 ))
        for ((i = 0; i < $NUM_BLKS; i++))
@@ -7505,6 +7561,7 @@ test_133c() {
        $SETSTRIPE -c 1 -i 0 ${testdir}/${tfile}
        sync
        cancel_lru_locks osc
+       wait_delete_completed
 
        # clear stats.
        do_facet $SINGLEMDS $LCTL set_param mdt.*.md_stats=clear
@@ -7522,6 +7579,7 @@ test_133c() {
        check_stats ost "punch" 1
 
        rm -f ${testdir}/${tfile} || error "file remove failed"
+       wait_delete_completed
        check_stats ost "destroy" 1
 
        rm -rf $DIR/${tdir}
@@ -7805,6 +7863,9 @@ test_153() {
 run_test 153 "test if fdatasync does not crash ======================="
 
 test_154() {
+       [[ $(lustre_version_code $SINGLEMDS) -ge $(version_code 2.2.51) ]] ||
+               { skip "Need MDS version at least 2.2.51"; return 0; }
+
        cp /etc/hosts $DIR/$tfile
 
        fid=$($LFS path2fid $DIR/$tfile)