diff options
-rw-r--r-- | src/apk.c | 9 | ||||
-rwxr-xr-x | test/command-parsing.sh | 26 |
2 files changed, 29 insertions, 6 deletions
@@ -588,11 +588,11 @@ int main(int argc, char **argv) help_requested = 1; break; } - if (r != -ENOTSUP) goto err_and_usage; + if (r != -ENOTSUP) goto err; } } - if (help_requested) { + if (help_requested || r == -ENOTSUP) { r = usage(applet); goto err; } @@ -686,12 +686,9 @@ int main(int argc, char **argv) r = 0; #endif -err_and_usage: - if (r == -EINVAL) - r = usage(applet); +err: if (r == -ESHUTDOWN) r = 0; -err: if (ctx) free(ctx); diff --git a/test/command-parsing.sh b/test/command-parsing.sh new file mode 100755 index 0000000..008cb77 --- /dev/null +++ b/test/command-parsing.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +fail=0 + +help_output=$(../src/apk version --help 2>/dev/null) +invalid_option_output="$(../src/apk --invalid-option version 2>/dev/null)" +if [ "$help_output" != "$invalid_option_output" ]; then + echo "FAIL: invalid option does not trigger help" + fail=$((fail+1)) +fi + +if ! ../src/apk --help 2>/dev/null | grep -q "^Use apk --help --verbose for a full command listing."; then + echo "FAIL: brief help gives long help" + fail=$((fail+1)) +fi + +if ../src/apk --help --verbose 2>/dev/null | grep -q "^Use apk --help --verbose for a full command listing."; then + echo "FAIL: long help does not work" + fail=$((fail+1)) +fi + +if [ $fail -eq 0 ]; then + echo "OK: command parsing works" +fi + +exit $fail |