Merge branch 'master' of ssh://gnunet.org/gnunet
[oweals/gnunet.git] / src / util / test_common_allocation.c
index ed01e8a6a450a2d1255f7dd1c63a20d5cb8099c5..4d1b6fe7d4dcb844599d166328f05690dfbd62a1 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2001, 2002, 2003, 2005, 2006 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2001, 2002, 2003, 2005, 2006, 2017 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
@@ -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.
 */
 
 /**
  * @brief testcase for common_allocation.c
  */
 #include "platform.h"
-#include "gnunet_common.h"
+#include "gnunet_util_lib.h"
+
 
 static int
 check ()
 {
 #define MAX_TESTVAL 1024
   char *ptrs[MAX_TESTVAL];
+  unsigned int **a2;
+  char ***a3;
   int i;
   int j;
   int k;
@@ -38,19 +41,19 @@ check ()
   /* GNUNET_malloc/GNUNET_free test */
   k = 352;                      /* random start value */
   for (i = 1; i < MAX_TESTVAL; i++)
-    {
-      ptrs[i] = GNUNET_malloc (i);
-      for (j = 0; j < i; j++)
-        ptrs[i][j] = k++;
-    }
+  {
+    ptrs[i] = GNUNET_malloc (i);
+    for (j = 0; j < i; j++)
+      ptrs[i][j] = k++;
+  }
 
   for (i = MAX_TESTVAL - 1; i >= 1; i--)
-    {
-      for (j = i - 1; j >= 0; j--)
-        if (ptrs[i][j] != (char) --k)
-          return 1;
-      GNUNET_free (ptrs[i]);
-    }
+  {
+    for (j = i - 1; j >= 0; j--)
+      if (ptrs[i][j] != (char) --k)
+        return 1;
+    GNUNET_free (ptrs[i]);
+  }
 
   /* GNUNET_free_non_null test */
   GNUNET_free_non_null (NULL);
@@ -93,19 +96,57 @@ check ()
   if (ptrs[0] != NULL)
     return 9;
 
-
+  /* GNUNET_new_array_2d tests */
+  a2 = GNUNET_new_array_2d (17, 22, unsigned int);
+  for (i = 0; i < 17; i++)
+  {
+    for (j = 0; j < 22; j++)
+    {
+      if (0 != a2[i][j])
+      {
+        GNUNET_free (a2);
+        return 10;
+      }
+      a2[i][j] = i * 100 + j;
+    }
+  }
+  GNUNET_free (a2);
+
+  /* GNUNET_new_array_3d tests */
+  a3 = GNUNET_new_array_3d (2, 3, 4, char);
+  for (i = 0; i < 2; i++)
+  {
+    for (j = 0; j < 3; j++)
+    {
+      for (k = 0; k < 4; k++)
+      {
+        if (0 != a3[i][j][k])
+        {
+          GNUNET_free (a3);
+          return 11;
+        }
+        a3[i][j][k] = i * 100 + j * 10 + k;
+      }
+    }
+  }
+  GNUNET_free (a3);
   return 0;
 }
 
+
 int
 main (int argc, char *argv[])
 {
   int ret;
 
-  GNUNET_log_setup ("test-common-allocation", "WARNING", NULL);
+  GNUNET_log_setup ("test-common-allocation",
+                    "WARNING",
+                    NULL);
   ret = check ();
   if (ret != 0)
-    fprintf (stderr, "ERROR %d.\n", ret);
+    FPRINTF (stderr,
+             "ERROR %d.\n",
+             ret);
   return ret;
 }