Commit 366d0ee3 authored by Timo Teräs's avatar Timo Teräs

print usage and exit with error on invalid arguments

Add also some testing to make sure help, long help and handling
of invalid arguments works as expected.

Based on pull request #19 originally by Laurent Arnoud (@spk).
parent c3a93a4a
......@@ -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);
......
#!/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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment