X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fdatastore%2Ftest_datastore_api_management.c;h=d0278094f8a32a9fbdd81604a13df04c550178ca;hb=f9b7adcad3cc030a800cbc9a96709454c45ae06f;hp=22d4aff25c40f74273e413b00225804fdf057d1e;hpb=3eef32501096eae621c68a59fbe68da6b0992072;p=oweals%2Fgnunet.git diff --git a/src/datastore/test_datastore_api_management.c b/src/datastore/test_datastore_api_management.c index 22d4aff25..d0278094f 100644 --- a/src/datastore/test_datastore_api_management.c +++ b/src/datastore/test_datastore_api_management.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 @@ -33,7 +33,7 @@ /** * How long until we give up on transmitting the message? */ -#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 15) +#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 60) /** * Number of iterations to run; must be large enough @@ -47,6 +47,7 @@ static struct GNUNET_TIME_Absolute now; static int ok; +static const char* plugin_name; static size_t get_size (int i) @@ -111,7 +112,6 @@ struct CpsRunContext struct GNUNET_SCHEDULER_Handle *sched; const struct GNUNET_CONFIGURATION_Handle *cfg; void *data; - size_t size; enum RunPhase phase; }; @@ -134,7 +134,6 @@ check_success (void *cls, GNUNET_free_non_null (crc->data); crc->data = NULL; GNUNET_SCHEDULER_add_continuation (crc->sched, - GNUNET_NO, &run_continuation, crc, GNUNET_SCHEDULER_REASON_PREREQ_DONE); @@ -146,7 +145,7 @@ check_value (void *cls, const GNUNET_HashCode * key, uint32_t size, const void *data, - uint32_t type, + enum GNUNET_BLOCK_Type type, uint32_t priority, uint32_t anonymity, struct GNUNET_TIME_Absolute @@ -172,7 +171,6 @@ check_value (void *cls, if (0 == crc->i) crc->phase = RP_DONE; GNUNET_SCHEDULER_add_continuation (crc->sched, - GNUNET_NO, &run_continuation, crc, GNUNET_SCHEDULER_REASON_PREREQ_DONE); @@ -192,14 +190,14 @@ check_value (void *cls, static void check_nothing (void *cls, - const GNUNET_HashCode * key, - uint32_t size, - const void *data, - uint32_t type, - uint32_t priority, - uint32_t anonymity, - struct GNUNET_TIME_Absolute - expiration, uint64_t uid) + const GNUNET_HashCode * key, + uint32_t size, + const void *data, + enum GNUNET_BLOCK_Type type, + uint32_t priority, + uint32_t anonymity, + struct GNUNET_TIME_Absolute + expiration, uint64_t uid) { struct CpsRunContext *crc = cls; @@ -207,7 +205,6 @@ check_nothing (void *cls, if (0 == --crc->i) crc->phase = RP_DONE; GNUNET_SCHEDULER_add_continuation (crc->sched, - GNUNET_NO, &run_continuation, crc, GNUNET_SCHEDULER_REASON_PREREQ_DONE); @@ -239,7 +236,7 @@ run_continuation (void *cls, get_priority (crc->i), get_anonymity (crc->i), get_expiration (crc->i), - TIMEOUT, + 1, 1, TIMEOUT, &check_success, crc); crc->i++; @@ -263,9 +260,9 @@ run_continuation (void *cls, GNUNET_DATASTORE_get (datastore, &crc->key, get_type (crc->i), + 1, 1, TIMEOUT, &check_value, - crc, - TIMEOUT); + crc); break; case RP_GET_FAIL: #if VERBOSE @@ -278,9 +275,9 @@ run_continuation (void *cls, GNUNET_DATASTORE_get (datastore, &crc->key, get_type (crc->i), + 1, 1, TIMEOUT, &check_nothing, - crc, - TIMEOUT); + crc); break; case RP_DONE: GNUNET_assert (0 == crc->i); @@ -311,7 +308,6 @@ run (void *cls, now = GNUNET_TIME_absolute_get (); datastore = GNUNET_DATASTORE_connect (cfg, sched); GNUNET_SCHEDULER_add_continuation (crc->sched, - GNUNET_NO, &run_continuation, crc, GNUNET_SCHEDULER_REASON_PREREQ_DONE); @@ -324,9 +320,11 @@ static int check () { pid_t pid; - char *const argv[] = { "test-datastore-api-management", + char cfg_name[128]; + char *const argv[] = { + "test-datastore-api-management", "-c", - "test_datastore_api_data.conf", + cfg_name, #if VERBOSE "-L", "DEBUG", #endif @@ -335,13 +333,16 @@ check () struct GNUNET_GETOPT_CommandLineOption options[] = { GNUNET_GETOPT_OPTION_END }; - pid = GNUNET_OS_start_process ("gnunet-service-datastore", - "gnunet-service-datastore", + GNUNET_snprintf (cfg_name, + sizeof (cfg_name), + "test_datastore_api_data_%s.conf", + plugin_name); + pid = GNUNET_OS_start_process (NULL, NULL, "gnunet-service-arm", + "gnunet-service-arm", #if VERBOSE "-L", "DEBUG", #endif - "-c", "test_datastore_api_data.conf", NULL); - sleep (1); + "-c", cfg_name, NULL); GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, argv, "test-datastore-api", "nohelp", options, &run, NULL); @@ -361,8 +362,20 @@ main (int argc, char *argv[]) { int ret; - GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-datastore"); - GNUNET_log_setup ("test-datastore-api", + const char *pos; + char dir_name[128]; + + /* determine name of plugin to use */ + plugin_name = argv[0]; + while (NULL != (pos = strstr(plugin_name, "_"))) + plugin_name = pos+1; + + GNUNET_snprintf (dir_name, + sizeof (dir_name), + "/tmp/test-gnunet-datastore-%s", + plugin_name); + GNUNET_DISK_directory_remove (dir_name); + GNUNET_log_setup ("test-datastore-api-management", #if VERBOSE "DEBUG", #else @@ -370,10 +383,8 @@ main (int argc, char *argv[]) #endif NULL); ret = check (); - GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-datastore"); + GNUNET_DISK_directory_remove (dir_name); return ret; } - - /* end of test_datastore_api_management.c */