Whamcloud - gitweb
Branch b1_6
authorwangdi <wangdi>
Tue, 23 Dec 2008 15:51:59 +0000 (15:51 +0000)
committerwangdi <wangdi>
Tue, 23 Dec 2008 15:51:59 +0000 (15:51 +0000)
b=16117
add test scritpt for 16117
i=adilger, johann

lustre/tests/sanity.sh

index 49a9dc8..419d148 100644 (file)
@@ -5564,6 +5564,46 @@ run_test 153 "test if fdatasync does not crash ======================="
 #
 # tests that do cleanup/setup should be run at the end
 #
+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 ====================="
+
 
 test_900() {
         local ls