diff mbox series

[1/1] tests: use common shebang in "packetpath/flowtables" test

Message ID 20240209121603.2294742-1-thaller@redhat.com
State New
Headers show
Series [1/1] tests: use common shebang in "packetpath/flowtables" test | expand

Commit Message

Thomas Haller Feb. 9, 2024, 12:13 p.m. UTC
"./tools/check-tree.sh" checks for a certain shebang. Either `/bin/bash` or
`/bin/bash -e`. No other are currently allowed, because it makes sense to be
strict/consistent and there is no need such flexibility.

Move the "-x" to a later command.

Note that "set -x" may not be a good choice anyway. If you want to debug
a test and see the shell commands, you could just run

  $ ./tests/shell/run-tests.sh tests/shell/testcases/packetpath/flowtables -x

That will automatically use `/bin/bash -x` as interpreter. And that
works for all tests the same. This is also the reason why
"check-tree.sh" checks for a well-known shebang. Because the "-x" option
of the test runner mangles the shebang, but for that it needs to
understand it.

Signed-off-by: Thomas Haller <thaller@redhat.com>
---
Btw, "check-tree.sh" also complains about lack of .nft/.nodump file.
The test should get one of these (depending on what's appropriate). You
can generate them with

    $ ./tests/shell/run-tests.sh tests/shell/testcases/packetpath/flowtables -g

 tests/shell/testcases/packetpath/flowtables | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Phil Sutter Feb. 9, 2024, 1:34 p.m. UTC | #1
On Fri, Feb 09, 2024 at 01:13:04PM +0100, Thomas Haller wrote:
> "./tools/check-tree.sh" checks for a certain shebang. Either `/bin/bash` or
> `/bin/bash -e`. No other are currently allowed, because it makes sense to be
> strict/consistent and there is no need such flexibility.

Why be picky about extra flags to /bin/bash? If you assert the first
"word" after #! is as expected, the remaining bits are known to be
bash-compatible at least, no?

> Move the "-x" to a later command.
> 
> Note that "set -x" may not be a good choice anyway. If you want to debug
> a test and see the shell commands, you could just run
> 
>   $ ./tests/shell/run-tests.sh tests/shell/testcases/packetpath/flowtables -x

Please document such things before denying other ways to achieve the
same. ;)
Seriously, if this is the way to run the tests with tracing enabled, it
should be explained in tests/shell/README.

Cheers, Phil
diff mbox series

Patch

diff --git a/tests/shell/testcases/packetpath/flowtables b/tests/shell/testcases/packetpath/flowtables
index 852a05c6d0ab..b962984fb6ec 100755
--- a/tests/shell/testcases/packetpath/flowtables
+++ b/tests/shell/testcases/packetpath/flowtables
@@ -1,7 +1,9 @@ 
-#! /bin/bash -x
+#!/bin/bash
 
 # NFT_TEST_SKIP(NFT_TEST_SKIP_slow)
 
+set -x
+
 rnd=$(mktemp -u XXXXXXXX)
 R="flowtable-router-$rnd"
 C="flowtable-client-$rnd"