diff options
author | Anders Carlsson <andersca@gnome.org> | 2004-10-03 19:34:19 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@src.gnome.org> | 2004-10-03 19:34:19 +0000 |
commit | a515025deeab11eb9cc8c419df19b786752aa590 (patch) | |
tree | 4946a6eff2d907ae0931b9803294e4e6fd4fa572 /tests | |
parent | 7b752f10b6c093359deb24a9aedc8c1a098b2755 (diff) |
Set arg_data on filenames. (Discovered by Mats-Ola Persson).
2004-10-03 Anders Carlsson <andersca@gnome.org>
* glib/goption.c: (parse_arg):
Set arg_data on filenames. (Discovered by Mats-Ola Persson).
* tests/option-test.c: (arg_test3), (ignore_test3), (main):
Add test for filename args.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/option-test.c | 50 |
1 files changed, 32 insertions, 18 deletions
diff --git a/tests/option-test.c b/tests/option-test.c index 08a4f92cd..d08b2238a 100644 --- a/tests/option-test.c +++ b/tests/option-test.c @@ -8,6 +8,7 @@ gboolean error_test3_boolean; int arg_test1_int; gchar *arg_test2_string; +gchar *arg_test3_filename; gchar **array_test1_array; @@ -295,6 +296,36 @@ arg_test2 (void) } void +arg_test3 (void) +{ + GOptionContext *context; + gboolean retval; + GError *error = NULL; + gchar **argv; + int argc; + GOptionEntry entries [] = + { { "test", 0, 0, G_OPTION_ARG_FILENAME, &arg_test3_filename, 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 foo.txt", &argc); + + retval = g_option_context_parse (context, &argc, &argv, &error); + g_assert (retval); + + /* Last arg specified is the one that should be stored */ + g_assert (strcmp (arg_test3_filename, "foo.txt") == 0); + + g_free (arg_test3_filename); + + g_strfreev (argv); + g_option_context_free (context); +} + +void ignore_test1 (void) { GOptionContext *context; @@ -394,24 +425,6 @@ ignore_test3 (void) g_free (arg); g_strfreev (argv_copy); g_free (argv); - - /* Try again */ - argv = split_string ("program --test=foo --hello", &argc); - argv_copy = copy_stringv (argv, argc); - - retval = g_option_context_parse (context, &argc, &argv, &error); - g_assert (retval); - - /* Check array */ - arg = join_stringv (argc, argv); - g_assert (strcmp (arg, "program --hello") == 0); - - g_assert (strcmp (ignore_test3_string, "foo") == 0); - g_free (ignore_test3_string); - - g_free (arg); - g_strfreev (argv_copy); - g_free (argv); g_option_context_free (context); } @@ -509,6 +522,7 @@ main (int argc, char **argv) /* Test that special argument parsing works */ arg_test1 (); arg_test2 (); + arg_test3 (); /* Test string arrays */ array_test1 (); |