From 2fa6f6881b22fe1aabb2d25ed6040fd8e8ddb3b5 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Sat, 6 Jan 2024 02:34:10 -0500 Subject: [PATCH] test-tap.at: Fix regression passing program arguments. Moving the test_run_tap() function definition into a macro failed to properly quote $@ so it isn't eaten by m4. So instead of calling the test program with "$@" as the argument, it is changed to "". Fix that up, and add a very simple test case to check this behaviour. --- snippet/test-tap.at | 4 ++-- t/tapcheck.sh | 27 +++++++++++++++++++++++++++ tests/snippets.at | 4 +++- 3 files changed, 32 insertions(+), 3 deletions(-) create mode 100755 t/tapcheck.sh diff --git a/snippet/test-tap.at b/snippet/test-tap.at index 2873cf4..ee4b541 100644 --- a/snippet/test-tap.at +++ b/snippet/test-tap.at @@ -1,4 +1,4 @@ -# Copyright © 2015, 2022-2023 Nick Bowler +# Copyright © 2015, 2022-2024 Nick Bowler # # Helper macros for executing the TAP-like applications in an autotest # test suite. @@ -19,7 +19,7 @@ m4_defun([_TEST_TAP_PREPARE], [m4_divert_push([PREPARE_TESTS])dnl test_run_tap () { program=$[1]; shift - "$builddir/t/$program" "$@" >"$program.tap" + "$builddir/t/$program" "$[@]" >"$program.tap" status=$? cat "$program.tap" # Older versions of prove do not support the -e option so the diff --git a/t/tapcheck.sh b/t/tapcheck.sh new file mode 100755 index 0000000..85dd2f7 --- /dev/null +++ b/t/tapcheck.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Copyright © 2024 Nick Bowler +# +# Fake TAP test program for testing the autotest snippets. +# +# License WTFPL2: Do What The Fuck You Want To Public License, version 2. +# This is free software: you are free to do what the fuck you want to. +# There is NO WARRANTY, to the extent permitted by law. + +total=$1; shift +pass=0 +seq=0 + +echo "1..$total" +for arg +do + seq=`expr 1 + $seq` + if eval "$arg" >/dev/null 2>&1; then + echo "ok $seq" + pass=`expr 1 + $pass` + else + echo "not ok $seq" + fi +done + +test $pass -eq $total diff --git a/tests/snippets.at b/tests/snippets.at index 8e2f242..dc37d6b 100644 --- a/tests/snippets.at +++ b/tests/snippets.at @@ -1,4 +1,4 @@ -dnl Copyright © 2021-2023 Nick Bowler +dnl Copyright © 2021-2024 Nick Bowler dnl dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2. dnl This is free software: you are free to do what the fuck you want to. @@ -183,3 +183,5 @@ l0/b/LC_MESSAGES ]]) AT_CLEANUP + +TEST_TAP_SIMPLE([test-tap.at sanity], [tapcheck.sh 4 : : : :], [], [autotest]) -- 2.43.2