X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Futil%2Ftest_common_allocation.c;h=e67360044a3c0a4c38ca78191d0c9bb8d9b423cb;hb=0a715a462813496e7a1a03fd072a34eeb3c9e412;hp=aa4809f58057cf75298886786035bbac833e08eb;hpb=bb5fe91d23b0938baa3c4f0e92a83df659df216a;p=oweals%2Fgnunet.git diff --git a/src/util/test_common_allocation.c b/src/util/test_common_allocation.c index aa4809f58..e67360044 100644 --- a/src/util/test_common_allocation.c +++ b/src/util/test_common_allocation.c @@ -1,22 +1,22 @@ /* This file is part of GNUnet. - Copyright (C) 2001, 2002, 2003, 2005, 2006 GNUnet e.V. + 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 - 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 General Public License - along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + + SPDX-License-Identifier: AGPL3.0-or-later + */ /** * @file util/test_common_allocation.c @@ -25,11 +25,14 @@ #include "platform.h" #include "gnunet_util_lib.h" + static int -check () +check() { #define MAX_TESTVAL 1024 char *ptrs[MAX_TESTVAL]; + unsigned int **a2; + char ***a3; int i; int j; int k; @@ -38,74 +41,112 @@ 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); - GNUNET_free_non_null (GNUNET_malloc (4)); + GNUNET_free_non_null(NULL); + GNUNET_free_non_null(GNUNET_malloc(4)); /* GNUNET_strdup tests */ - ptrs[0] = GNUNET_strdup ("bar"); - if (0 != strcmp (ptrs[0], "bar")) + ptrs[0] = GNUNET_strdup("bar"); + if (0 != strcmp(ptrs[0], "bar")) return 3; /* now realloc */ - ptrs[0] = GNUNET_realloc (ptrs[0], 12); - strcpy (ptrs[0], "Hello World"); + ptrs[0] = GNUNET_realloc(ptrs[0], 12); + strcpy(ptrs[0], "Hello World"); - GNUNET_free (ptrs[0]); - GNUNET_asprintf (&ptrs[0], "%s %s", "Hello", "World"); - GNUNET_assert (strlen (ptrs[0]) == 11); - GNUNET_free (ptrs[0]); + GNUNET_free(ptrs[0]); + GNUNET_asprintf(&ptrs[0], "%s %s", "Hello", "World"); + GNUNET_assert(strlen(ptrs[0]) == 11); + GNUNET_free(ptrs[0]); /* GNUNET_array_grow tests */ ptrs[0] = NULL; ui = 0; - GNUNET_array_grow (ptrs[0], ui, 42); + GNUNET_array_grow(ptrs[0], ui, 42); if (ui != 42) return 4; - GNUNET_array_grow (ptrs[0], ui, 22); + GNUNET_array_grow(ptrs[0], ui, 22); if (ui != 22) return 5; for (j = 0; j < 22; j++) ptrs[0][j] = j; - GNUNET_array_grow (ptrs[0], ui, 32); + GNUNET_array_grow(ptrs[0], ui, 32); for (j = 0; j < 22; j++) if (ptrs[0][j] != j) return 6; for (j = 22; j < 32; j++) if (ptrs[0][j] != 0) return 7; - GNUNET_array_grow (ptrs[0], ui, 0); + GNUNET_array_grow(ptrs[0], ui, 0); if (i != 0) return 8; 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[]) +main(int argc, char *argv[]) { int ret; - GNUNET_log_setup ("test-common-allocation", "WARNING", NULL); - ret = check (); + 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; }