From 949cf64bbc4febc35a254a132dabaaeb9e0e0fbe Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Thu, 3 Nov 2011 13:20:24 +0100 Subject: tests: fix options evaluation, add support for optional tests Signed-off-by: Karel Zak --- tests/functions.sh | 2 ++ tests/run.sh | 53 ++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/tests/functions.sh b/tests/functions.sh index 71ff7da0a..bc658ba9a 100644 --- a/tests/functions.sh +++ b/tests/functions.sh @@ -168,12 +168,14 @@ function ts_init_subtest { function ts_init { local is_fake=$( ts_has_option "fake" "$*") + local is_force=$( ts_has_option "force" "$*") ts_init_env "$*" printf "%13s: %-30s ..." "$TS_COMPONENT" "$TS_DESC" [ "$is_fake" == "yes" ] && ts_skip "fake mode" + [ "$TS_OPTIONAL" == "yes" -a "$is_force" != "yes" ] && ts_skip "optional" } function ts_init_suid { diff --git a/tests/run.sh b/tests/run.sh index d7aa7ddcc..f1ec3328a 100755 --- a/tests/run.sh +++ b/tests/run.sh @@ -17,21 +17,44 @@ # TS_TOPDIR=$(cd $(dirname $0) && pwd) -comps=$(find $TS_TOPDIR/ts/ -type f -perm /a+x -regex ".*/[^\.~]*" | sort) - -if [ -n "$1" ]; then - if [ -d "$TS_TOPDIR/ts/$1" ]; then - comps=$(find $TS_TOPDIR/ts/$1 -type f -perm /a+x -regex ".*/[^\.~]*" | sort) - else - echo - echo "usage: $0 []" - echo "supported components:" - for ts in $comps; do - echo -e "\t$(basename $(dirname $ts))" - done | sort -u - echo +SUBTESTS= +OPTS= + +while [ -n "$1" ]; do + case "$1" in + --force) + OPTS="$OPTS --force" + ;; + --fake) + OPTS="$OPTS --fake" + ;; + --*) + echo "Unknown option $1" + echo "Usage: run [--fake] [--force] [ ...]" exit 1 - fi + ;; + + *) + SUBTESTS="$SUBTESTS $1" + ;; + esac + shift +done + +if [ -n "$SUBTESTS" ]; then + # selected tests only + for s in $SUBTESTS; do + if [ -d "$TS_TOPDIR/ts/$s" ]; then + co=$(find $TS_TOPDIR/ts/$s -type f -perm /a+x -regex ".*/[^\.~]*" | sort) + comps="$comps $co" + else + echo "Unknown test component '$s'" + exit 1 + fi + done +else + # all tests + comps=$(find $TS_TOPDIR/ts/ -type f -perm /a+x -regex ".*/[^\.~]*" | sort) fi echo @@ -44,7 +67,7 @@ echo res=0 count=0 for ts in $comps; do - $ts "$1" + $ts "$OPTS" res=$(( $res + $? )) count=$(( $count + 1 )) done -- cgit v1.2.3-55-g7522