summaryrefslogtreecommitdiff
path: root/test/malloc
diff options
context:
space:
mode:
Diffstat (limited to 'test/malloc')
-rw-r--r--test/malloc/Makefile8
-rw-r--r--test/malloc/Makefile.in16
-rw-r--r--test/malloc/malloc-standard-alignment.c42
-rw-r--r--test/malloc/malloc.c81
-rw-r--r--test/malloc/mallocbug.c67
-rw-r--r--test/malloc/realloc-can-shrink.c17
-rw-r--r--test/malloc/realloc0.c13
-rw-r--r--test/malloc/testmalloc.c101
-rw-r--r--test/malloc/time_malloc.c62
-rw-r--r--test/malloc/tst-asprintf.c27
-rw-r--r--test/malloc/tst-calloc.c127
-rw-r--r--test/malloc/tst-malloc.c72
-rw-r--r--test/malloc/tst-mallocfork.c51
-rw-r--r--test/malloc/tst-mcheck.c95
-rw-r--r--test/malloc/tst-obstack.c104
-rw-r--r--test/malloc/tst-valloc.c23
16 files changed, 0 insertions, 906 deletions
diff --git a/test/malloc/Makefile b/test/malloc/Makefile
deleted file mode 100644
index 97c424be6..000000000
--- a/test/malloc/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-# uClibc malloc tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-top_builddir=../../
-top_srcdir=../../
-include ../Rules.mak
--include Makefile.in
-include ../Test.mak
diff --git a/test/malloc/Makefile.in b/test/malloc/Makefile.in
deleted file mode 100644
index 875a849e6..000000000
--- a/test/malloc/Makefile.in
+++ /dev/null
@@ -1,16 +0,0 @@
-# uClibc malloc tests
-# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-
-TESTS_DISABLED := time_malloc
-
-ifneq ($(UCLIBC_SUSV2_LEGACY),y)
-TESTS_DISABLED += tst-valloc
-endif
-
-ifneq ($(UCLIBC_HAS_OBSTACK),y)
-TESTS_DISABLED += tst-obstack
-endif
-
-ifneq ($(MALLOC_STANDARD),y)
-TESTS_DISABLED += tst-asprintf
-endif
diff --git a/test/malloc/malloc-standard-alignment.c b/test/malloc/malloc-standard-alignment.c
deleted file mode 100644
index 71e5023ae..000000000
--- a/test/malloc/malloc-standard-alignment.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* exercise a bug found in malloc-standard when alignment
- * values are out of whack and cause a small overflow into
- * actual user data.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-
-#define ok(p) ((void*)p > (void*)0x1000)
-#define x \
- do { \
- printf("%i: phead = %p, phead->link @ %p = %p %s\n", \
- __LINE__, phead, \
- ok(phead) ? &phead->link : 0, \
- ok(phead) ? phead->link : 0, \
- ok(phead) ? phead->link == 0 ? "" : "!!!!!!!!!!!" : ""); \
- if (phead->link != NULL) exit(1); \
- } while (0);
-
-struct llist_s {
- void *data;
- struct llist_s *link;
-} *phead;
-
-int main(int argc, char *argv[])
-{
- char *line, *reg;
-
- setbuf(stdout, NULL);
- setbuf(stderr, NULL);
-
- phead = malloc(sizeof(*phead));
- phead->link = NULL;
-
-x line = malloc(80);
-x line = realloc(line, 2);
-x reg = malloc(32);
-x free(line);
-
-x return 0;
-}
diff --git a/test/malloc/malloc.c b/test/malloc/malloc.c
deleted file mode 100644
index ca7c5f927..000000000
--- a/test/malloc/malloc.c
+++ /dev/null
@@ -1,81 +0,0 @@
-
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-#define N_PTRS 1000
-#define N_ALLOCS 10000
-#define MAX_SIZE 0x10000
-
-#define random_size() (random()%MAX_SIZE)
-#define random_ptr() (random()%N_PTRS)
-
-int test1(void);
-int test2(void);
-
-int main(int argc, char *argv[])
-{
- return test1() + test2();
-}
-
-int test1(void)
-{
- void **ptrs;
- int i,j;
- int size;
- int ret = 0;
-
- srandom(0x19730929);
-
- ptrs = malloc(N_PTRS*sizeof(void *));
-
- for(i=0; i<N_PTRS; i++){
- if ((ptrs[i] = malloc(random_size())) == NULL) {
- printf("malloc random failed! %i\n", i);
- ++ret;
- }
- }
- for(i=0; i<N_ALLOCS; i++){
- j = random_ptr();
- free(ptrs[j]);
-
- size = random_size();
- ptrs[j] = malloc(size);
- if (!ptrs[j]) {
- printf("malloc failed! %d\n", i);
- ++ret;
- }
- memset(ptrs[j],0,size);
- }
- for(i=0; i<N_PTRS; i++){
- free(ptrs[i]);
- }
-
- return ret;
-}
-
-int test2(void)
-{
- void *ptr = NULL;
- int ret = 0;
-
- ptr = realloc(ptr,100);
- if (!ptr) {
- printf("couldn't realloc() a NULL pointer\n");
- ++ret;
- } else {
- free(ptr);
- }
-
- ptr = malloc(100);
- ptr = realloc(ptr, 0);
- if (ptr) {
- printf("realloc(,0) failed\n");
- ++ret;
- free(ptr);
- }
-
- return ret;
-}
-
diff --git a/test/malloc/mallocbug.c b/test/malloc/mallocbug.c
deleted file mode 100644
index 84a638795..000000000
--- a/test/malloc/mallocbug.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Reproduce a GNU malloc bug. */
-#include <malloc.h>
-#include <stdio.h>
-#include <string.h>
-
-#define size_t unsigned int
-
-int
-main (int argc, char *argv[])
-{
- char *dummy0;
- char *dummy1;
- char *fill_info_table1;
- char *over_top;
- size_t over_top_size = 0x3000;
- char *over_top_dup;
- size_t over_top_dup_size = 0x7000;
- char *x;
- size_t i;
-
- /* Here's what memory is supposed to look like (hex):
- size contents
- 3000 original_info_table, later fill_info_table1
- 3fa000 dummy0
- 3fa000 dummy1
- 6000 info_table_2
- 3000 over_top
-
- */
- /* mem: original_info_table */
- dummy0 = malloc (0x3fa000);
- /* mem: original_info_table, dummy0 */
- dummy1 = malloc (0x3fa000);
- /* mem: free, dummy0, dummy1, info_table_2 */
- fill_info_table1 = malloc (0x3000);
- /* mem: fill_info_table1, dummy0, dummy1, info_table_2 */
-
- x = malloc (0x1000);
- free (x);
- /* mem: fill_info_table1, dummy0, dummy1, info_table_2, freexx */
-
- /* This is what loses; info_table_2 and freexx get combined unbeknownst
- to mmalloc, and mmalloc puts over_top in a section of memory which
- is on the free list as part of another block (where info_table_2 had
- been). */
- over_top = malloc (over_top_size);
- over_top_dup = malloc (over_top_dup_size);
- memset (over_top, 0, over_top_size);
- memset (over_top_dup, 1, over_top_dup_size);
-
- for (i = 0; i < over_top_size; ++i)
- if (over_top[i] != 0)
- {
- printf ("FAIL: malloc expands info table\n");
- return 0;
- }
-
- for (i = 0; i < over_top_dup_size; ++i)
- if (over_top_dup[i] != 1)
- {
- printf ("FAIL: malloc expands info table\n");
- return 0;
- }
-
- printf ("PASS: malloc expands info table\n");
- return 0;
-}
diff --git a/test/malloc/realloc-can-shrink.c b/test/malloc/realloc-can-shrink.c
deleted file mode 100644
index 33249db42..000000000
--- a/test/malloc/realloc-can-shrink.c
+++ /dev/null
@@ -1,17 +0,0 @@
-/* make sure that realloc() can properly shrink buffers */
-
-#include <stdlib.h>
-
-#define LARGE_BUFFER (1 << 20) /* idea is to span a lot of pages */
-
-int main(int argc, char *argv[])
-{
- int count = 20;
- char *ptr = NULL;
- while (count--) {
- ptr = realloc(ptr, LARGE_BUFFER);
- ptr = realloc(ptr, 1);
- }
- free(ptr);
- return 0;
-}
diff --git a/test/malloc/realloc0.c b/test/malloc/realloc0.c
deleted file mode 100644
index 62ae39d25..000000000
--- a/test/malloc/realloc0.c
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <stdlib.h>
-#include <stdio.h>
-
-int main(int argc, char **argv)
-{
- void *ptr = NULL;
- ptr = realloc(ptr, 0);
- printf("realloc(NULL, 0) -- pointer = %p\n", ptr);
-
- ptr = malloc(0);
- printf("malloc(0) -- pointer = %p\n", ptr);
- return 0;
-}
diff --git a/test/malloc/testmalloc.c b/test/malloc/testmalloc.c
deleted file mode 100644
index 42707d231..000000000
--- a/test/malloc/testmalloc.c
+++ /dev/null
@@ -1,101 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-struct list {
- struct list *next;
-};
-
-int main(void)
-{
- int z=999;
- int *y=&z;
- int *x=NULL;
- struct list *save;
- struct list *lp;
- int i;
-
-
- printf("pointer to x is %p\n", x);
- printf("pointer to y is %p\n", y);
- x=malloc(sizeof(int)*2000);
- printf("pointer to x is %p\n", x);
- y=malloc(sizeof(int)*100);
- printf("pointer to y is %p\n", y);
- free(x);
- free(y);
- printf("about to free(0)\n");
- free(0);
-
- x=malloc(13);
- printf("x = %p\n", x);
- memcpy(x, "Small string", 13);
- printf("0x%p test string1: %s\n", x, (char *)x);
- y = realloc(x, 36);
- printf("0x%p test string1: %s\n", y, (char *)y);
- memcpy(y, "********** Larger string **********", 36);
- printf("0x%p test string2: %s\n", y, (char *)y);
- free(y);
-
-
- printf("Allocate 100 nodes 500 bytes each\n");
- save = 0;
- for (i=0; i<100; i++) {
- lp = malloc(500);
- if (lp == 0) {
- printf("loop 1: malloc returned 0\n");
- goto Failed;
- }
- lp->next = save;
- save = lp;
- }
-
- printf("freeing 100 nodes\n");
- while (save) {
- lp = save;
- save = save->next;
- free(lp);
- }
-
- printf("try realloc 100 times \n");
- lp = 0;
- for (i=1; i<=100; i++) {
- lp = realloc(lp, i*200);
- if (lp == 0) {
- printf("loop 3: realloc returned 0\n");
- goto Failed;
- }
- }
- {
- void *unused_ret = realloc(lp, 0);
- (void) unused_ret;
- }
-
- printf("Allocate another 100 nodes 600 bytes each\n");
- save = 0;
- for (i=0; i<100; i++) {
- lp = malloc(600);
- if (lp == 0) {
- printf("loop 2: malloc returned 0\n");
- goto Failed;
- }
- lp->next = save;
- save = lp;
- }
-
- printf("freeing 100 nodes\n");
- while (save) {
- lp = save;
- save = save->next;
- free(lp);
- }
-
-
- printf("alloc test PASSED\n");
- exit(0);
-
-Failed:
- printf("!!!!!!!!!!!! alloc test FAILED. !!!!!!!!!!!!!!!\n");
- exit(1);
-}
diff --git a/test/malloc/time_malloc.c b/test/malloc/time_malloc.c
deleted file mode 100644
index 0b626654f..000000000
--- a/test/malloc/time_malloc.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include <stdlib.h>
-#define REPS (100000)
-int sizes[] = {
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50,
- 100000, 1024, 42000, 350, 100, 80, 3 ,3,3,3,3,3,3,3,3,3,3,3,3,50
-};
-#define NUM (sizeof sizes / sizeof sizes[0])
-int main ()
-{
- int i, j;
- void *allocs[NUM];
- for (i = 0; i < REPS; i++) {
- for (j = 0; j < NUM; j++) {
- allocs[j] = malloc(sizes[j]);
- }
- for (j = 0; j < NUM; j++) {
- free(allocs[j]);
- }
- }
- return 0;
-}
-
diff --git a/test/malloc/tst-asprintf.c b/test/malloc/tst-asprintf.c
deleted file mode 100644
index d4c3f7676..000000000
--- a/test/malloc/tst-asprintf.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <malloc.h>
-
-static void my_stats(void)
-{
- malloc_stats();
- fprintf(stderr, "\n");
-}
-
-int main(int argc, char *argv[])
-{
- char *a, *b;
-
- my_stats();
- asprintf(&b, "asdsadasd %ssdf\n", "AAAA");
- my_stats();
- asprintf(&a, "asdsadasd %ssdf\n", "AAAA");
- my_stats();
- free(a);
- free(b);
- my_stats();
-
- return 0;
-}
diff --git a/test/malloc/tst-calloc.c b/test/malloc/tst-calloc.c
deleted file mode 100644
index b7b6d2bd2..000000000
--- a/test/malloc/tst-calloc.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Ulrich Drepper <drepper@redhat.com>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <limits.h>
-#include <malloc.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-static int errors = 0;
-
-/* Number of samples per size. */
-#define N 50000
-
-
-static void
-fixed_test (int size)
-{
- char *ptrs[N];
- int i;
-
- for (i = 0; i < N; ++i)
- {
- int j;
-
- ptrs[i] = (char *) calloc (1, size);
-
- if (ptrs[i] == NULL)
- break;
-
- for (j = 0; j < size; ++j)
- {
- if (ptrs[i][j] != '\0') {
- ++errors;
- printf("byte not cleared (size %d, element %d, byte %d)",
- size, i, j);
- }
- ptrs[i][j] = '\xff';
- }
- }
-
- while (i-- > 0)
- free (ptrs[i]);
-}
-
-
-static void
-random_test (void)
-{
- char *ptrs[N];
- int i;
-
- for (i = 0; i < N; ++i)
- {
- int j;
- int n = 1 + random () % 10;
- int elem = 1 + random () % 100;
- int size = n * elem;
-
- ptrs[i] = (char *) calloc (n, elem);
-
- if (ptrs[i] == NULL)
- break;
-
- for (j = 0; j < size; ++j)
- {
- if (ptrs[i][j] != '\0') {
- ++errors;
- printf("byte not cleared (size %d, element %d, byte %d)",
- size, i, j);
- }
- ptrs[i][j] = '\xff';
- }
- }
-
- while (i-- > 0)
- free (ptrs[i]);
-}
-
-
-static void
-null_test (void)
-{
- /* If the size is 0 the result is implementation defined. Just make
- sure the program doesn't crash. */
- calloc (0, 0);
- calloc (0, UINT_MAX);
- calloc (UINT_MAX, 0);
- calloc (0, ~((size_t) 0));
- calloc (~((size_t) 0), 0);
-}
-
-
-int
-main (void)
-{
- /* We are allocating blocks with `calloc' and check whether every
- block is completely cleared. We first try this for some fixed
- times and then with random size. */
- fixed_test (15);
- fixed_test (5);
- fixed_test (17);
- fixed_test (6);
- fixed_test (31);
- fixed_test (96);
-
- random_test ();
-
- null_test ();
-
- return errors != 0;
-}
diff --git a/test/malloc/tst-malloc.c b/test/malloc/tst-malloc.c
deleted file mode 100644
index 2d3bcce17..000000000
--- a/test/malloc/tst-malloc.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1999.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <malloc.h>
-#include <stdio.h>
-#include <features.h>
-
-static int errors = 0;
-
-static void
-merror (const char *msg)
-{
- ++errors;
- printf ("Error: %s\n", msg);
-}
-
-int
-main (void)
-{
- void *p;
- int save;
-
- errno = 0;
-
- p = malloc (-1);
- save = errno;
-
- if (p != NULL)
- merror ("malloc (-1) succeeded.");
-
- if (p == NULL && save != ENOMEM)
- merror ("errno is not set correctly");
-
- p = malloc (10);
- if (p == NULL)
- merror ("malloc (10) failed.");
-
- /* realloc (p, 0) == free (p). */
- p = realloc (p, 0);
- if (p != NULL)
- merror ("realloc (p, 0) failed.");
-
- p = malloc (0);
-#if !defined(__UCLIBC__) || defined(__MALLOC_GLIBC_COMPAT__)
- if (p == NULL)
-#else
- if (p != NULL)
-#endif
- merror ("malloc (0) failed.");
-
- p = realloc (p, 0);
- if (p != NULL)
- merror ("realloc (p, 0) failed.");
-
- return errors != 0;
-}
diff --git a/test/malloc/tst-mallocfork.c b/test/malloc/tst-mallocfork.c
deleted file mode 100644
index 5bb1d7628..000000000
--- a/test/malloc/tst-mallocfork.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Derived from the test case in
- http://sourceware.org/bugzilla/show_bug.cgi?id=838. */
-#include <assert.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-
-static void
-sig_handler (int signum)
-{
- pid_t child = vfork ();
- if (child == 0)
- exit (0);
- TEMP_FAILURE_RETRY (waitpid (child, NULL, 0));
-}
-
-static int
-do_test (void)
-{
- pid_t parent = getpid ();
-
- struct sigaction action = { .sa_handler = sig_handler };
- sigemptyset (&action.sa_mask);
-
- malloc (sizeof (int));
-
- if (sigaction (SIGALRM, &action, NULL) != 0)
- {
- puts ("sigaction failed");
- return 1;
- }
-
- /* Create a child that sends the signal to be caught. */
- pid_t child = vfork ();
- if (child == 0)
- {
- if (kill (parent, SIGALRM) == -1)
- perror ("kill");
- exit (0);
- }
-
- TEMP_FAILURE_RETRY (waitpid (child, NULL, 0));
-
- return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/test/malloc/tst-mcheck.c b/test/malloc/tst-mcheck.c
deleted file mode 100644
index 9297d7994..000000000
--- a/test/malloc/tst-mcheck.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>, 2005.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <features.h>
-
-static int errors = 0;
-
-static void
-merror (const char *msg)
-{
- ++errors;
- printf ("Error: %s\n", msg);
-}
-
-int
-main (void)
-{
- void *p, *q;
-
- errno = 0;
-
- p = malloc (-1);
-
- if (p != NULL)
- merror ("malloc (-1) succeeded.");
- else if (errno != ENOMEM)
- merror ("errno is not set correctly.");
-
- p = malloc (10);
- if (p == NULL)
- merror ("malloc (10) failed.");
-
- p = realloc (p, 0);
- if (p != NULL)
- merror ("realloc (p, 0) failed.");
-
- p = malloc (0);
-#if !defined(__UCLIBC__) || defined(__MALLOC_GLIBC_COMPAT__)
- if (p == NULL)
-#else
- if (p != NULL)
-#endif
- merror ("malloc (0) failed.");
-
- p = realloc (p, 0);
- if (p != NULL)
- merror ("realloc (p, 0) failed.");
-
- q = malloc (256);
- if (q == NULL)
- merror ("malloc (256) failed.");
-
- p = malloc (512);
- if (p == NULL)
- merror ("malloc (512) failed.");
-
- if (realloc (p, -256) != NULL)
- merror ("realloc (p, -256) succeeded.");
- else if (errno != ENOMEM)
- merror ("errno is not set correctly.");
-
- free (p);
-
- p = malloc (512);
- if (p == NULL)
- merror ("malloc (512) failed.");
-
- if (realloc (p, -1) != NULL)
- merror ("realloc (p, -1) succeeded.");
- else if (errno != ENOMEM)
- merror ("errno is not set correctly.");
-
- free (p);
- free (q);
-
- return errors != 0;
-}
diff --git a/test/malloc/tst-obstack.c b/test/malloc/tst-obstack.c
deleted file mode 100644
index 1841946c3..000000000
--- a/test/malloc/tst-obstack.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Test case by Alexandre Duret-Lutz <duret_g@epita.fr>.
- * test_obstack_printf() added by Anthony G. Basile <blueness.gentoo.org>.
- */
-
-#include <features.h>
-#include <obstack.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define obstack_chunk_alloc verbose_malloc
-#define obstack_chunk_free verbose_free
-#define ALIGN_BOUNDARY 64
-#define ALIGN_MASK (ALIGN_BOUNDARY - 1)
-#define OBJECT_SIZE 1000
-
-static void *
-verbose_malloc (size_t size)
-{
- void *buf = malloc (size);
- printf ("malloc (%zu) => %p\n", size, buf);
- return buf;
-}
-
-static void
-verbose_free (void *buf)
-{
- free (buf);
- printf ("free (%p)\n", buf);
-}
-
-int
-test_obstack_alloc (void)
-{
- int result = 0;
- int align = 2;
-
- while (align <= 64)
- {
- struct obstack obs;
- int i;
- int align_mask = align - 1;
-
- printf ("\n Alignment mask: %d\n", align_mask);
-
- obstack_init (&obs);
- obstack_alignment_mask (&obs) = align_mask;
- /* finish an empty object to take alignment into account */
- obstack_finish (&obs);
-
- /* let's allocate some objects and print their addresses */
- for (i = 15; i > 0; --i)
- {
- void *obj = obstack_alloc (&obs, OBJECT_SIZE);
-
- printf ("obstack_alloc (%u) => %p \t%s\n", OBJECT_SIZE, obj,
- ((uintptr_t) obj & align_mask) ? "(not aligned)" : "");
- result |= ((uintptr_t) obj & align_mask) != 0;
- }
-
- /* clean up */
- obstack_free (&obs, 0);
-
- align <<= 1;
- }
-
- return result;
-}
-
-int
-test_obstack_printf (void)
-{
- int result = 0;
- int n;
- char *s;
- struct obstack ob;
-
- obstack_init (&ob);
-
- n = obstack_printf (&ob, "%s%d%c", "testing 1 ... 2 ... ", 3, '\n');
- result |= (n != 22);
- printf("obstack_printf => %d\n", n);
-
- n = obstack_printf (&ob, "%s%d%c", "testing 3 ... 2 ... ", 1, '\0');
- result |= (n != 22);
- printf("obstack_printf => %d\n", n);
-
- s = obstack_finish (&ob);
- printf("obstack_printf => %s\n", s);
- obstack_free (&ob, NULL);
-
- return result;
-}
-
-int
-main (void)
-{
- int result = 0;
-
- result |= test_obstack_alloc();
- result |= test_obstack_printf();
-
- return result;
-}
diff --git a/test/malloc/tst-valloc.c b/test/malloc/tst-valloc.c
deleted file mode 100644
index 643a0dda4..000000000
--- a/test/malloc/tst-valloc.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Test case by Stephen Tweedie <sct@redhat.com>. */
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-int
-main (void)
-{
- char *p;
- int pagesize = getpagesize ();
- int i;
-
- p = valloc (pagesize);
- i = (long int) p;
-
- if ((i & (pagesize-1)) != 0)
- {
- fprintf (stderr, "Alignment problem: valloc returns %p\n", p);
- exit (1);
- }
-
- return 0;
-}