From 92e847fd1412448f58c5bc31295559e3266f82e2 Mon Sep 17 00:00:00 2001 From: Yu Jian Date: Fri, 7 Sep 2012 10:58:35 +0800 Subject: [PATCH] LU-1779 tests: fix run_one_logged() to log SKIP status In the current test framework, only those tests which are in the $ALWAYS_EXCEPT list are logged with SKIP status, other skipped tests are all logged with PASS status. This patch fixes the above issue by setting the SKIP status in pass() and logging the status in run_one_logged(). Signed-off-by: Yu Jian Change-Id: I7d4e66982a04d8759e887d88d0e406da719c03bf Reviewed-on: http://review.whamcloud.com/3899 Tested-by: Hudson Reviewed-by: Andreas Dilger Tested-by: Maloo --- lustre/tests/test-framework.sh | 50 +++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/lustre/tests/test-framework.sh b/lustre/tests/test-framework.sh index 3096dc2..e41073b 100644 --- a/lustre/tests/test-framework.sh +++ b/lustre/tests/test-framework.sh @@ -3058,13 +3058,19 @@ skip_env () { $FAIL_ON_SKIP_ENV && error false $@ || skip $@ } -skip () { +skip() { echo - log " SKIP: ${TESTSUITE} ${TESTNAME} $@" - [ "$ALWAYS_SKIPPED" ] && \ - skip_logged ${TESTNAME} "$@" || true - [ "$TESTSUITELOG" ] && \ - echo "${TESTSUITE}: SKIP: $TESTNAME $@" >> $TESTSUITELOG || true + log " SKIP: $TESTSUITE $TESTNAME $@" + + if [[ -n "$ALWAYS_SKIPPED" ]]; then + skip_logged $TESTNAME "$@" + else + mkdir -p $LOGDIR + echo "$@" > $LOGDIR/skip + fi + + [[ -n "$TESTSUITELOG" ]] && + echo "$TESTSUITE: SKIP: $TESTNAME $@" >> $TESTSUITELOG || true } build_test_filter() { @@ -3132,41 +3138,36 @@ run_test() { echo -n "." return 0 fi + + LAST_SKIPPED="y" + ALWAYS_SKIPPED="y" testname=EXCEPT_$1 if [ ${!testname}x != x ]; then - LAST_SKIPPED="y" TESTNAME=test_$1 skip "skipping excluded test $1" return 0 fi testname=EXCEPT_$base if [ ${!testname}x != x ]; then - LAST_SKIPPED="y" TESTNAME=test_$1 skip "skipping excluded test $1 (base $base)" return 0 fi testname=EXCEPT_ALWAYS_$1 if [ ${!testname}x != x ]; then - LAST_SKIPPED="y" - ALWAYS_SKIPPED="y" TESTNAME=test_$1 skip "skipping ALWAYS excluded test $1" return 0 fi testname=EXCEPT_ALWAYS_$base if [ ${!testname}x != x ]; then - LAST_SKIPPED="y" - ALWAYS_SKIPPED="y" TESTNAME=test_$1 skip "skipping ALWAYS excluded test $1 (base $base)" return 0 fi testname=EXCEPT_SLOW_$1 if [ ${!testname}x != x ]; then - LAST_SKIPPED="y" TESTNAME=test_$1 skip "skipping SLOW test $1" return 0 fi testname=EXCEPT_SLOW_$base if [ ${!testname}x != x ]; then - LAST_SKIPPED="y" TESTNAME=test_$1 skip "skipping SLOW test $1 (base $base)" return 0 fi @@ -3214,11 +3215,13 @@ complete () { } pass() { - # Set TEST_STATUS here; will be used for logging the result - if [ -f $LOGDIR/err ]; then + # Set TEST_STATUS here. It will be used for logging the result. + TEST_STATUS="PASS" + + if [[ -f $LOGDIR/err ]]; then TEST_STATUS="FAIL" - else - TEST_STATUS="PASS" + elif [[ -f $LOGDIR/skip ]]; then + TEST_STATUS="SKIP" fi echo "$TEST_STATUS $@" 2>&1 | tee -a $TESTSUITELOG } @@ -3294,6 +3297,7 @@ run_one_logged() { local name=${TESTSUITE}.test_${1}.test_log.$(hostname -s).log local test_log=$LOGDIR/$name rm -rf $LOGDIR/err + rm -rf $LOGDIR/skip local SAVE_UMASK=`umask` umask 0022 @@ -3307,7 +3311,12 @@ run_one_logged() { duration=$((`date +%s` - $BEFORE)) pass "$1" "(${duration}s)" - [ -f $LOGDIR/err ] && TEST_ERROR=$(cat $LOGDIR/err) + + if [[ -f $LOGDIR/err ]]; then + TEST_ERROR=$(cat $LOGDIR/err) + elif [[ -f $LOGDIR/skip ]]; then + TEST_ERROR=$(cat $LOGDIR/skip) + fi log_sub_test_end $TEST_STATUS $duration "$RC" "$TEST_ERROR" if [ -f $LOGDIR/err ]; then @@ -3324,7 +3333,8 @@ run_one_logged() { # skip_logged(){ log_sub_test_begin $1 - log_sub_test_end "SKIP" "0" "0" "\"$2\"" + shift + log_sub_test_end "SKIP" "0" "0" "$@" } canonical_path() { -- 1.8.3.1