QA: Add new option to run_tests.sh: -l, check logfiles after each check
authorEduardo Silva <edsiper@gmail.com>
Sat, 20 Mar 2010 21:46:27 +0000 (17:46 -0400)
committerEduardo Silva <edsiper@gmail.com>
Sat, 20 Mar 2010 21:46:27 +0000 (17:46 -0400)
qa/run_tests.sh

index 4e9abe8..16eb3c5 100755 (executable)
@@ -25,6 +25,13 @@ HTTEST_CMD='httest'
 NTEST=1
 TESTS_FAILED=0
 TESTS_OK=0
+TESTS_AVOIDED=0
+CHECKLOGS=0
+
+if [ "$1" = "-l" ]; then
+    CHECKLOGS=1
+    TOTAL_TESTS=`expr $TOTAL_TESTS \* 2`
+fi
 
 for test_file in $TEST_FILES; do
 #      echo -ne "[TEST $NTEST/$TOTAL_TESTS]\t""case: $test_file\t\t"
@@ -37,7 +44,7 @@ for test_file in $TEST_FILES; do
                0) 
                        TESTS_OK=$((TESTS_OK+1))
                        [ $WITH_COLOR = yes ] && echo -n "\e[1;32m"
-                       echo "=> [OK]"
+                       echo -n "=> [OK]"
                        [ $WITH_COLOR = yes ] && echo -n "\e[m"
                        ;;
 
@@ -50,7 +57,7 @@ for test_file in $TEST_FILES; do
                *)
                        TESTS_FAILED=$((TESTS_FAILED+1))
                        [ $WITH_COLOR = yes ] && echo -n "\e[1;31m"
-                       echo "=> [FAILED]"
+                       echo -n "=> [FAILED]"
                        [ $WITH_COLOR = yes ] && echo -n "\e[m"
 
                        perl -e 'print "-" x 78, "\n"' >>"$LOGFILE"
@@ -60,7 +67,50 @@ for test_file in $TEST_FILES; do
                        [ $STOP_AT_ERRORS = yes ] && exit 1
        esac            
 
+        # Check for logfiles rules
+        NTEST=$((NTEST+1))
+
+        if [ $CHECKLOGS = 0 ]; then
+            echo
+            continue
+        fi
+
+        echo
+        test_file=`echo $test_file | sed 's/\.htt/\.log/g'`
+        printf "[%3d/%d]  %-32s  " $NTEST $TOTAL_TESTS "$test_file"
+
+        if [ ! -e "log_rules/$test_file" ]; then
+            ERRCODE=2
+        else
+            # We need to sleep for a while as Monkey needs to flush
+            # the logs, that happens every 3 seconds
+            sleep 3
+           CHECKLOG=`./checklog -s -l log_rules/$test_file`
+           ERRCODE=$?
+       fi
+
+        case $ERRCODE in       
+           0)  
+               [ $WITH_COLOR = yes ] && echo -n "\e[1;32m"      
+               echo "=> [OK]"
+               [ $WITH_COLOR = yes ] && echo -n "\e[m"
+                TESTS_OK=$((TESTS_OK+1))
+               ;;
+           1)
+                [ $WITH_COLOR = yes ] && echo -n "\e[1;31m"
+               echo "=> [FAILED]"
+               [ $WITH_COLOR = yes ] && echo -n "\e[m"
+                TESTS_FAILED=$((TESTS_FAILED+1))
+               ;;
+
+           2)  [ $WITH_COLOR = yes ] && echo -n "\e[1;33m"
+                echo "=> [NO RULES]"
+               [ $WITH_COLOR = yes ] && echo -n "\e[m"
+                TESTS_AVOIDED=$((TESTS_AVOIDED+1))
+               ;;
+       esac
+
        NTEST=$((NTEST+1))
 done
 
-echo -e "\n$TESTS_OK test(s) succeeded, $TESTS_FAILED test(s) failed."
+echo -e "\n$TESTS_OK test(s) succeeded, $TESTS_FAILED test(s) failed, $TESTS_AVOIDED test(s) avoided."