mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
xfstests: make exclude groups aware of multiple subdirectories
Now that there are no tests in the top level directory, the exlude group functionality no longer works (-x group) as it cannot find tests to build an initial list of tests. Rework the the exclude group implementation to operate correctly on the new test locations. Also, switch from sed to grep for exclusion because sed has problems distnguishing the '/' in path names from regex control... Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Phil White <pwhite@sgi.com> Signed-off-by: Rich Johnston <rjohnston@sgi.com>
This commit is contained in:
committed by
Rich Johnston
parent
cbcc88fbd0
commit
1f39e5972e
@@ -96,6 +96,19 @@ get_group_list()
|
||||
echo $grpl
|
||||
}
|
||||
|
||||
# find all tests, excluding files that are test metadata such as group files.
|
||||
# This assumes that tests are defined purely by alphanumeric filenames with no
|
||||
# ".xyz" extensions in the name.
|
||||
get_all_tests()
|
||||
{
|
||||
touch $tmp.list
|
||||
for d in $SRC_GROUPS $FSTYP; do
|
||||
ls $SRC_DIR/$d/* | \
|
||||
grep -v "\..*" | \
|
||||
grep -v group >> $tmp.list 2>/dev/null
|
||||
done
|
||||
}
|
||||
|
||||
_wallclock()
|
||||
{
|
||||
date "+%H %M %S" | $AWK_PROG '{ print $1*3600 + $2*60 + $3 }'
|
||||
@@ -110,7 +123,7 @@ _timestamp()
|
||||
# start the initialisation work now
|
||||
_setenvironment
|
||||
|
||||
rm -f $tmp.list $tmp.tmp $tmp.sed $here/$iam.out
|
||||
rm -f $tmp.list $tmp.tmp $tmp.grep $here/$iam.out
|
||||
|
||||
# Autodetect fs type based on what's on $TEST_DEV
|
||||
if [ "$HOSTOS" == "Linux" ]; then
|
||||
@@ -150,27 +163,33 @@ while [ $# -gt 0 ]; do
|
||||
;;
|
||||
|
||||
-x) xgroup=$2 ; shift ;
|
||||
[ ! -s $tmp.list ] && ls $SUPPORTED_TESTS >$tmp.list 2>/dev/null
|
||||
|
||||
# Note: behaviour is dependent on command line ordering of
|
||||
# -g and -x parameters. If there are no preceding -g commands,
|
||||
# this works on all tests, otherwise just the tests specified by
|
||||
# the early -g inclusions.
|
||||
[ ! -s $tmp.list ] && get_all_tests
|
||||
|
||||
group_list=$(get_group_list $xgroup)
|
||||
if [ -z "$group_list" ]; then
|
||||
echo "Group \"$xgroup\" is empty or not defined?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f $tmp.sed
|
||||
rm -f $tmp.grep
|
||||
numsed=0
|
||||
for t in $group_list
|
||||
do
|
||||
if [ $numsed -gt 100 ]; then
|
||||
sed -f $tmp.sed <$tmp.list >$tmp.tmp
|
||||
grep -v -f $tmp.grep <$tmp.list >$tmp.tmp
|
||||
mv $tmp.tmp $tmp.list
|
||||
numsed=0
|
||||
rm -f $tmp.sed
|
||||
rm -f $tmp.grep
|
||||
fi
|
||||
echo "/^$t\$/d" >>$tmp.sed
|
||||
echo "^$t\$" >>$tmp.grep
|
||||
numsed=`expr $numsed + 1`
|
||||
done
|
||||
sed -f $tmp.sed <$tmp.list >$tmp.tmp
|
||||
grep -v -f $tmp.grep <$tmp.list >$tmp.tmp
|
||||
mv $tmp.tmp $tmp.list
|
||||
;;
|
||||
|
||||
@@ -239,7 +258,7 @@ fi
|
||||
|
||||
# sort the list of tests into numeric order
|
||||
list=`sort -n $tmp.list`
|
||||
rm -f $tmp.list $tmp.tmp $tmp.sed
|
||||
rm -f $tmp.list $tmp.tmp $tmp.grep
|
||||
|
||||
if $randomize
|
||||
then
|
||||
|
||||
Reference in New Issue
Block a user