From 2f5a56e69f618000c16c0aceaaa46aeeb56ba8c2 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 25 Feb 2017 03:40:08 +0100 Subject: update test as well --- src/ext/test_ext_api.c | 74 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 49 insertions(+), 25 deletions(-) diff --git a/src/ext/test_ext_api.c b/src/ext/test_ext_api.c index c987108..75a7cc4 100644 --- a/src/ext/test_ext_api.c +++ b/src/ext/test_ext_api.c @@ -26,9 +26,15 @@ #include "gnunet_ext_service.h" +/** + * Return value from #main(). Set to 0 to mark test as passing. + */ static int ok = 1; +/** + * Main function of the test. + */ static void run (void *cls, char *const *args, @@ -39,58 +45,76 @@ run (void *cls, } -static void -check () +/** + * Launches the gnunet-service-ext and then the #run() function + * with some specified arguments, allowing it to then interact + * with the 'ext' service. + * + * Note that you may want to use libgnunettesting or + * libgnunettestbed to launch a "full" peer instead of just + * a single service. + * + * @param argc ignored + * @param argv ignored + * @return 77 if we failed to find gnunet-service-ext + */ +int +main (int argc, + char *argv[]) { - char *const argv[] = { "test-ext-api", NULL }; + char *const ext_argv[] = { + "test-ext-api", + NULL + }; struct GNUNET_GETOPT_CommandLineOption options[] = { GNUNET_GETOPT_OPTION_END }; struct GNUNET_OS_Process *proc; - char *path = GNUNET_OS_get_libexec_binary_path ("gnunet-service-ext"); + char *path; + GNUNET_log_setup ("test_ext_api", + "WARNING", + NULL); + path = GNUNET_OS_get_libexec_binary_path ("gnunet-service-ext"); if (NULL == path) { fprintf (stderr, "Failed to determine path for `%s'\n", "gnunet-service-ext"); - ok = 77; - return; + return 77; } - proc = GNUNET_OS_start_process (GNUNET_NO, GNUNET_OS_INHERIT_STD_ALL, NULL, - NULL, NULL, path, - "gnunet-service-ext", NULL); + NULL, + NULL, + path, + "gnunet-service-ext", + NULL); GNUNET_free (path); if (NULL == proc) { fprintf (stderr, "Service executable not found `%s'\n", "gnunet-service-ext"); - ok = 77; - return; + return 77; } - GNUNET_PROGRAM_run (1, argv, "test-ext-api", "nohelp", - options, &run, &ok); - if (0 != GNUNET_OS_process_kill (proc, SIGTERM)) + GNUNET_PROGRAM_run (1, + ext_argv, + "test-ext-api", + "nohelp", + options, + &run, + &ok); + if (0 != GNUNET_OS_process_kill (proc, + SIGTERM)) { - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); + GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, + "kill"); ok = 1; } GNUNET_OS_process_wait (proc); GNUNET_OS_process_destroy (proc); -} - - -int -main (int argc, char *argv[]) -{ - GNUNET_log_setup ("test_statistics_api", - "WARNING", - NULL); - check (); return ok; } -- cgit v1.2.3