X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fstatistics%2Ftest_statistics_api.c;h=fff2b78b74a4193627083e4538ea6aebc3ed8ab5;hb=cb3c882dbb05a797728dfd8b5983ade5a8999eac;hp=a03a8c3ed47ae3ac6e1ca3b18387acacea853232;hpb=42dbd0d48e6bd38d58c7d58d523f5f71efed22a0;p=oweals%2Fgnunet.git diff --git a/src/statistics/test_statistics_api.c b/src/statistics/test_statistics_api.c index a03a8c3ed..fff2b78b7 100644 --- a/src/statistics/test_statistics_api.c +++ b/src/statistics/test_statistics_api.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 @@ -29,13 +29,20 @@ #include "gnunet_scheduler_lib.h" #include "gnunet_statistics_service.h" -#define VERBOSE GNUNET_NO +#define DEBUG_STATISTICS GNUNET_NO + +#define START_SERVICE GNUNET_YES static int check_1 (void *cls, const char *subsystem, - const char *name, unsigned long long value, int is_persistent) + const char *name, uint64_t value, int is_persistent) { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Received value %llu for `%s:%s\n", + (unsigned long long) value, + subsystem, + name); GNUNET_assert (0 == strcmp (name, "test-1")); GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api")); GNUNET_assert (value == 1); @@ -46,8 +53,13 @@ check_1 (void *cls, static int check_2 (void *cls, const char *subsystem, - const char *name, unsigned long long value, int is_persistent) + const char *name, uint64_t value, int is_persistent) { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Received value %llu for `%s:%s\n", + (unsigned long long) value, + subsystem, + name); GNUNET_assert (0 == strcmp (name, "test-2")); GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api")); GNUNET_assert (value == 2); @@ -58,8 +70,13 @@ check_2 (void *cls, static int check_3 (void *cls, const char *subsystem, - const char *name, unsigned long long value, int is_persistent) + const char *name, uint64_t value, int is_persistent) { + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Received value %llu for `%s:%s\n", + (unsigned long long) value, + subsystem, + name); GNUNET_assert (0 == strcmp (name, "test-3")); GNUNET_assert (0 == strcmp (subsystem, "test-statistics-api")); GNUNET_assert (value == 3); @@ -83,86 +100,106 @@ static void next (void *cls, int success) { GNUNET_assert (success == GNUNET_OK); - GNUNET_STATISTICS_get (h, NULL, "test-2", - GNUNET_TIME_UNIT_SECONDS, &next_fin, &check_2, cls); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Issuing GET request\n"); + GNUNET_break (NULL != + GNUNET_STATISTICS_get (h, NULL, "test-2", + GNUNET_TIME_UNIT_SECONDS, &next_fin, &check_2, cls)); } static void run (void *cls, - struct GNUNET_SCHEDULER_Handle *sched, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) { - - h = GNUNET_STATISTICS_create (sched, "test-statistics-api", cfg); + h = GNUNET_STATISTICS_create ("test-statistics-api", cfg); GNUNET_STATISTICS_set (h, "test-1", 1, GNUNET_NO); GNUNET_STATISTICS_set (h, "test-2", 2, GNUNET_NO); GNUNET_STATISTICS_set (h, "test-3", 2, GNUNET_NO); GNUNET_STATISTICS_update (h, "test-3", 1, GNUNET_YES); - GNUNET_STATISTICS_get (h, NULL, "test-1", - GNUNET_TIME_UNIT_SECONDS, &next, &check_1, cls); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Issuing GET request\n"); + GNUNET_break (NULL != + GNUNET_STATISTICS_get (h, NULL, "test-1", + GNUNET_TIME_UNIT_SECONDS, &next, &check_1, cls)); } static void run_more (void *cls, - struct GNUNET_SCHEDULER_Handle *sched, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) { - h = GNUNET_STATISTICS_create (sched, "test-statistics-api", cfg); - GNUNET_STATISTICS_get (h, NULL, "test-3", - GNUNET_TIME_UNIT_SECONDS, &next_fin, &check_3, cls); + h = GNUNET_STATISTICS_create ("test-statistics-api", cfg); + GNUNET_break (NULL != + GNUNET_STATISTICS_get (h, NULL, "test-3", + GNUNET_TIME_UNIT_SECONDS, &next_fin, &check_3, cls)); } static int check () { int ok = 1; - pid_t pid; char *const argv[] = { "test-statistics-api", "-c", "test_statistics_api_data.conf", +#if DEBUG_STATISTICS + "-L", "DEBUG", +#else + "-L", "WARNING", +#endif NULL }; struct GNUNET_GETOPT_CommandLineOption options[] = { GNUNET_GETOPT_OPTION_END }; - pid = GNUNET_OS_start_process ("gnunet-service-statistics", +#if START_SERVICE + struct GNUNET_OS_Process *proc; + proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-statistics", "gnunet-service-statistics", #if DEBUG_STATISTICS "-L", "DEBUG", #endif "-c", "test_statistics_api_data.conf", NULL); - sleep (1); - GNUNET_PROGRAM_run (3, argv, "test-statistics-api", "nohelp", +#endif + GNUNET_assert (NULL != proc); + GNUNET_PROGRAM_run (5, argv, "test-statistics-api", "nohelp", options, &run, &ok); - if (0 != PLIBC_KILL (pid, SIGTERM)) +#if START_SERVICE + if (0 != GNUNET_OS_process_kill (proc, SIGTERM)) { GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); ok = 1; } - GNUNET_OS_process_wait(pid); + GNUNET_OS_process_wait (proc); + GNUNET_OS_process_close (proc); + proc = NULL; +#endif if (ok != 0) return ok; ok = 1; +#if START_SERVICE /* restart to check persistence! */ - pid = GNUNET_OS_start_process ("gnunet-service-statistics", + proc = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-statistics", "gnunet-service-statistics", #if DEBUG_STATISTICS "-L", "DEBUG", #endif "-c", "test_statistics_api_data.conf", NULL); - sleep (1); - GNUNET_PROGRAM_run (3, argv, "test-statistics-api", "nohelp", +#endif + GNUNET_PROGRAM_run (5, argv, "test-statistics-api", "nohelp", options, &run_more, &ok); - if (0 != PLIBC_KILL (pid, SIGTERM)) +#if START_SERVICE + if (0 != GNUNET_OS_process_kill (proc, SIGTERM)) { GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); ok = 1; } - GNUNET_OS_process_wait(pid); + GNUNET_OS_process_wait (proc); + GNUNET_OS_process_close (proc); + proc = NULL; +#endif return ok; } @@ -171,6 +208,13 @@ main (int argc, char *argv[]) { int ret; + GNUNET_log_setup ("test_statistics_api", +#if DEBUG_STATISTICS + "DEBUG", +#else + "WARNING", +#endif + NULL); ret = check (); return ret;