X-Git-Url: http://git.draconx.ca/gitweb/dxcommon.git/blobdiff_plain/85d3347f01e3d27541e5d2fadf5ab49cc6cf54f9..70c84546fa5ecaba26e4ed021b292a5580f304f0:/tests/functions.at diff --git a/tests/functions.at b/tests/functions.at index 115b8cf..cfd5408 100644 --- a/tests/functions.at +++ b/tests/functions.at @@ -1,4 +1,4 @@ -dnl Copyright © 2015 Nick Bowler +dnl Copyright © 2015, 2021-2022 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. @@ -28,3 +28,88 @@ 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_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_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