diff options
Diffstat (limited to 'test/malloc')
| -rw-r--r-- | test/malloc/Makefile | 132 | ||||
| -rw-r--r-- | test/malloc/malloc.c | 51 | ||||
| -rw-r--r-- | test/malloc/realloc0.c | 16 |
3 files changed, 44 insertions, 155 deletions
diff --git a/test/malloc/Makefile b/test/malloc/Makefile index 714eade71..a05b3aae1 100644 --- a/test/malloc/Makefile +++ b/test/malloc/Makefile @@ -1,129 +1,7 @@ -# Makefile for uClibc -# -# Copyright (C) 2000,2001 Erik Andersen <andersen@uclibc.org> -# -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU Library General Public License as published by the Free -# Software Foundation; either version 2 of the License, or (at your option) any -# later version. -# -# This program 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 Library General Public License for more -# details. -# -# You should have received a copy of the GNU Library General Public License -# along with this program; if not, write to the Free Software Foundation, Inc., -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -TESTDIR=../ -include $(TESTDIR)/Rules.mak - - -TARGETS=malloc -TARGETS+=testmalloc testmalloc_glibc -TARGETS+=mallocbug mallocbug_glibc -TARGETS+=realloc0 realloc0_glibc -all: $(TARGETS) - -malloc: malloc.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak - -@ echo "-------" - -@ echo " " - -@ echo "Compiling vs uClibc: " - -@ echo " " - $(CC) $(CFLAGS) -c $< -o $@.o - $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) - $(STRIPTOOL) -x -R .note -R .comment $@ - -./$@ - -@ echo " " - -testmalloc_source: - -@ echo "-------" - -@ echo "testmalloc.c source: " - -@ echo " " - -@ cat testmalloc.c - -@ echo " " - -testmalloc: testmalloc.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak - -@ echo "-------" - -@ echo " " - -@ echo "Compiling vs uClibc: " - -@ echo " " - $(CC) $(CFLAGS) -c $< -o $@.o - $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) - $(STRIPTOOL) -x -R .note -R .comment $@ - -$(LDD) $@ - ls -l $@ - -./$@ - -@ echo " " - -testmalloc_glibc: testmalloc.c Makefile - -@ echo "-------" - -@ echo " " - -@ echo "Compiling vs GNU libc: " - -@ echo " " - $(HOSTCC) $(GLIBC_CFLAGS) -c $< -o $@.o - $(HOSTCC) $(GLIBC_LDFLAGS) $@.o -o $@ - $(STRIPTOOL) -x -R .note -R .comment $@ - -$(LDD) $@ - ls -l $@ - -./$@ - -@ echo " " - -mallocbug: mallocbug.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak - -@ echo "-------" - -@ echo " " - -@ echo "Compiling vs uClibc: " - -@ echo " " - $(CC) $(CFLAGS) -c $< -o $@.o - $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) - $(STRIPTOOL) -x -R .note -R .comment $@ - -$(LDD) $@ - ls -l $@ - -./$@ - -@ echo " " - -mallocbug_glibc: mallocbug.c Makefile - -@ echo "-------" - -@ echo " " - -@ echo "Compiling vs GNU libc: " - -@ echo " " - $(HOSTCC) $(GLIBC_CFLAGS) -c $< -o $@.o - $(HOSTCC) $(GLIBC_LDFLAGS) $@.o -o $@ - $(STRIPTOOL) -x -R .note -R .comment $@ - -$(LDD) $@ - ls -l $@ - -./$@ - -@ echo " " - -realloc0: realloc0.c Makefile $(TESTDIR)/Config $(TESTDIR)/Rules.mak - -@ echo "-------" - -@ echo " " - -@ echo "Compiling vs uClibc: " - -@ echo " " - $(CC) $(CFLAGS) -c $< -o $@.o - $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) - $(STRIPTOOL) -x -R .note -R .comment $@ - -$(LDD) $@ - ls -l $@ - -./$@ - -@ echo " " - -realloc0_glibc: realloc0.c Makefile - -@ echo "-------" - -@ echo " " - -@ echo "Compiling vs GNU libc: " - -@ echo " " - $(HOSTCC) $(GLIBC_CFLAGS) -c $< -o $@.o - $(HOSTCC) $(GLIBC_LDFLAGS) $@.o -o $@ - $(STRIPTOOL) -x -R .note -R .comment $@ - -$(LDD) $@ - ls -l $@ - -./$@ - -@ echo " " - - -clean: - $(RM) *.[oa] *~ core $(TARGETS) +# uClibc malloc tests +# Licensed under the GNU Library General Public License, see COPYING.LIB +TESTS = malloc mallocbug realloc0 testmalloc +#time_malloc +include ../Test.mak diff --git a/test/malloc/malloc.c b/test/malloc/malloc.c index 8e93cf205..d63856845 100644 --- a/test/malloc/malloc.c +++ b/test/malloc/malloc.c @@ -1,6 +1,7 @@ #include <unistd.h> #include <stdlib.h> +#include <string.h> #include <stdio.h> #define N_PTRS 1000 @@ -10,61 +11,71 @@ #define random_size() (random()%MAX_SIZE) #define random_ptr() (random()%N_PTRS) -void test1(void); -void test2(void); +int test1(void); +int test2(void); -int main(int argc,char *argv[]) +int main(int argc, char *argv[]) { - test1(); - test2(); - return 0; + return test1() + test2(); } -void test1(void) +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++){ - ptrs[i]=malloc(random_size()); + 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(); + 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); + 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++){ + for(i=0; i<N_PTRS; i++){ free(ptrs[i]); } + + return ret; } -void test2(void) +int test2(void) { void *ptr = NULL; + int ret = 0; ptr = realloc(ptr,100); - if(!ptr){ + if (!ptr) { printf("couldn't realloc() a NULL pointer\n"); - }else{ + ++ret; + } else { free(ptr); } ptr = malloc(100); ptr = realloc(ptr, 0); - if(ptr){ + if (ptr) { printf("realloc(,0) failed\n"); + ++ret; free(ptr); } + + return ret; } diff --git a/test/malloc/realloc0.c b/test/malloc/realloc0.c index afe9bb9bd..62ae39d25 100644 --- a/test/malloc/realloc0.c +++ b/test/malloc/realloc0.c @@ -1,13 +1,13 @@ #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; -} + 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; +} |
