public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] common: fix excluding test groups
@ 2016-12-09  8:50 Amir Goldstein
  0 siblings, 0 replies; only message in thread
From: Amir Goldstein @ 2016-12-09  8:50 UTC (permalink / raw)
  To: Eryu Guan; +Cc: Dave Chinner, fstests

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

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
 check | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

v2:
- Expand test match pattern when processing arglist

v1:
- Expand test match pattern before excluding groups

diff --git a/check b/check
index 8f2a1bb..1d08718 100755
--- a/check
+++ b/check
@@ -281,18 +281,24 @@ 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 "^$test_name" $group_file >/dev/null
+				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.7.4


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-12-09  8:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-12-09  8:50 [PATCH v2] common: fix excluding test groups Amir Goldstein

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox