mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-02 07:23:41 +02:00
Return an error if an option is missing its argument. (#305576, Björn
2005-05-27 Matthias Clasen <mclasen@redhat.com> * glib/goption.c (parse_short_option, parse_long_option): Return an error if an option is missing its argument. (#305576, Björn Lindqvist) * tests/option-test.c (missing_arg_test): Add a testcase.
This commit is contained in:
committed by
Matthias Clasen
parent
8db223409d
commit
4c4f106344
@@ -883,6 +883,41 @@ void lonely_dash_test (void)
|
||||
g_option_context_free (context);
|
||||
}
|
||||
|
||||
void
|
||||
missing_arg_test (void)
|
||||
{
|
||||
GOptionContext *context;
|
||||
gboolean retval;
|
||||
GError *error = NULL;
|
||||
gchar **argv;
|
||||
int argc;
|
||||
gchar *arg = NULL;
|
||||
GOptionEntry entries [] =
|
||||
{ { "test", 't', 0, G_OPTION_ARG_STRING, &arg, NULL, NULL },
|
||||
{ NULL } };
|
||||
|
||||
context = g_option_context_new (NULL);
|
||||
g_option_context_add_main_entries (context, entries, NULL);
|
||||
|
||||
/* Now try parsing */
|
||||
argv = split_string ("program --test", &argc);
|
||||
|
||||
retval = g_option_context_parse (context, &argc, &argv, &error);
|
||||
g_assert (retval == FALSE);
|
||||
g_clear_error (&error);
|
||||
|
||||
g_strfreev (argv);
|
||||
|
||||
/* Try parsing again */
|
||||
argv = split_string ("program --t", &argc);
|
||||
|
||||
retval = g_option_context_parse (context, &argc, &argv, &error);
|
||||
g_assert (retval == FALSE);
|
||||
|
||||
g_strfreev (argv);
|
||||
g_option_context_free (context);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char **argv)
|
||||
{
|
||||
@@ -931,5 +966,8 @@ main (int argc, char **argv)
|
||||
/* test for bug 168008 */
|
||||
lonely_dash_test ();
|
||||
|
||||
/* test for bug 305576 */
|
||||
missing_arg_test ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user