X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Futil%2Ftest_program.c;h=33a6b50ea481abeec631a283e1d749091f4af3e5;hb=bb83cd2d04ff5a3f7a8d05fc9a724b0246e958b6;hp=dee602e2a5f15823bc277f4b468cfed361e6017c;hpb=0a217a8df1657b4334b55b0e4a6c7837a8dbcfd9;p=oweals%2Fgnunet.git diff --git a/src/util/test_program.c b/src/util/test_program.c index dee602e2a..33a6b50ea 100644 --- a/src/util/test_program.c +++ b/src/util/test_program.c @@ -4,7 +4,7 @@ GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 2, or (at your + by the Free Software Foundation; either version 3, or (at your option) any later version. GNUnet is distributed in the hope that it will be useful, but @@ -27,25 +27,42 @@ #include "gnunet_scheduler_lib.h" #include "gnunet_time_lib.h" -static int setme; +static int setme1, setme2; -static struct GNUNET_GETOPT_CommandLineOption options[] = { - {'n', "name", NULL, "description", 0, &GNUNET_GETOPT_set_one, &setme}, +static struct GNUNET_GETOPT_CommandLineOption options1[] = { + {'n', "name", NULL, "description", 0, &GNUNET_GETOPT_set_one, &setme1}, + GNUNET_GETOPT_OPTION_END +}; + +static struct GNUNET_GETOPT_CommandLineOption options2[] = { + {'n', "name", NULL, "description", 0, &GNUNET_GETOPT_set_one, &setme1}, + {'N', "number", NULL, "description", 0, &GNUNET_GETOPT_set_one, &setme2}, + GNUNET_GETOPT_OPTION_END +}; + +static struct GNUNET_GETOPT_CommandLineOption options3[] = { + {'N', "number", NULL, "description", 0, &GNUNET_GETOPT_set_one, &setme1}, + {'n', "name", NULL, "description", 0, &GNUNET_GETOPT_set_one, &setme2}, + GNUNET_GETOPT_OPTION_END +}; + +static struct GNUNET_GETOPT_CommandLineOption options4[] = { + {'n', "name", NULL, "description", 0, &GNUNET_GETOPT_set_one, &setme1}, + {'n', "number", NULL, "description", 0, &GNUNET_GETOPT_set_one, &setme2}, GNUNET_GETOPT_OPTION_END }; /** * Main function that will be run. */ + static void runner (void *cls, - struct GNUNET_SCHEDULER_Handle *sched, char *const *args, - const char *cfgfile, struct GNUNET_CONFIGURATION_Handle *cfg) + const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) { int *ok = cls; - GNUNET_assert (setme == 1); - GNUNET_assert (sched != NULL); + GNUNET_assert (setme1 == 1); GNUNET_assert (0 == strcmp (args[0], "extra")); GNUNET_assert (args[1] == NULL); GNUNET_assert (0 == strcmp (cfgfile, "test_program_data.conf")); @@ -53,7 +70,6 @@ runner (void *cls, *ok = 0; } - /** * Main method, starts scheduler with task1, * checks that "ok" is correct at the end. @@ -72,11 +88,29 @@ check () "extra", NULL }; + + GNUNET_assert (GNUNET_OK == + GNUNET_PROGRAM_run (7, + argv, + "test_program", + "A test", options1, &runner, &ok)); + GNUNET_assert (GNUNET_OK == GNUNET_PROGRAM_run (7, argv, "test_program", - "A test", options, &runner, &ok)); + "A test", options2, &runner, &ok)); + GNUNET_assert (GNUNET_OK == + GNUNET_PROGRAM_run (7, + argv, + "test_program", + "A test", options3, &runner, &ok)); + GNUNET_assert (GNUNET_OK == + GNUNET_PROGRAM_run (7, + argv, + "test_program", + "A test", options4, &runner, &ok)); + return ok; }