]> git.ipfire.org Git - thirdparty/nftables.git/commit
tests: shell: Allow wrappers to be passed as nft command
authorStefano Brivio <sbrivio@redhat.com>
Sun, 14 Jun 2020 21:41:37 +0000 (23:41 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 15 Jun 2020 21:58:27 +0000 (23:58 +0200)
commit7c8a44b25c22407329e201ed3c7098166a8d9e75
treeab59aad56066ee04ebd3d46fc78f93116ceb6cff
parenta9cadde4add151d74b64f92ebbdc56cdb7a64470
tests: shell: Allow wrappers to be passed as nft command

The current check on $NFT only allows to directly pass an executable,
so I've been commenting it out locally for a while to run tests with
valgrind.

Instead of using the -x test, run nft without arguments and check the
exit status. POSIX.1-2017, Shell and Utilities volume, par. 2.8.2
("Exit Status for Commands") states:

  If a command is not found, the exit status shall be 127. If the
  command name is found, but it is not an executable utility, the
  exit status shall be 126. Applications that invoke utilities
  without using the shell should use these exit status values to
  report similar errors.

While this script isn't POSIX-compliant, it requires bash, and any
modern version of bash complies with those exit status requirements.
Also valgrind complies with this.

We need to quote the NFT variable passed to execute the commands in
the main loop and adjust error and informational messages, too.

This way, for example, export NFT="valgrind nft" can be issued to
run tests with valgrind.

Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
tests/shell/run-tests.sh