X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fdatacache%2Ftest_datacache_quota.c;h=78b56ce42584c83c90f910e0c9692711bf94e7e6;hb=4e8ed070519a3e51255586f6d8282972a1c08987;hp=6a8c3c5161d74631fe8b26d65f3a06916fe73464;hpb=f3374052ea793801f5ca2921017a3354648f5a1f;p=oweals%2Fgnunet.git diff --git a/src/datacache/test_datacache_quota.c b/src/datacache/test_datacache_quota.c index 6a8c3c516..78b56ce42 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) + Copyright (C) 2006, 2009, 2010 GNUnet e.V. 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 @@ -14,8 +14,8 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /* * @file datacache/test_datacache_quota.c @@ -25,13 +25,17 @@ #include "platform.h" #include "gnunet_util_lib.h" #include "gnunet_datacache_lib.h" - -#define VERBOSE GNUNET_NO +#include "gnunet_testing_lib.h" #define ASSERT(x) do { if (! (x)) { printf("Error at %s:%d\n", __FILE__, __LINE__); goto FAILURE;} } while (0) 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 @@ -39,68 +43,54 @@ static int ok; * some of the data from the last iteration is still there. */ static void -run (void *cls, - struct GNUNET_SCHEDULER_Handle *sched, - char *const *args, - const char *cfgfile, +run (void *cls, char *const *args, const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) { struct GNUNET_DATACACHE_Handle *h; - GNUNET_HashCode k; - GNUNET_HashCode n; + struct GNUNET_HashCode k; + struct GNUNET_HashCode n; unsigned int i; unsigned int j; char buf[3200]; struct GNUNET_TIME_Absolute exp; ok = 0; - h = GNUNET_DATACACHE_create (sched, - cfg, - "testcache"); + h = GNUNET_DATACACHE_create (cfg, "testcache"); - ASSERT (NULL != h); - exp = GNUNET_TIME_absolute_get (); - exp.value += 20 * 60 * 1000; + if (h == NULL) + { + FPRINTF (stderr, "%s", "Failed to initialize datacache. Database likely not setup, skipping test.\n"); + return; + } + exp = GNUNET_TIME_relative_to_absolute (GNUNET_TIME_UNIT_HOURS); memset (buf, 1, sizeof (buf)); - memset (&k, 0, sizeof (GNUNET_HashCode)); + memset (&k, 0, sizeof (struct GNUNET_HashCode)); for (i = 0; i < 10; i++) + { + FPRINTF (stderr, "%s", "."); + GNUNET_CRYPTO_hash (&k, sizeof (struct GNUNET_HashCode), &n); + for (j = i; j < sizeof (buf); j += 10) { - fprintf (stderr, "."); - GNUNET_CRYPTO_hash (&k, sizeof (GNUNET_HashCode), &n); - for (j = i; j < sizeof (buf); j += 10) - { - exp.value++; - buf[j] = i; - ASSERT (GNUNET_OK == - GNUNET_DATACACHE_put (h, - &k, - j, - buf, - 1+i, - exp)); - ASSERT (0 < GNUNET_DATACACHE_get (h, - &k, 1+i, - NULL, NULL)); - } - k = n; + exp.abs_value_us++; + buf[j] = i; + ASSERT (GNUNET_OK == GNUNET_DATACACHE_put (h, &k, j, buf, 1 + i, exp, 0, NULL)); + ASSERT (0 < GNUNET_DATACACHE_get (h, &k, 1 + i, NULL, NULL)); } - fprintf (stderr, "\n"); - memset (&k, 0, sizeof (GNUNET_HashCode)); + k = n; + } + FPRINTF (stderr, "%s", "\n"); + memset (&k, 0, sizeof (struct GNUNET_HashCode)); for (i = 0; i < 10; i++) - { - fprintf (stderr, "."); - GNUNET_CRYPTO_hash (&k, sizeof (GNUNET_HashCode), &n); - if (i < 2) - ASSERT (0 == GNUNET_DATACACHE_get (h, - &k, 1+i, - NULL, NULL)); - if (i == 9) - ASSERT (0 < GNUNET_DATACACHE_get (h, - &k, 1+i, - NULL, NULL)); - k = n; - } - fprintf (stderr, "\n"); + { + FPRINTF (stderr, "%s", "."); + GNUNET_CRYPTO_hash (&k, sizeof (struct GNUNET_HashCode), &n); + if (i < 2) + ASSERT (0 == GNUNET_DATACACHE_get (h, &k, 1 + i, NULL, NULL)); + if (i == 9) + ASSERT (0 < GNUNET_DATACACHE_get (h, &k, 1 + i, NULL, NULL)); + k = n; + } + FPRINTF (stderr, "%s", "\n"); GNUNET_DATACACHE_destroy (h); return; FAILURE: @@ -110,44 +100,32 @@ FAILURE: } -static int -check () +int +main (int argc, char *argv[]) { - char *const argv[] = { "test-datacache-api-quota", + char cfg_name[128]; + char *const xargv[] = { + "test-datacache-quota", "-c", - "test_datacache_data.conf", -#if VERBOSE - "-L", "DEBUG", -#endif + cfg_name, NULL }; struct GNUNET_GETOPT_CommandLineOption options[] = { GNUNET_GETOPT_OPTION_END }; - GNUNET_PROGRAM_run ((sizeof (argv) / sizeof (char *)) - 1, - argv, "test-datacache-api-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-api-quota", -#if VERBOSE - "DEBUG", -#else + GNUNET_log_setup ("test-datacache-quota", "WARNING", -#endif NULL); - ret = check (); - return ret; + plugin_name = GNUNET_TESTING_get_testname_from_underscore (argv[0]); + GNUNET_snprintf (cfg_name, sizeof (cfg_name), "test_datacache_data_%s.conf", + plugin_name); + GNUNET_PROGRAM_run ((sizeof (xargv) / sizeof (char *)) - 1, xargv, + "test-datacache-quota", "nohelp", options, &run, NULL); + if (0 != ok) + FPRINTF (stderr, "Missed some testcases: %d\n", ok); + return ok; } /* end of test_datacache_quota.c */