@@ -563,14 +563,27 @@ for section in $HOST_OPTIONS_SECTIONS; do
echo -n "$seqnum"
- if $showme
- then
- echo
- continue
- elif [ ! -f $seq ]
- then
- echo " - no such test?"
- else
+ if $showme; then
+ echo
+ continue
+ 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
#
rm -f $seqres.out.bad
@@ -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()
{
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> --- check | 29 +++++++++++++++++++++-------- common/rc | 3 ++- 2 files changed, 23 insertions(+), 9 deletions(-)