-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.
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 <test.txt],
+ [0], [expout])
+
+AT_CLEANUP
+
+AT_SETUP([help_print_optstring])
+
+AT_SKIP_IF([test ! -x "$builddir/t/helpopt"])
+
+AT_CHECK([m4_join([ ],
+ ["$builddir/t/helpopt"],
+ [--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 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