/** * @file test/xmalloctest.c * @brief testcase for util/xmalloc.c */ #include "gnunet_util.h" #include "platform.h" static int check() { #define MAX_TESTVAL 1024 char * ptrs[MAX_TESTVAL]; int i; int j; int k; /* MALLOC/FREE test */ k = 352; /* random start value */ for (i=1;i=1;i--) { for (j=i-1;j>=0;j--) if (ptrs[i][j] != (char) --k) return 1; FREE(ptrs[i]); } /* STRNDUP tests */ FREE(STRNDUP("foo", 0)); ptrs[0] = STRNDUP("foo", 42); if (0 != strcmp(ptrs[0], "foo")) return 1; FREE(ptrs[0]); ptrs[0] = STRNDUP("foo", 2); if (0 != strcmp(ptrs[0], "fo")) return 2; FREE(ptrs[0]); /* FREENONNULL test */ FREENONNULL(NULL); FREENONNULL(MALLOC(4)); /* STRDUP tests */ ptrs[0] = STRDUP("bar"); if (0 != strcmp(ptrs[0], "bar")) return 3; FREE(ptrs[0]); /* GROW tests */ ptrs[0] = NULL; i=0; GROW(ptrs[0], i, 42); if (i != 42) return 4; GROW(ptrs[0], i, 22); if (i != 22) return 5; for (j=0;j<22;j++) ptrs[0][j] = j; GROW(ptrs[0], i, 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; GROW(ptrs[0], i, 0); if (i != 0) return 8; if (ptrs[0] != NULL) return 9; return 0; } void initStatistics(); void doneStatistics(); int main(int argc, char * argv[]){ int ret; initStatistics(); ret = check(); doneStatistics(); if (ret != 0) fprintf(stderr, "ERROR %d.\n", ret); return ret; } /* end of xmalloctest.c */