tolerate additional IPv4 address now available for gnunet.org
[oweals/gnunet.git] / src / util / test_configuration.c
index 8bad5b5d4b8e43b2d704c8444471d62b9d31594b..96f13eefe37569ef876625948472f81550f439df 100644 (file)
@@ -1,21 +1,21 @@
 /*
      This file is part of GNUnet.
-     (C) 2003, 2004, 2005, 2006, 2007 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2003, 2004, 2005, 2006, 2007 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 3, 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.
+     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 <http://www.gnu.org/licenses/>.
 
-     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.
+     SPDX-License-Identifier: AGPL3.0-or-later
 */
 /**
  * @file util/test_configuration.c
  */
 
 #include "platform.h"
-#include "gnunet_common.h"
-#include "gnunet_configuration_lib.h"
-#include "gnunet_disk_lib.h"
+#include "gnunet_util_lib.h"
 
-#define DEBUG GNUNET_NO
 
 /* Test Configuration Diffs Options */
 enum
@@ -40,14 +37,12 @@ enum
   ADD_NEW_ENTRY,
   REMOVE_SECTION,
   REMOVE_ENTRY,
-  COMPARE
-#if DEBUG
-      , PRINT
-#endif
+  COMPARE,
+  PRINT
 };
 
 static struct GNUNET_CONFIGURATION_Handle *cfg;
-static struct GNUNET_CONFIGURATION_Handle *cfgDefault;
+static struct GNUNET_CONFIGURATION_Handle *cfg_default;
 
 struct DiffsCBData
 {
@@ -75,8 +70,8 @@ initDiffsCBData (struct DiffsCBData *cbData)
  * and comparing configuration
 */
 static void
-diffsCallBack (void *cls,
-               const char *section, const char *option, const char *value)
+diffsCallBack (void *cls, const char *section, const char *option,
+               const char *value)
 {
   struct DiffsCBData *cbData = cls;
   int cbOption = cbData->callBackOption;
@@ -90,15 +85,15 @@ diffsCallBack (void *cls,
     {
       GNUNET_CONFIGURATION_set_value_string (cbData->cfg, section, option,
                                              "new-value");
-      GNUNET_CONFIGURATION_set_value_string (cbData->cfgDiffs, section,
-                                             option, "new-value");
+      GNUNET_CONFIGURATION_set_value_string (cbData->cfgDiffs, section, option,
+                                             "new-value");
     }
     break;
   case EDIT_ALL:
     GNUNET_CONFIGURATION_set_value_string (cbData->cfg, section, option,
                                            "new-value");
-    GNUNET_CONFIGURATION_set_value_string (cbData->cfgDiffs, section,
-                                           option, "new-value");
+    GNUNET_CONFIGURATION_set_value_string (cbData->cfgDiffs, section, option,
+                                           "new-value");
     break;
   case ADD_NEW_ENTRY:
   {
@@ -107,8 +102,8 @@ diffsCallBack (void *cls,
     if (hit == 0)
     {
       hit = 1;
-      GNUNET_CONFIGURATION_set_value_string (cbData->cfg, section,
-                                             "new-key", "new-value");
+      GNUNET_CONFIGURATION_set_value_string (cbData->cfg, section, "new-key",
+                                             "new-value");
       GNUNET_CONFIGURATION_set_value_string (cbData->cfgDiffs, section,
                                              "new-key", "new-value");
     }
@@ -133,7 +128,7 @@ diffsCallBack (void *cls,
     GNUNET_free_non_null (diffValue);
     break;
   }
-#if DEBUG
+#if 0
   case PRINT:
     if (NULL == cbData->section)
     {
@@ -183,8 +178,8 @@ editConfiguration (struct GNUNET_CONFIGURATION_Handle *cfg, int option)
       GNUNET_asprintf (&key, "key%d", i);
       GNUNET_CONFIGURATION_set_value_string (cfg, "new-section", key,
                                              "new-value");
-      GNUNET_CONFIGURATION_set_value_string (diffsCB.cfgDiffs,
-                                             "new-section", key, "new-value");
+      GNUNET_CONFIGURATION_set_value_string (diffsCB.cfgDiffs, "new-section",
+                                             key, "new-value");
       GNUNET_free (key);
     }
     break;
@@ -204,7 +199,7 @@ editConfiguration (struct GNUNET_CONFIGURATION_Handle *cfg, int option)
  * Checking configuration diffs
  */
 static int
-checkDiffs (struct GNUNET_CONFIGURATION_Handle *cfgDefault, int option)
+checkDiffs (struct GNUNET_CONFIGURATION_Handle *cfg_default, int option)
 {
   struct GNUNET_CONFIGURATION_Handle *cfg;
   struct GNUNET_CONFIGURATION_Handle *cfgDiffs;
@@ -228,30 +223,31 @@ checkDiffs (struct GNUNET_CONFIGURATION_Handle *cfgDefault, int option)
     GNUNET_CONFIGURATION_destroy (cfgDiffs);
     return 1;
   }
-  GNUNET_CONFIGURATION_write_diffs (cfgDefault, cfg, diffsFileName);
+  GNUNET_CONFIGURATION_write_diffs (cfg_default, cfg, diffsFileName);
   GNUNET_CONFIGURATION_destroy (cfg);
 
   /* Compare the dumped configuration with modifications done */
   cfg = GNUNET_CONFIGURATION_create ();
   GNUNET_assert (GNUNET_OK == GNUNET_CONFIGURATION_parse (cfg, diffsFileName));
-  remove (diffsFileName);
+  if (0 != remove (diffsFileName))
+    GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_WARNING, "remove", diffsFileName);
   cbData.callBackOption = COMPARE;
   cbData.cfgDiffs = cfgDiffs;
   GNUNET_CONFIGURATION_iterate (cfg, diffsCallBack, &cbData);
   if (1 == (ret = cbData.status))
   {
-    fprintf (stderr,
+    FPRINTF (stderr, "%s",
              "Incorrect Configuration Diffs: Diffs may contain data not actually edited\n");
     goto housekeeping;
   }
   cbData.cfgDiffs = cfg;
   GNUNET_CONFIGURATION_iterate (cfgDiffs, diffsCallBack, &cbData);
   if ((ret = cbData.status) == 1)
-    fprintf (stderr,
+    FPRINTF (stderr, "%s",
              "Incorrect Configuration Diffs: Data may be missing in diffs\n");
 
 housekeeping:
-#if DEBUG
+#if 0
   cbData.section = NULL;
   cbData.callBackOption = PRINT;
   printf ("\nExpected Diffs:\n");
@@ -277,13 +273,13 @@ testConfig ()
     return 1;
   if (0 != strcmp ("b", c))
   {
-    fprintf (stderr, "Got `%s'\n", c);
+    FPRINTF (stderr, "Got `%s'\n", c);
     GNUNET_free (c);
     return 2;
   }
   GNUNET_free (c);
-  if (GNUNET_OK != GNUNET_CONFIGURATION_get_value_number (cfg,
-                                                          "test", "five", &l))
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_number (cfg, "test", "five", &l))
   {
     GNUNET_break (0);
     return 3;
@@ -333,6 +329,17 @@ testConfig ()
   }
   GNUNET_free (c);
 
+  if (GNUNET_OK !=
+      GNUNET_CONFIGURATION_get_value_size (cfg, "last", "size", &l))
+  {
+    GNUNET_break (0);
+    return 10;
+  }
+  if (l != 512 * 1024)
+  {
+    GNUNET_break (0);
+    return 11;
+  }
   return 0;
 }
 
@@ -364,9 +371,9 @@ testConfigFilenames ()
   int idx;
 
   idx = 0;
-  if (3 != GNUNET_CONFIGURATION_iterate_value_filenames (cfg,
-                                                         "FILENAMES",
-                                                         "test", &check, &idx))
+  if (3 !=
+      GNUNET_CONFIGURATION_iterate_value_filenames (cfg, "FILENAMES", "test",
+                                                    &check, &idx))
   {
     GNUNET_break (0);
     return 8;
@@ -374,60 +381,54 @@ testConfigFilenames ()
   if (idx != 3)
     return 16;
   if (GNUNET_OK !=
-      GNUNET_CONFIGURATION_remove_value_filename (cfg,
-                                                  "FILENAMES",
-                                                  "test", "/File Name"))
+      GNUNET_CONFIGURATION_remove_value_filename (cfg, "FILENAMES", "test",
+                                                  "/File Name"))
   {
     GNUNET_break (0);
     return 24;
   }
 
   if (GNUNET_NO !=
-      GNUNET_CONFIGURATION_remove_value_filename (cfg,
-                                                  "FILENAMES",
-                                                  "test", "/File Name"))
+      GNUNET_CONFIGURATION_remove_value_filename (cfg, "FILENAMES", "test",
+                                                  "/File Name"))
   {
     GNUNET_break (0);
     return 32;
   }
   if (GNUNET_NO !=
-      GNUNET_CONFIGURATION_remove_value_filename (cfg,
-                                                  "FILENAMES", "test", "Stuff"))
+      GNUNET_CONFIGURATION_remove_value_filename (cfg, "FILENAMES", "test",
+                                                  "Stuff"))
   {
     GNUNET_break (0);
     return 40;
   }
 
   if (GNUNET_NO !=
-      GNUNET_CONFIGURATION_append_value_filename (cfg,
-                                                  "FILENAMES",
-                                                  "test", "/Hello"))
+      GNUNET_CONFIGURATION_append_value_filename (cfg, "FILENAMES", "test",
+                                                  "/Hello"))
   {
     GNUNET_break (0);
     return 48;
   }
   if (GNUNET_NO !=
-      GNUNET_CONFIGURATION_append_value_filename (cfg,
-                                                  "FILENAMES",
-                                                  "test", "/World"))
+      GNUNET_CONFIGURATION_append_value_filename (cfg, "FILENAMES", "test",
+                                                  "/World"))
   {
     GNUNET_break (0);
     return 56;
   }
 
   if (GNUNET_YES !=
-      GNUNET_CONFIGURATION_append_value_filename (cfg,
-                                                  "FILENAMES",
-                                                  "test", "/File 1"))
+      GNUNET_CONFIGURATION_append_value_filename (cfg, "FILENAMES", "test",
+                                                  "/File 1"))
   {
     GNUNET_break (0);
     return 64;
   }
 
   if (GNUNET_YES !=
-      GNUNET_CONFIGURATION_append_value_filename (cfg,
-                                                  "FILENAMES",
-                                                  "test", "/File 2"))
+      GNUNET_CONFIGURATION_append_value_filename (cfg, "FILENAMES", "test",
+                                                  "/File 2"))
   {
     GNUNET_break (0);
     return 72;
@@ -437,9 +438,9 @@ testConfigFilenames ()
   want[1] = "/World";
   want[2] = "/File 1";
   want[3] = "/File 2";
-  if (4 != GNUNET_CONFIGURATION_iterate_value_filenames (cfg,
-                                                         "FILENAMES",
-                                                         "test", &check, &idx))
+  if (4 !=
+      GNUNET_CONFIGURATION_iterate_value_filenames (cfg, "FILENAMES", "test",
+                                                    &check, &idx))
   {
     GNUNET_break (0);
     return 80;
@@ -465,7 +466,7 @@ main (int argc, char *argv[])
   if (GNUNET_OK !=
       GNUNET_CONFIGURATION_parse (cfg, "test_configuration_data.conf"))
   {
-    fprintf (stderr, "Failed to parse configuration file\n");
+    FPRINTF (stderr, "%s",  "Failed to parse configuration file\n");
     GNUNET_CONFIGURATION_destroy (cfg);
     return 1;
   }
@@ -479,7 +480,7 @@ main (int argc, char *argv[])
 
   if (GNUNET_OK != GNUNET_CONFIGURATION_write (cfg, "/tmp/gnunet-test.conf"))
   {
-    fprintf (stderr, "Failed to write configuration file\n");
+    FPRINTF (stderr, "%s",  "Failed to write configuration file\n");
     GNUNET_CONFIGURATION_destroy (cfg);
     return 1;
   }
@@ -513,35 +514,35 @@ main (int argc, char *argv[])
   GNUNET_CONFIGURATION_destroy (cfg);
 
   /* Testing configuration diffs */
-  cfgDefault = GNUNET_CONFIGURATION_create ();
-  if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfgDefault, NULL))
+  cfg_default = GNUNET_CONFIGURATION_create ();
+  if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg_default, NULL))
   {
     GNUNET_break (0);
-    GNUNET_CONFIGURATION_destroy (cfgDefault);
+    GNUNET_CONFIGURATION_destroy (cfg_default);
     return 1;
   }
 
   /* Nothing changed in the new configuration */
-  failureCount += checkDiffs (cfgDefault, EDIT_NOTHING);
+  failureCount += checkDiffs (cfg_default, EDIT_NOTHING);
 
   /* Modify all entries of the last section */
-  failureCount += checkDiffs (cfgDefault, EDIT_SECTION);
+  failureCount += checkDiffs (cfg_default, EDIT_SECTION);
 
   /* Add a new section */
-  failureCount += checkDiffs (cfgDefault, ADD_NEW_SECTION);
+  failureCount += checkDiffs (cfg_default, ADD_NEW_SECTION);
 
   /* Add a new entry to the last section */
-  failureCount += checkDiffs (cfgDefault, ADD_NEW_ENTRY);
+  failureCount += checkDiffs (cfg_default, ADD_NEW_ENTRY);
 
   /* Modify all entries in the configuration */
-  failureCount += checkDiffs (cfgDefault, EDIT_ALL);
+  failureCount += checkDiffs (cfg_default, EDIT_ALL);
 
-  GNUNET_CONFIGURATION_destroy (cfgDefault);
+  GNUNET_CONFIGURATION_destroy (cfg_default);
 
 error:
   if (failureCount != 0)
   {
-    fprintf (stderr, "Test failed: %u\n", failureCount);
+    FPRINTF (stderr, "Test failed: %u\n", failureCount);
     return 1;
   }
   return 0;