]> git.draconx.ca Git - dxcommon.git/blobdiff - tests/functions.at
Add common option formatting routines.
[dxcommon.git] / tests / functions.at
index 115b8cffa08593530fb533d928a5cc15d27b0351..507c10571a3c79eae484baebd74d66a145e3cfac 100644 (file)
@@ -1,4 +1,4 @@
-dnl Copyright © 2015 Nick Bowler
+dnl Copyright © 2015, 2021 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,55 @@ 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 <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])], [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
+]])
+
+AT_CLEANUP