Imagine you have the filename of a dump file at hand. For example, because it shows up in `git status` and you can copy it from the terminal. If you want to run the corresponding test, that was cumbersome. It involved editing the command line (removing the /dumps/ directory and the file suffix). Instead, let "run-tests.sh" do that automatically. There is little value in bothering the user with a failure: Before: $ ./tests/shell/run-tests.sh tests/shell/testcases/optionals/dumps/comments_table_0.json-nft -L E: Unknown test "tests/shell/testcases/optionals/dumps/comments_table_0.json-nft" After: $ ./tests/shell/run-tests.sh tests/shell/testcases/optionals/dumps/comments_table_0.json-nft -L tests/shell/testcases/optionals/comments_table_0 Signed-off-by: Thomas Haller <thaller@xxxxxxxxxx> --- tests/shell/run-tests.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/shell/run-tests.sh b/tests/shell/run-tests.sh index 3cde97b7ea17..c26142b7ff17 100755 --- a/tests/shell/run-tests.sh +++ b/tests/shell/run-tests.sh @@ -431,6 +431,19 @@ for t in "${TESTSOLD[@]}" ; do elif [ -d "$t" ] ; then TESTS+=( $(find_tests "$t") ) else + if [ -f "$t" ] ; then + # If the test name looks like a dumps file, autodetect + # the correct test name. It's not useful to bother the + # user with a failure in this case. + rx="^(.*/)?dumps/([^/]+)\\.(nodump|nft|json-nft)$" + if [[ "$t" =~ $rx ]] ; then + t2="${BASH_REMATCH[1]}${BASH_REMATCH[2]}" + if [ -f "$t2" -a -x "$t2" ] ; then + TESTS+=( "$t2" ) + continue + fi + fi + fi msg_error "Unknown test \"$t\"" fi done -- 2.42.0