dnl Copyright © 2015, 2021-2023 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. dnl There is NO WARRANTY, to the extent permitted by law. m4_divert_push([PREPARE_TESTS])dnl test_run_tap () { "$builddir/t/$1" > "$1.tap" status=$? cat "$1.tap" prove -e cat "$1.tap" return $status } m4_divert_pop([PREPARE_TESTS]) m4_define([TEST_TAP], [AT_CHECK([test_run_tap "$1"], [0], [ignore])]) m4_define([TEST_TAP_SIMPLE], [dnl AT_SETUP([$1]) AT_KEYWORDS([$4])dnl m4_n([$3])dnl TEST_TAP([$2]) AT_CLEANUP]) AT_BANNER([Binary packing functions]) TEST_TAP_SIMPLE([signed unpacking], [packtests], [], [pack]) TEST_TAP_SIMPLE([unsigned unpacking], [packtestu], [], [pack]) TEST_TAP_SIMPLE([64-bit signed unpacking], [packtests64], [], [pack]) TEST_TAP_SIMPLE([64-bit unsigned unpacking], [packtestu64], [], [pack]) AT_BANNER([Help formatting functions]) AT_SETUP([help_print_desc]) AT_KEYWORDS([help]) AT_SKIP_IF([test ! -x "$builddir/t/helpdesc"]) AT_DATA([test.txt], [[this is the first line this is the second line this is the third line and so on ]]) sed -e '5,$s/^/ /' -e '6,$s/^/ /' \ -e '10,$s/^/ /' \ -e '13s/^ *//' -e '14,$s/^/ /' \ test.txt test.txt test.txt test.txt >expout AT_CHECK(["$builddir/t/helpdesc" 0 0 10 5 30 20 40 40 @'], [--quux -q '@<:@ARG@:>@'], [--hello-this-is-a-very-long-option 20], [--hello-this-is-a-very-long-option 50], [--not-long 12], [--flagged -f \&])], [0], [[ --foo 7 -b, --bar 11 --baz=ARG 11 -B, --baz=ARG 15 --quux[=ARG] 14 -q, --quux[=ARG] 18 --hello-this-is-a-very-long-option 0 --hello-this-is-a-very-long-option 36 --not-long 12 --flagged 11 ]]) AT_CLEANUP AT_SETUP([help_print_optstring (getopt_long_only)]) AT_KEYWORDS([help]) AT_SKIP_IF([test ! -x "$builddir/t/helpopt2"]) AT_CHECK([m4_join([ ], ["$builddir/t/helpopt2"], [--foo], [--bar -b], [--baz ARG], [--baz -B ARG], [--quux '@<:@ARG@:>@'], [--quux -q '@<:@ARG@:>@'], [--hello-this-is-a-very-long-option 20], [--hello-this-is-a-very-long-option 50], [--not-long 12], [--flagged -f \&])], [0], [[ -foo 6 -bar 6 -baz ARG 10 -baz ARG 10 -quux [ARG] 13 -quux [ARG] 13 -hello-this-is-a-very-long-option 0 -hello-this-is-a-very-long-option 35 -not-long 11 -flagged 10 ]]) AT_CLEANUP