From: Phil Sutter Date: Thu, 31 Aug 2023 10:44:55 +0000 (+0200) Subject: tests: Prepare exit codes for automake X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=15c01d744a6b8f428e785a36687e7ecdbc3e7a15;p=thirdparty%2Fnftables.git tests: Prepare exit codes for automake Make the test suite runners exit 77 when requiring root and running as regular user, exit 99 for internal errors (unrelated to test cases) and exit 1 (or any free non-zero value) to indicate test failures. Signed-off-by: Phil Sutter --- diff --git a/tests/monitor/run-tests.sh b/tests/monitor/run-tests.sh index 32b1b86e..44f21a28 100755 --- a/tests/monitor/run-tests.sh +++ b/tests/monitor/run-tests.sh @@ -12,18 +12,15 @@ err() { echo "$*" >&2 } -die() { - err "$*" - exit 1 -} - if [ "$(id -u)" != "0" ] ; then - die "this requires root!" + err "this requires root!" + exit 77 fi testdir=$(mktemp -d) if [ ! -d $testdir ]; then - die "Failed to create test directory" + err "Failed to create test directory" + exit 99 fi trap 'rm -rf $testdir; $nft flush ruleset' EXIT diff --git a/tests/py/nft-test.py b/tests/py/nft-test.py index 12c6174b..35b29fc9 100755 --- a/tests/py/nft-test.py +++ b/tests/py/nft-test.py @@ -1527,7 +1527,7 @@ def main(): if os.getuid() != 0: print("You need to be root to run this, sorry") - return + return 77 if not args.no_netns and not spawn_netns(): print_warning("cannot run in own namespace, connectivity might break") @@ -1546,11 +1546,11 @@ def main(): if check_lib_path and not os.path.exists(args.library): print("The nftables library at '%s' does not exist. " "You need to build the project." % args.library) - return + return 99 if args.enable_schema and not args.enable_json: print_error("Option --schema requires option --json") - return + return 99 global nftables nftables = Nftables(sofile = args.library) @@ -1563,7 +1563,7 @@ def main(): print_info("Log will be available at %s" % LOGFILE) except IOError: print_error("Cannot open log file %s" % LOGFILE) - return + return 99 file_list = [] if args.filenames: @@ -1609,5 +1609,7 @@ def main(): print("%d test files, %d files passed, %d unit tests, " % (test_files, files_ok, tests)) print("%d error, %d warning" % (errors, warnings)) + return errors != 0 + if __name__ == '__main__': - main() + sys.exit(main()) diff --git a/tests/shell/run-tests.sh b/tests/shell/run-tests.sh index 2d2e0ad1..46f523b9 100755 --- a/tests/shell/run-tests.sh +++ b/tests/shell/run-tests.sh @@ -96,7 +96,7 @@ _msg() { printf '%s\n' "$level: $*" fi if [ "$level" = E ] ; then - exit 1 + exit 99 fi }