X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Fdatacache%2Ftest_datacache_quota.c;h=21e37360867b4089e8cee01bd34fe7b2cde7e1db;hb=7a5a724a6f96baf80d2226326124aa01c58ad3fe;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..21e373608 100644 --- a/src/datacache/test_datacache_quota.c +++ b/src/datacache/test_datacache_quota.c @@ -1,21 +1,19 @@ /* 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 - option) any later version. + GNUnet is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. GNUnet is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - 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. + Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ /* * @file datacache/test_datacache_quota.c @@ -25,13 +23,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 @@ -40,67 +42,72 @@ static int ok; */ static void run (void *cls, - struct GNUNET_SCHEDULER_Handle *sched, char *const *args, - const char *cfgfile, + const char *cfgfile, const struct GNUNET_CONFIGURATION_Handle *cfg) { struct GNUNET_DATACACHE_Handle *h; - GNUNET_HashCode k; - GNUNET_HashCode n; - unsigned int i; - unsigned int j; + struct GNUNET_HashCode k; + struct GNUNET_HashCode n; char buf[3200]; struct GNUNET_TIME_Absolute exp; + (void) cls; + (void) args; + (void) cfgfile; ok = 0; - h = GNUNET_DATACACHE_create (sched, - cfg, + 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)); - for (i = 0; i < 10; i++) - { - 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; - } - fprintf (stderr, "\n"); - memset (&k, 0, sizeof (GNUNET_HashCode)); - for (i = 0; i < 10; i++) + memset (&k, 0, sizeof (struct GNUNET_HashCode)); + for (unsigned int i = 0; i < 10; i++) + { + FPRINTF (stderr, + "%s", + "."); + GNUNET_CRYPTO_hash (&k, + sizeof (struct GNUNET_HashCode), + &n); + for (unsigned int j = i; j < sizeof (buf); j += 10) { - 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; + exp.abs_value_us++; + buf[j] = i; + ASSERT (GNUNET_OK == + GNUNET_DATACACHE_put (h, + &k, + GNUNET_YES, + j, + buf, + 1 + i, + exp, + 0, + NULL)); + ASSERT (0 < GNUNET_DATACACHE_get (h, &k, 1 + i, NULL, NULL)); } - fprintf (stderr, "\n"); + k = n; + } + FPRINTF (stderr, "%s", "\n"); + memset (&k, 0, sizeof (struct GNUNET_HashCode)); + for (unsigned int i = 0; i < 10; i++) + { + 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 +117,43 @@ 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 + (void) argc; + 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 */