diff options
-rw-r--r-- | src/ostree/ot-builtin-config.c | 12 | ||||
-rwxr-xr-x | tests/test-config.sh | 18 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/ostree/ot-builtin-config.c b/src/ostree/ot-builtin-config.c index 8e00af08..811a8381 100644 --- a/src/ostree/ot-builtin-config.c +++ b/src/ostree/ot-builtin-config.c @@ -71,6 +71,7 @@ ostree_builtin_config (int argc, char **argv, OstreeCommandInvocation *invocatio g_autofree char *section = NULL; g_autofree char *key = NULL; g_autoptr(GKeyFile) config = NULL; + int correct_argc; context = g_option_context_new ("(get KEY|set KEY VALUE|unset KEY)"); @@ -86,6 +87,17 @@ ostree_builtin_config (int argc, char **argv, OstreeCommandInvocation *invocatio op = argv[1]; if (!strcmp (op, "set")) + correct_argc = 4; + else + correct_argc = 3; + + if (argc > correct_argc) + { + ot_util_usage_error (context, "Too many arguments given", error); + return FALSE; + } + + if (!strcmp (op, "set")) { if (opt_group) { diff --git a/tests/test-config.sh b/tests/test-config.sh index 62f63006..b98f8d47 100755 --- a/tests/test-config.sh +++ b/tests/test-config.sh @@ -41,6 +41,12 @@ assert_file_has_content list.txt "1" assert_file_has_content list.txt "Flathub" assert_file_has_content list.txt "true" assert_file_has_content list.txt "http://example.com/ostree/repo/" + +# Check that it errors out if too many arguments are given +if ${CMD_PREFIX} ostree config --repo=repo get --group=core lock-timeout-secs extra 2>err.txt; then + assert_not_reached "ostree config get should error out if too many arguments are given" +fi +assert_file_has_content err.txt "error: Too many arguments given" echo "ok config get" ${CMD_PREFIX} ostree config --repo=repo set core.mode bare-user-only @@ -52,6 +58,12 @@ assert_file_has_content repo/config "bare-user-only" assert_file_has_content repo/config "Nightly Flathub" assert_file_has_content repo/config "false" assert_file_has_content repo/config "http://example.com/ostree/" + +# Check that it errors out if too many arguments are given +if ${CMD_PREFIX} ostree config --repo=repo set --group=core lock-timeout-secs 120 extra 2>err.txt; then + assert_not_reached "ostree config set should error out if too many arguments are given" +fi +assert_file_has_content err.txt "error: Too many arguments given" echo "ok config set" # Check that "ostree config unset" works @@ -76,4 +88,10 @@ ${CMD_PREFIX} ostree config --repo=repo unset --group='remote "aoeuhtns"' 'xa.ti # Check that the key doesn't need to exist ${CMD_PREFIX} ostree config --repo=repo set --group='remote "aoeuhtns"' 'xa.title-is-set' 'false' ${CMD_PREFIX} ostree config --repo=repo unset --group='remote "aoeuhtns"' 'xa.title' + +# Check that it errors out if too many arguments are given +if ${CMD_PREFIX} ostree config --repo=repo unset core.lock-timeout-secs extra 2>err.txt; then + assert_not_reached "ostree config unset should error out if too many arguments are given" +fi +assert_file_has_content err.txt "error: Too many arguments given" echo "ok config unset" |