check: Allow partial test names

When running ./check and calling a test with a name, id is enough
to find the test (names added in 03c633bf).

If the full test path is tests/xfs/123-foo-bar, then all these
invocations should work, as long as the given part of the test name
is valid and the three-digits id is here.

./check xfs/123-foo-bar
./check xfs/123-foo
./check xfs/123

Always use full test name in results.

Signed-off-by: Jan Tulak <jtulak@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Jan Tulak
2015-08-04 14:10:49 +10:00
committed by Dave Chinner
parent 5a18f833e8
commit 6108261c6d
2 changed files with 23 additions and 9 deletions
+17 -4
View File
@@ -533,12 +533,25 @@ for section in $HOST_OPTIONS_SECTIONS; do
echo -n "$seqnum"
if $showme
then
if $showme; then
echo
continue
elif [ ! -f $seq ]
then
elif [ ! -f $seq ]; then
# Try to get full name in case the user supplied only seq id
# and the test has a name. A bit of hassle to find really
# the test and not its sample output or helping files.
bname=$(basename $seq)
full_seq=$(find $(dirname $seq) -name $bname* -executable |
awk '(NR == 1 || length < length(shortest)) { shortest = $0 }\
END { print shortest }')
if [ -f $full_seq ] \
&& [ x$(echo $bname | grep -o "^$VALID_TEST_ID") != x ]; then
seq=$full_seq
seqnum=${full_seq#*/}
fi
fi
if [ ! -f $seq ]; then
echo " - no such test?"
else
# really going to try and run this one
+2 -1
View File
@@ -30,7 +30,8 @@ BC=$(which bc 2> /dev/null) || BC=
# "[[:alnum:]-]*"
# e.g. 999-the-mark-of-fstests
#
VALID_TEST_NAME="[0-9]\{3\}-\?[[:alnum:]-]*"
VALID_TEST_ID="[0-9]\{3\}"
VALID_TEST_NAME="$VALID_TEST_ID-\?[[:alnum:]-]*"
_require_math()
{