Whamcloud - gitweb
Branch HEAD
authorwangdi <wangdi>
Tue, 23 Dec 2008 16:02:03 +0000 (16:02 +0000)
committerwangdi <wangdi>
Tue, 23 Dec 2008 16:02:03 +0000 (16:02 +0000)
b=16117
add test script for 16117
i=adilger,johann

lustre/tests/sanity.sh

index fc67228..b984bfa 100644 (file)
@@ -3792,7 +3792,7 @@ cleanup_test101() {
        [ "$SETUP_TEST101" = "yes" ] || return
        trap 0
        rm -rf $DIR/$tdir
-    rm -f $DIR/$tfile
+        rm -f $DIR/$tfile
        SETUP_TEST101=no
 }
 
@@ -6026,6 +6026,46 @@ test_162() {
 }
 run_test 162 "path lookup sanity"
 
+test_170() {
+        $LCTL debug_daemon start $TMP/${tfile}_log_good
+        touch $DIR/$tfile
+        $LCTL debug_daemon stop
+        cat $TMP/${tfile}_log_good | sed -e "s/^...../a/g" > $TMP/${tfile}_log_bad
+
+        $LCTL debug_daemon start $TMP/${tfile}_log_good
+        rm -rf $DIR/$tfile
+        $LCTL debug_daemon stop
+
+        $LCTL df $TMP/${tfile}_log_bad 2&> $TMP/${tfile}_log_bad.out
+        bad_line=`tail -n 1 $TMP/${tfile}_log_bad.out | awk '{print $9}'`
+        good_line1=`tail -n 1 $TMP/${tfile}_log_bad.out | awk '{print $5}'`
+
+        $LCTL df $TMP/${tfile}_log_good 2&>$TMP/${tfile}_log_good.out 
+        good_line2=`tail -n 1 $TMP/${tfile}_log_good.out | awk '{print $5}'`
+
+        cat $TMP/${tfile}_log_good >> $TMP/${tfile}_logs_corrupt
+        cat $TMP/${tfile}_log_bad >> $TMP/${tfile}_logs_corrupt 
+        cat $TMP/${tfile}_log_good >> $TMP/${tfile}_logs_corrupt           
+
+        $LCTL df $TMP/${tfile}_logs_corrupt 2&> $TMP/${tfile}_log_bad.out
+        bad_line_new=`tail -n 1 $TMP/${tfile}_log_bad.out | awk '{print $9}'`
+        good_line_new=`tail -n 1 $TMP/${tfile}_log_bad.out | awk '{print $5}'`
+        expected_good=$((good_line1 + good_line2*2))
+
+        rm -rf $TMP/${tfile}*
+        if [ $bad_line -ne $bad_line_new ]; then
+                error "expected $bad_line bad lines, but got $bad_line_new"
+                return 1 
+        fi
+
+        if [ $expected_good -ne $good_line_new ]; then
+                error "expected $expected_good good lines, but got $good_line_new"
+                return 2 
+        fi
+        true
+}
+run_test 170 "test lctl df to handle corruputed log ====================="
+
 # OST pools tests
 POOL=${POOL:-cea1}
 TGT_COUNT=$OSTCOUNT