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@xxxxxxxxxx> --- check | 29 +++++++++++++++++++++-------- common/rc | 3 ++- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/check b/check index a4ee224..4859772 100755 --- a/check +++ b/check @@ -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 diff --git a/common/rc b/common/rc index 610045e..e9da39d 100644 --- a/common/rc +++ b/common/rc @@ -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() { -- 2.4.3 -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html