X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fdatacache%2Ftest_datacache_quota.c;h=d956ac36f2b06507d5dfe10d992d646e7fce4ca1;hb=8dfd7bda2f139e2dac27e804167eedc3d227453e;hp=f1bf8c436a7f440430b2e8eff1d7782399969305;hpb=6df84e865fb0ae80c2e6a8796869e36e98bce297;p=oweals%2Fgnunet.git diff --git a/src/datacache/test_datacache_quota.c b/src/datacache/test_datacache_quota.c index f1bf8c436..d956ac36f 100644 --- a/src/datacache/test_datacache_quota.c +++ b/src/datacache/test_datacache_quota.c @@ -1,10 +1,10 @@ /* This file is part of GNUnet. - (C) 2006, 2009 Christian Grothoff (and other contributing authors) + (C) 2006, 2009, 2010 Christian Grothoff (and other contributing authors) 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 @@ -32,6 +32,11 @@ static int ok; +/** + * Name of plugin under test. + */ +static const char *plugin_name; + /** * Quota is 1 MB. Each iteration of the test puts in about 1 MB of * data. We do 10 iterations. Afterwards we check that the data from @@ -40,7 +45,6 @@ static int ok; */ static void run (void *cls, - struct GNUNET_SCHEDULER_Handle *sched, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) @@ -54,13 +58,17 @@ run (void *cls, struct GNUNET_TIME_Absolute exp; ok = 0; - h = GNUNET_DATACACHE_create (sched, - cfg, + h = GNUNET_DATACACHE_create (cfg, "testcache"); - ASSERT (NULL != h); + if (h == NULL) + { + fprintf (stderr, + "Failed to initialize datacache. Database likely not setup, skipping test.\n"); + return; + } exp = GNUNET_TIME_absolute_get (); - exp.value += 20 * 60 * 1000; + exp.abs_value += 20 * 60 * 1000; memset (buf, 1, sizeof (buf)); memset (&k, 0, sizeof (GNUNET_HashCode)); for (i = 0; i < 10; i++) @@ -69,7 +77,7 @@ run (void *cls, GNUNET_CRYPTO_hash (&k, sizeof (GNUNET_HashCode), &n); for (j = i; j < sizeof (buf); j += 10) { - exp.value++; + exp.abs_value++; buf[j] = i; ASSERT (GNUNET_OK == GNUNET_DATACACHE_put (h, @@ -110,12 +118,15 @@ FAILURE: } -static int -check () +int +main (int argc, char *argv[]) { - char *const argv[] = { "test-datacache-quota", + char *pos; + char cfg_name[128]; + char *const xargv[] = { + "test-datacache-quota", "-c", - "test_datacache_data.conf", + cfg_name, #if VERBOSE "-L", "DEBUG", #endif @@ -124,20 +135,7 @@ check () struct GNUNET_GETOPT_CommandLineOption options[] = { GNUNET_GETOPT_OPTION_END }; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, - argv, "test-datacache-quota", "nohelp", - options, &run, NULL); - if (ok != 0) - fprintf (stderr, "Missed some testcases: %d\n", ok); - return ok; -} - - -int -main (int argc, char *argv[]) -{ - int ret; - + GNUNET_log_setup ("test-datacache-quota", #if VERBOSE "DEBUG", @@ -145,9 +143,28 @@ main (int argc, char *argv[]) "WARNING", #endif NULL); - ret = check (); - return ret; + /* determine name of plugin to use */ + plugin_name = argv[0]; + while (NULL != (pos = strstr(plugin_name, "_"))) + plugin_name = pos+1; + if (NULL != (pos = strstr(plugin_name, "."))) + pos[0] = 0; + else + pos = (char *) plugin_name; + + GNUNET_snprintf (cfg_name, + sizeof (cfg_name), + "test_datacache_data_%s.conf", + plugin_name); + if (pos != plugin_name) + pos[0] = '.'; + GNUNET_PROGRAM_run ((sizeof (xargv) / sizeof (char *)) - 1, + xargv, "test-datacache-quota", "nohelp", + options, &run, NULL); + if (ok != 0) + fprintf (stderr, "Missed some testcases: %d\n", ok); + return ok; } /* end of test_datacache_quota.c */