Message ID | 20231122182227.759051-1-thaller@redhat.com |
---|---|
State | Deferred, archived |
Delegated to: | Pablo Neira |
Headers | show |
Series | [nft,1/1] tests/shell: accept name of dump files in place of test names | expand |
On Wed, Nov 22, 2023 at 07:22:25PM +0100, Thomas Haller wrote: > 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 I think it is not worth, users of this infrastructure is very small. So let's keep back this usability feature for tests/shell.
On Thu, 2023-11-23 at 11:48 +0100, Pablo Neira Ayuso wrote: > On Wed, Nov 22, 2023 at 07:22:25PM +0100, Thomas Haller wrote: > > 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|jso > > n-nft)$" > > + if [[ "$t" =~ $rx ]] ; then > > + t2="${BASH_REMATCH[1]}${BASH_REMAT > > CH[2]}" > > + if [ -f "$t2" -a -x "$t2" ] ; then > > + TESTS+=( "$t2" ) > > + continue > > + fi > > + fi > > + fi > > I think it is not worth, users of this infrastructure is very small. > > So let's keep back this usability feature for tests/shell. OK. Fine. But while closing and dropping it, let me still make the use case clear. When I look at a patch in `git-log` and see for example the diff-stat: src/json.c | 25 +++++++++++++------------ src/parser_json.c | 91 +++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------- tests/shell/testcases/chains/dumps/0021prio_0.json-nft | Bin 61509 -> 61639 bytes tests/shell/testcases/chains/dumps/0042chain_variable_0.json-nft | Bin 952 -> 1046 bytes tests/shell/testcases/chains/dumps/0043chain_ingress_0.json-nft | Bin 619 -> 632 bytes I'd like to re-run those tests. I'd like to do that by copy-pasting the file names at hand into the terminal. Thomas
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
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@redhat.com> --- tests/shell/run-tests.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+)