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
/**
* 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
static int ok;
+static const char* plugin_name;
static size_t
get_size (int i)
struct GNUNET_SCHEDULER_Handle *sched;
const struct GNUNET_CONFIGURATION_Handle *cfg;
void *data;
- size_t size;
enum RunPhase phase;
};
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);
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
if (0 == crc->i)
crc->phase = RP_DONE;
GNUNET_SCHEDULER_add_continuation (crc->sched,
- GNUNET_NO,
&run_continuation,
crc,
GNUNET_SCHEDULER_REASON_PREREQ_DONE);
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;
if (0 == --crc->i)
crc->phase = RP_DONE;
GNUNET_SCHEDULER_add_continuation (crc->sched,
- GNUNET_NO,
&run_continuation,
crc,
GNUNET_SCHEDULER_REASON_PREREQ_DONE);
get_priority (crc->i),
get_anonymity (crc->i),
get_expiration (crc->i),
- TIMEOUT,
+ 1, 1, TIMEOUT,
&check_success,
crc);
crc->i++;
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
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);
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);
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
struct GNUNET_GETOPT_CommandLineOption options[] = {
GNUNET_GETOPT_OPTION_END
};
- pid = GNUNET_OS_start_process ("gnunet-service-arm",
+ 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);
{
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
#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 */