From 2257d91fe4a5b018c02cb06e0a4b62ae094e494f Mon Sep 17 00:00:00 2001 From: Amir Goldstein Date: Fri, 9 Dec 2016 10:50:46 +0200 Subject: [PATCH] check: fix excluding test groups The -x flag is used to exclude tests that belong to certain groups from the test args list. When the test args list is expressed as a match pattern, -x fails to exclude the tests that match the pattern and belong to excluded groups. For example: $ ./check -n xfs/??? | wc -l 341 $ ./check -n -x fuzzers,dangerous_fuzzers xfs/??? | wc -l 341 After the fix: $ ./check -n -x fuzzers,dangerous_fuzzers xfs/??? | wc -l 315 This bug seems to date back to this git repo epoc. The fix also sorts out filtering of test that are not found in group files for the patten match input. For example: $ ./check xfs/001* ... xfs/001 2s xfs/001.out [failed, exit status 127] - no qualified output After the fix: $ ./check -n xfs/001* xfs/001.out - unknown test, ignored ... xfs/001 2s [eguan: use grep -q and fix if-then-fi style] Signed-off-by: Amir Goldstein Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- check | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/check b/check index 76eb0548..cf6379bb 100755 --- a/check +++ b/check @@ -281,18 +281,23 @@ if $have_test_arg; then status=1 exit $status ;; - *) test_dir=`dirname $1` - test_dir=${test_dir#$SRC_DIR/*} - test_name=`basename $1` - group_file=$SRC_DIR/$test_dir/group - - if egrep "^$test_name" $group_file >/dev/null ; then - # in group file ... OK - echo $SRC_DIR/$test_dir/$test_name >>$tmp.arglist - else - # oops - echo "$1 - unknown test, ignored" - fi + *) # Expand test pattern (e.g. xfs/???, *fs/001) + list=$(cd $SRC_DIR; echo $1) + for t in $list; do + test_dir=`dirname $t` + test_dir=${test_dir#$SRC_DIR/*} + test_name=`basename $t` + group_file=$SRC_DIR/$test_dir/group + + if egrep -q "^$test_name" $group_file; then + # in group file ... OK + echo $SRC_DIR/$test_dir/$test_name \ + >>$tmp.arglist + else + # oops + echo "$t - unknown test, ignored" + fi + done ;; esac -- 2.39.5