OSDN Git Service

New test targets 'compile' and 'run'
authorKhem Raj <kraj@mvista.com>
Mon, 5 Mar 2007 20:49:57 +0000 (20:49 -0000)
committerKhem Raj <kraj@mvista.com>
Mon, 5 Mar 2007 20:49:57 +0000 (20:49 -0000)
test/Makefile
test/README
test/Rules.mak
test/Test.mak

index b306045..63d2990 100644 (file)
@@ -29,7 +29,11 @@ endif
 DIRS := $(filter-out math,$(DIRS))
 
 
-test check all: subdirs
+test check all: run
+
+run: compile subdirs_run
+
+compile:subdirs_compile
 
 tags:
        ctags -R
@@ -37,12 +41,20 @@ tags:
 clean: subdirs_clean
 
 subdirs: $(patsubst %, _dir_%, $(DIRS))
+subdirs_compile: $(patsubst %, _dircompile_%, $(DIRS))
+subdirs_run: $(patsubst %, _dirrun_%, $(DIRS))
 subdirs_clean: $(patsubst %, _dirclean_%, $(ALL_SUBDIRS))
 
 $(patsubst %, _dir_%, $(DIRS)) : dummy
        $(Q)$(MAKE) -C $(patsubst _dir_%, %, $@)
 
+$(patsubst %, _dirrun_%, $(DIRS)) : dummy
+       $(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run
+
+$(patsubst %, _dircompile_%, $(DIRS)) : dummy
+       $(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile
+
 $(patsubst %, _dirclean_%, $(ALL_SUBDIRS)) : dummy
        $(Q)$(MAKE) -C $(patsubst _dirclean_%, %, $@) clean
 
-.PHONY: all check clean dummy subdirs subdirs_clean test
+.PHONY: all check clean dummy subdirs_compile subdirs_run subdirs subdirs_clean test run compile
index fe07a53..b59945c 100644 (file)
@@ -1,14 +1,29 @@
 -----------
  For: User
 -----------
+Following make targets are avaialable
+
+make compile
+
+This will compile and link the tests
+
+make run
+
+This will check for binaries if they are not there it
+will call 'compile' target then it will execute all the
+tests.
+
+make check
+make all
+
+This will build and run tests.
 
 The following make variables may help you in testing:
  - UCLIBC_ONLY  - only run tests against uClibc
  - GLIBC_ONLY   - only run tests against glibc
- - COMPILE_ONLY - just build the tests, don't run them
- - CHECK_ONLY   - only run the tests, don't compile or link them
  - V / VERBOSE  - run tests with a lot of output
-
+ - TEST_INSTALLED_UCLIBC - Test installed libraries 
+                           under /lib and /usr/lib.
 So, to just run the uClibc tests, try this:
 make check UCLIBC_ONLY=1
 
index 878e9ea..ac210a7 100644 (file)
 #
 
 top_builddir ?= ../
+
 TESTDIR=$(top_builddir)test/
 
 include $(top_builddir)/Rules.mak
-
+ifndef TEST_INSTALLED_UCLIBC
 ifdef UCLIBC_LDSO
 ifeq (,$(findstring /,$(UCLIBC_LDSO)))
 UCLIBC_LDSO := $(top_builddir)lib/$(UCLIBC_LDSO)
@@ -21,7 +22,7 @@ endif
 else
 UCLIBC_LDSO := $(firstword $(wildcard $(top_builddir)lib/ld*))
 endif
-
+endif
 #--------------------------------------------------------
 # Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
 LC_ALL:= C
@@ -96,8 +97,14 @@ ifneq ($(strip $(HAVE_SHARED)),y)
        HOST_LDFLAGS  += -static
 endif
 LDFLAGS += -B$(top_builddir)lib -Wl,-rpath,$(top_builddir)lib -Wl,-rpath-link,$(top_builddir)lib
+UCLIBC_LDSO_ABSPATH=$(shell pwd)
+ifdef TEST_INSTALLED_UCLIBC
+LDFLAGS += -Wl,-rpath,./
+UCLIBC_LDSO_ABSPATH=/lib
+endif
+
 ifeq ($(findstring -static,$(LDFLAGS)),)
-LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_LDSO)
+       LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_LDSO_ABSPATH)/$(UCLIBC_LDSO)
 endif
 
 
@@ -123,7 +130,7 @@ banner := ---------------------------------
 pur_showclean = echo "  "CLEAN $(notdir $(CURDIR))
 pur_showdiff  = echo "  "TEST_DIFF $(notdir $(CURDIR))/
 pur_showlink  = echo "  "TEST_LINK $(notdir $(CURDIR))/ $@
-pur_showtest  = echo "  "TEST_EXEC $(notdir $(CURDIR))/ $@
+pur_showtest  = echo "  "TEST_EXEC $(notdir $(CURDIR))/ $(patsubst %.exe,%,$@)
 sil_showclean =
 sil_showdiff  = true
 sil_showlink  = true
@@ -131,7 +138,7 @@ sil_showtest  = true
 ver_showclean =
 ver_showdiff  = true echo
 ver_showlink  = true echo
-ver_showtest  = printf "\n$(banner)\nTEST $(notdir $(PWD))/ $@\n$(banner)\n"
+ver_showtest  = printf "\n$(banner)\nTEST $(notdir $(PWD))/ $(patsubst %.exe,%,$@)\n$(banner)\n"
 do_showclean  = $($(DISP)_showclean)
 do_showdiff   = $($(DISP)_showdiff)
 do_showlink   = $($(DISP)_showlink)
index a5bc968..a3a9c46 100644 (file)
@@ -23,10 +23,7 @@ include ../Rules.mak
 
 U_TARGETS := $(TESTS)
 G_TARGETS := $(patsubst %,%_glibc,$(U_TARGETS))
-U_TARGETS += $(U_TESTS)
-G_TARGETS += $(G_TESTS)
 
-TARGETS   := $(SHELL_TESTS)
 ifeq ($(GLIBC_ONLY),)
 TARGETS   += $(U_TARGETS)
 endif
@@ -34,72 +31,78 @@ ifeq ($(UCLIBC_ONLY),)
 TARGETS   += $(G_TARGETS)
 endif
 CLEAN_TARGETS := $(U_TARGETS) $(G_TARGETS)
+COMPILE_TARGETS :=  $(TARGETS)
+TARGETS += $(SHELL_TESTS)
+RUN_TARGETS := $(patsubst %,%.exe,$(TARGETS))
 
-test check all: $(TARGETS)
-       @true
-
-$(TARGETS): Makefile $(TESTDIR)Makefile $(TESTDIR)Rules.mak $(TESTDIR)Test.mak
-$(U_TARGETS): $(patsubst %,%.c,$(U_TARGETS))
-$(G_TARGETS): $(patsubst %_glibc,%.c,$(G_TARGETS))
+define binary_name
+$(patsubst %.exe,%,$@)
+endef
 
 define diff_test
        $(Q)\
-       for x in "$@.out" "$(patsubst %_glibc,%,$@).out" ; do \
-               test -e "$$x.good" && $(do_showdiff) "$@.out" "$$x.good" && exec diff -u "$@.out" "$$x.good" ; \
+       for x in "$(binary_name).out" "$(patsubst %_glibc,%,$(binary_name)).out" ; do \
+               test -e "$$x.good" && $(do_showdiff) "$(binary_name).out" "$$x.good" && exec diff -u "$(binary_name).out" "$$x.good" ; \
        done ; \
        true
 endef
 define uclibc_glibc_diff_test
        $(Q)\
-       test -z "$(DODIFF_$(patsubst %_glibc,%,$@))" && exec true ; \
-       uclibc_out="$@.out" ; \
-       glibc_out="$(patsubst %_glibc,%,$@).out" ; \
+       test -z "$(DODIFF_$(patsubst %_glibc,%,$(binary_name)))" && exec true ; \
+       uclibc_out="$(binary_name).out" ; \
+       glibc_out="$(patsubst %_glibc,%,$(binary_name)).out" ; \
        $(do_showdiff) $$uclibc_out $$glibc_out ; \
        exec diff -u "$$uclibc_out" "$$glibc_out"
 endef
 define exec_test
        $(showtest)
        $(Q)\
-       $(WRAPPER) $(WRAPPER_$(patsubst %_glibc,%,$@)) \
-       ./$@ $(OPTS) $(OPTS_$(patsubst %_glibc,%,$@)) &> "$@.out" ; \
+       $(WRAPPER) $(WRAPPER_$(patsubst %_glibc,%,$(binary_name))) \
+       ./$(binary_name) $(OPTS) $(OPTS_$(patsubst %_glibc,%,$(binary_name))) &> "$(binary_name).out" ; \
                ret=$$? ; \
-               expected_ret="$(RET_$(patsubst %_glibc,%,$@))" ; \
+               expected_ret="$(RET_$(patsubst %_glibc,%,$(binary_name)))" ; \
                test -z "$$expected_ret" && export expected_ret=0 ; \
        if ! test $$ret -eq $$expected_ret ; then \
-               $(RM) $@ ; \
+               $(RM) $(binary_name) ; \
                echo "ret == $$ret ; expected_ret == $$expected_ret" ; \
-               cat "$@.out" ; \
+               cat "$(binary_name).out" ; \
                exit 1 ; \
        fi
-       $(SCAT) "$@.out"
+       $(SCAT) "$(binary_name).out"
 endef
 
-$(U_TARGETS):
-ifeq ($(CHECK_ONLY),)
-       $(showlink)
-       $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -c $@.c -o $@.o
-       $(Q)$(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$@)
-endif
-ifeq ($(COMPILE_ONLY),)
+test check all: run
+run: $(RUN_TARGETS) compile
+$(RUN_TARGETS): $(TARGETS)
+ifeq ($(shell echo "$(SHELL_TESTS)"|grep "$(binary_name)"),)
        $(exec_test)
        $(diff_test)
+ifeq ($(UCLIBC_ONLY),)
+       $(uclibc_glibc_diff_test)
+endif
 endif
 
-$(G_TARGETS):
+compile: $(COMPILE_TARGETS)
+
+G_TARGET_SRCS := $(patsubst %,%.c,$(G_TARGETS))
+U_TARGET_SRCS := $(patsubst %,%.c,$(U_TARGETS))
+
+$(MAKE_SRCS): Makefile $(TESTDIR)Makefile $(TESTDIR)Rules.mak $(TESTDIR)Test.mak
+
+$(U_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
+       $(showlink)
+       $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$@) -c $@.c -o $@.o
+       $(Q)$(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$@)
+
+$(G_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
        $(showlink)
        $(Q)$(HOSTCC) $(HOST_CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(patsubst %_glibc,%,$@)) -c $(patsubst %_glibc,%,$@).c -o $@.o
        $(Q)$(HOSTCC) $(HOST_LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$(patsubst %_glibc,%,$@))
-ifeq ($(COMPILE_ONLY),)
-       $(exec_test)
-       $(diff_test)
-       $(uclibc_glibc_diff_test)
-endif
+
 
 shell_%:
-ifeq ($(COMPILE_ONLY),)
        $(showtest)
-       $(Q)$(SHELL) $(patsubst shell_%,%.sh,$@)
-endif
+       $(Q)$(SHELL) $(patsubst shell_%,%.sh,$(binary_name))
 
 %.so: %.c
        $(showlink)
@@ -112,4 +115,4 @@ clean:
        $(showclean)
        $(Q)$(RM) *.a *.o *.so *~ core *.out *.gdb $(CLEAN_TARGETS) $(EXTRA_CLEAN)
 
-.PHONY: all check clean test
+.PHONY: all check clean test run compile