From 21b51772edd7f5b993f5ceec97a69dfc8462e63a Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Sat, 2 Jul 2005 15:36:20 +0000 Subject: new testing framework to unify duplicated code in subdirs --- test/Test.mak | 59 ++++++++++++++++++++++++ test/args/Makefile | 44 +++--------------- test/assert/Makefile | 38 ++------------- test/malloc/Makefile | 128 ++------------------------------------------------- test/silly/Makefile | 77 +++---------------------------- test/unistd/Makefile | 126 +++----------------------------------------------- 6 files changed, 88 insertions(+), 384 deletions(-) create mode 100644 test/Test.mak (limited to 'test') diff --git a/test/Test.mak b/test/Test.mak new file mode 100644 index 000000000..9519eb9ea --- /dev/null +++ b/test/Test.mak @@ -0,0 +1,59 @@ +# Common makefile rules for tests +# +# Copyright (C) 2000,2001 Erik Andersen +# +# 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 + +include ../Rules.mak + +U_TARGETS := $(TESTS) +G_TARGETS := $(patsubst %,%_glibc,$(U_TARGETS)) +U_TARGETS += $(U_TESTS) +G_TARGETS += $(G_TESTS) +TARGETS = $(U_TARGETS) $(G_TARGETS) + +all: $(TARGETS) + +$(TARGETS): Makefile $(TESTDIR)Rules.mak $(TESTDIR)Test.mak +$(U_TARGETS): $(patsubst %,%.c,$(U_TARGETS)) +$(G_TARGETS): $(patsubst %_glibc,%.c,$(G_TARGETS)) + +$(U_TARGETS): + -@ echo "----------------------------" + -@ echo "Compiling $@ vs uClibc: " + -@ echo " " + $(CC) $(CFLAGS) -c $@.c -o $@.o + $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) + $$WRAPPER_$@ ./$@ $$OPTS_$@ ; \ + ret=$$? ; \ + test -z "$$RET_$@" && export RET_$@=0 ; \ + test $$ret -eq $$RET_$@ + -@ echo " " + +$(G_TARGETS): + -@ echo "----------------------------" + -@ echo "Compiling $@ vs glibc: " + -@ echo " " + $(HOSTCC) $(GLIBC_CFLAGS) -c $(patsubst %_glibc,%,$@).c -o $@.o + $(HOSTCC) $(GLIBC_LDFLAGS) $@.o -o $@ + $(STRIPTOOL) -x -R .note -R .comment $@ + $$WRAPPER_$(patsubst %_glibc,%,$@) ./$@ $$OPTS_$(patsubst %_glibc,%,$@) ; \ + ret=$$? ; \ + test -z "$$RET_$(patsubst %_glibc,%,$@)" && export RET_$(patsubst %_glibc,%,$@)=0 ; \ + test $$ret -eq $$RET_$(patsubst %_glibc,%,$@) + -@ echo " " + +clean: + $(RM) *.[oa] *~ core $(TARGETS) diff --git a/test/args/Makefile b/test/args/Makefile index 8c466df9c..29a5af967 100644 --- a/test/args/Makefile +++ b/test/args/Makefile @@ -1,42 +1,12 @@ -# Makefile for uClibc -# -# Copyright (C) 2000,2001 Erik Andersen -# -# 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 +# uClibc args tests +# Licensed under the GNU Library General Public License, see COPYING.LIB -include ../Rules.mak +TESTS = arg_test -TARGETS=arg_test -all: $(TARGETS) +include ../Test.mak -arg_test: arg_test.c Makefile $(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 $@ +export WRAPPER_arg_test = \ env -i \ ENVVAR=123 \ - SOMETHING=sldajfasdf \ - BLAHBLAH=" hi hi " \ - ./$@ a b c d e f g h \ - > arg_test.out - diff -u arg_test.out.good arg_test.out - -@ echo " " - -clean: - $(RM) *.[oa] *~ core $(TARGETS) *.out + SOMETHING=sldajfasdf +export OPTS_arg_test = a b c d e f g h diff --git a/test/assert/Makefile b/test/assert/Makefile index e6ceb1b0e..fc908cf87 100644 --- a/test/assert/Makefile +++ b/test/assert/Makefile @@ -1,36 +1,8 @@ -# Makefile for uClibc -# -# Copyright (C) 2000,2001 Erik Andersen -# -# 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 +# uClibc assert tests +# Licensed under the GNU Library General Public License, see COPYING.LIB -include ../Rules.mak +TESTS = assert -TARGETS=assert -all: $(TARGETS) +include ../Test.mak -assert: assert.c Makefile $(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 $@ - ./$@ ; ret=$$? ; test $$ret -eq 134 - -@ echo " " - -clean: - $(RM) *.[oa] *~ core $(TARGETS) +export RET_assert = 134 diff --git a/test/malloc/Makefile b/test/malloc/Makefile index d77238bed..a05b3aae1 100644 --- a/test/malloc/Makefile +++ b/test/malloc/Makefile @@ -1,125 +1,7 @@ -# Makefile for uClibc -# -# Copyright (C) 2000,2001 Erik Andersen -# -# 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 +# uClibc malloc tests +# Licensed under the GNU Library General Public License, see COPYING.LIB -include ../Rules.mak +TESTS = malloc mallocbug realloc0 testmalloc +#time_malloc -TARGETS=malloc -TARGETS+=testmalloc testmalloc_glibc -TARGETS+=mallocbug mallocbug_glibc -TARGETS+=realloc0 realloc0_glibc -all: $(TARGETS) - -malloc: malloc.c Makefile $(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)/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 glibc: " - -@ 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)/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 glibc: " - -@ 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)/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 glibc: " - -@ 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) +include ../Test.mak diff --git a/test/silly/Makefile b/test/silly/Makefile index a1eaa86ee..57739a447 100644 --- a/test/silly/Makefile +++ b/test/silly/Makefile @@ -1,74 +1,9 @@ -# Makefile for uClibc -# -# Copyright (C) 2000,2001 Erik Andersen -# -# 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 +# uClibc silly tests +# Licensed under the GNU Library General Public License, see COPYING.LIB -include ../Rules.mak +TESTS = hello tiny -TARGETS=hello_source hello hello_glibc tiny +include ../Test.mak -all: $(TARGETS) - -hello_source: - -@ $(RM) $(TARGETS) - -@ echo "-------" - -@ echo "hello.c source: " - -@ echo " " - -@ cat hello.c - -@ echo " " - -hello: hello.c Makefile $(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 $@ - ./$@ ; ret=$$? ; test $$ret -eq 42 - -@ echo " " - -hello_glibc: hello.c Makefile - -@ echo "-------" - -@ echo " " - -@ echo "Compiling $@ vs glibc: " - -@ echo " " - $(HOSTCC) $(GLIBC_CFLAGS) -c $< -o $@.o - $(HOSTCC) $(GLIBC_LDFLAGS) $@.o -o $@ - $(STRIPTOOL) -x -R .note -R .comment $@ - -$(LDD) $@ - ls -l $@ - ./$@ ; ret=$$? ; test $$ret -eq 42 - -@ echo " " - - -tiny: tiny.c Makefile $(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 $@ - ./$@ ; ret=$$? ; test $$ret -eq 42 - -@ echo " " - -clean: - $(RM) *.[oa] *~ core $(TARGETS) +export RET_hello = 42 +export RET_tiny = 42 diff --git a/test/unistd/Makefile b/test/unistd/Makefile index cd3a84fbf..d684f0690 100644 --- a/test/unistd/Makefile +++ b/test/unistd/Makefile @@ -1,123 +1,9 @@ -# Makefile for uClibc -# -# Copyright (C) 2000,2001 Erik Andersen -# -# 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 +# uClibc unistd tests +# Licensed under the GNU Library General Public License, see COPYING.LIB -include ../Rules.mak +TESTS = clone fork getcwd getopt getopt_long preadwrite vfork -TARGETS=fork fork_glibc vfork vfork_glibc getcwd getopt getopt_long preadwrite -all: $(TARGETS) +include ../Test.mak -getcwd: getcwd.c Makefile $(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 " " - -fork: fork.c ../testsuite.h Makefile $(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 " " - -fork_glibc: fork.c ../testsuite.h Makefile - -@ echo "-------" - -@ echo " " - -@ echo "Compiling $@ vs glibc: " - -@ echo " " - $(HOSTCC) $(GLIBC_CFLAGS) -c $< -o $@.o - $(HOSTCC) $(GLIBC_LDFLAGS) $@.o -o $@ - $(STRIPTOOL) -x -R .note -R .comment $@ - ./$@ - -@ echo " " - -clone: clone.c ../testsuite.h Makefile $(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 " " - -clone_glibc: clone.c ../testsuite.h Makefile - -@ echo "-------" - -@ echo " " - -@ echo "Compiling $@ vs glibc: " - -@ echo " " - $(HOSTCC) $(GLIBC_CFLAGS) -c $< -o $@.o - $(HOSTCC) $(GLIBC_LDFLAGS) $@.o -o $@ - $(STRIPTOOL) -x -R .note -R .comment $@ - ./$@ - -@ echo " " - -vfork: vfork.c ../testsuite.h Makefile $(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 " " - -vfork_glibc: vfork.c ../testsuite.h Makefile - -@ echo "-------" - -@ echo " " - -@ echo "Compiling $@ vs glibc: " - -@ echo " " - $(HOSTCC) $(GLIBC_CFLAGS) -c $< -o $@.o - $(HOSTCC) $(GLIBC_LDFLAGS) $@.o -o $@ - $(STRIPTOOL) -x -R .note -R .comment $@ - ./$@ - -@ echo " " - -getopt: getopt.c Makefile $(TESTDIR)/Rules.mak - $(CC) $(CFLAGS) -c $< -o $@.o - $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) - $(STRIPTOOL) -x -R .note -R .comment $@ - ./$@ -abcXXX -9 - -@ echo " " - -getopt_long: getopt_long.c Makefile $(TESTDIR)/Rules.mak - $(CC) $(CFLAGS) -c $< -o $@.o - $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) - $(STRIPTOOL) -x -R .note -R .comment $@ - ./$@ --add XXX --delete YYY --verbose - -@ echo " " - -preadwrite: preadwrite.c Makefile $(TESTDIR)/Rules.mak - $(CC) $(CFLAGS) -c $< -o $@.o - $(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LIBS) - $(STRIPTOOL) -x -R .note -R .comment $@ - ./$@ - -@ echo " " - -clean: - $(RM) *.[oa] *~ core $(TARGETS) +export OPTS_getopt = -abcXXX -9 +export OPTS_getopt_long = --add XXX --delete YYY --verbose -- cgit v1.2.3