add keywords from metadata for files
[oweals/gnunet.git] / src / datacache / test_datacache_quota.c
index f1bf8c436a7f440430b2e8eff1d7782399969305..d956ac36f2b06507d5dfe10d992d646e7fce4ca1 100644 (file)
@@ -1,10 +1,10 @@
 /*
      This file is part of GNUnet.
 /*
      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
 
      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
      option) any later version.
 
      GNUnet is distributed in the hope that it will be useful, but
 
 static int ok;
 
 
 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
 /**
  * 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,
  */
 static void
 run (void *cls,
-     struct GNUNET_SCHEDULER_Handle *sched,
      char *const *args,
      const char *cfgfile, 
      const struct GNUNET_CONFIGURATION_Handle *cfg)
      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;
   struct GNUNET_TIME_Absolute exp;
 
   ok = 0;
-  h = GNUNET_DATACACHE_create (sched,
-                              cfg,
+  h = GNUNET_DATACACHE_create (cfg,
                               "testcache");
 
                               "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 = 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++)
   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)
         {
       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,
           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",
     "-c",
-    "test_datacache_data.conf",
+    cfg_name,
 #if VERBOSE
     "-L", "DEBUG",
 #endif
 #if VERBOSE
     "-L", "DEBUG",
 #endif
@@ -124,20 +135,7 @@ check ()
   struct GNUNET_GETOPT_CommandLineOption options[] = {
     GNUNET_GETOPT_OPTION_END
   };
   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",
   GNUNET_log_setup ("test-datacache-quota",
 #if VERBOSE
                     "DEBUG",
@@ -145,9 +143,28 @@ main (int argc, char *argv[])
                     "WARNING",
 #endif
                     NULL);
                     "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 */
 }
 
 /* end of test_datacache_quota.c */