X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ffs%2Ftest_fs_start_stop.c;h=6bd698a43e16bedcb3206c7174966cd3e83ecd8b;hb=6a3aa5797d49178e806fc5cc5713806647cbd040;hp=7558ac46a9ceedd9ae69697444423d0f01275e48;hpb=38b29592cf2e8b816cab68579e07e2477153f739;p=oweals%2Fgnunet.git diff --git a/src/fs/test_fs_start_stop.c b/src/fs/test_fs_start_stop.c index 7558ac46a..6bd698a43 100644 --- a/src/fs/test_fs_start_stop.c +++ b/src/fs/test_fs_start_stop.c @@ -33,22 +33,19 @@ #define START_ARM GNUNET_YES -static struct GNUNET_SCHEDULER_Handle *sched; - static struct PeerContext p1; struct PeerContext { struct GNUNET_CONFIGURATION_Handle *cfg; #if START_ARM - pid_t arm_pid; + struct GNUNET_OS_Process *arm_proc; #endif }; static void * -progress_cb (void *cls, - const struct GNUNET_FS_ProgressInfo *event) +progress_cb (void *cls, const struct GNUNET_FS_ProgressInfo *event) { return NULL; } @@ -59,12 +56,13 @@ setup_peer (struct PeerContext *p, const char *cfgname) { p->cfg = GNUNET_CONFIGURATION_create (); #if START_ARM - p->arm_pid = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm", - "gnunet-service-arm", + p->arm_proc = + GNUNET_OS_start_process (GNUNET_YES, NULL, NULL, "gnunet-service-arm", + "gnunet-service-arm", #if VERBOSE - "-L", "DEBUG", + "-L", "DEBUG", #endif - "-c", cfgname, NULL); + "-c", cfgname, NULL); #endif GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_load (p->cfg, cfgname)); } @@ -74,37 +72,32 @@ static void stop_arm (struct PeerContext *p) { #if START_ARM - if (0 != PLIBC_KILL (p->arm_pid, SIGTERM)) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); - if (GNUNET_OS_process_wait(p->arm_pid) != GNUNET_OK) - GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid"); - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "ARM process %u stopped\n", p->arm_pid); + if (NULL != p->arm_proc) + { + if (0 != GNUNET_OS_process_kill (p->arm_proc, SIGTERM)) + GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); + if (GNUNET_OS_process_wait (p->arm_proc) != GNUNET_OK) + GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "waitpid"); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "ARM process %u stopped\n", + GNUNET_OS_process_get_pid (p->arm_proc)); + GNUNET_OS_process_destroy (p->arm_proc); + p->arm_proc = NULL; + } #endif GNUNET_CONFIGURATION_destroy (p->cfg); } static void -run (void *cls, - struct GNUNET_SCHEDULER_Handle *s, - char *const *args, - const char *cfgfile, +run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) { struct GNUNET_FS_Handle *fs; - sched = s; setup_peer (&p1, "test_fs_data.conf"); - fs = GNUNET_FS_start (sched, - cfg, - "test-fs-start-stop", - &progress_cb, - NULL, - GNUNET_FS_FLAGS_NONE, - GNUNET_FS_OPTIONS_END); - GNUNET_assert (NULL != fs); - sleep (1); /* FIXME */ + fs = GNUNET_FS_start (cfg, "test-fs-start-stop", &progress_cb, NULL, + GNUNET_FS_FLAGS_NONE, GNUNET_FS_OPTIONS_END); + GNUNET_assert (NULL != fs); GNUNET_FS_stop (fs); } @@ -112,7 +105,7 @@ run (void *cls, int main (int argc, char *argv[]) { - char *const argvx[] = { + char *const argvx[] = { "test-fs-start-stop", "-c", "test_fs_data.conf", @@ -125,16 +118,15 @@ main (int argc, char *argv[]) GNUNET_GETOPT_OPTION_END }; - GNUNET_log_setup ("test_fs_start_stop", + GNUNET_log_setup ("test_fs_start_stop", #if VERBOSE - "DEBUG", + "DEBUG", #else - "WARNING", + "WARNING", #endif - NULL); - GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1, - argvx, "test-fs-start-stop", - "nohelp", options, &run, NULL); + NULL); + GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1, argvx, + "test-fs-start-stop", "nohelp", options, &run, NULL); stop_arm (&p1); GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs/"); return 0;