]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Enumerate tests with special rules in tests-special variable.
authorJoseph Myers <joseph@codesourcery.com>
Thu, 6 Mar 2014 22:35:33 +0000 (22:35 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 6 Mar 2014 22:35:33 +0000 (22:35 +0000)
This patch is a revised and updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00196.html>.

In order to generate overall summaries of the results of all tests in
the glibc testsuite, we need to identify and concatenate the files
with the results of individual tests.

Tomas Dohnalek's patch used $(common-objpfx)*/*.test-result for this.
However, the normal glibc approach is explicit enumeration of the
expected set of files with a given property, rather than all files
matching some pattern like that.  Furthermore, we would like to be
able to mark tests as UNRESOLVED if the file with their results is for
some reason missing, and in future we would like to be able to mark
tests as UNSUPPORTED if they are disabled for a particular
configuration (rather than simply having them missing from the list of
tests as at present).  Such handling of tests that were not run or did
not record results requires an explicit enumeration of tests.

For the tests following the default makefile rules, $(tests) (and
$(xtests)) provides such an enumeration.  Others, however, are added
directly as dependencies of the "tests" and "xtests" makefile
targets.  This patch changes the makefiles to put them in variables
tests-special and xtests-special, with appropriate dependencies on the
tests listed there then being added centrally.

Those variables are used in Rules and so need to be set before Rules
is included in a subdirectory makefile, which is often earlier in the
makefile than the dependencies were present before.  We previously
discussed the question of where to include Rules; see the question at
<https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, and a
discussion in
<https://sourceware.org/ml/libc-alpha/2013-01/msg00337.html> of why
Rules is included early rather than late in subdirectory makefiles.

It was necessary to avoid an indirection through the check-abi target
and get the check-abi-* targets for individual libraries into the
tests-special variable.  The intl/ test $(objpfx)tst-gettext.out,
previously built only because of dependencies from other tests, was
also added to tests-special for the same reason.

The entries in tests-special are the full makefile targets, complete
with $(objpfx) and .out.  If a future change causes tests to be named
consistently with a .out suffix, this can be changed to include just
the path relative to $(objpfx), without .out.

Tested x86_64, including that the same set of files is generated in
the build directory by a build and testsuite run both before and after
the patch (except for changes to the
elf/tst-null-argv.debug.out.<number> file name), and a build with
run-built-tests=no to verify there aren't any more obvious instances
of the issue Marcus Shawcroft reported with a previous version in
<https://sourceware.org/ml/libc-alpha/2014-01/msg00462.html>.

* Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
(tests): Depend on $(tests-special).
* Makerules (check-abi-list): New variable.
(check-abi): Depend on $(check-abi-list).
[$(subdir) = elf] (tests-special): Add
$(objpfx)check-abi-libc.out.
[$(build-shared) = yes && subdir] (tests-special): Add
$(check-abi-list).
[$(build-shared) = yes && subdir] (tests): Do not depend on
check-abi.
* Rules (tests): Depend on $(tests-special).
(xtests): Depend on $(xtests-special).
* catgets/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* conform/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* elf/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* grp/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* iconv/Makefile (xtests): Change dependencies to ....
(xtests-special): ... additions to this variable.
* iconvdata/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* intl/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.  Also add
$(objpfx)tst-gettext.out.
* io/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* libio/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* malloc/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* misc/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* nptl/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* nptl_db/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* posix/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
(xtests): Change dependencies to ....
(xtests-special): ... additions to this variable.
* resolv/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
(xtests): Change dependencies to ....
(xtests-special): ... additions to this variable.
* stdio-common/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
(do-tst-unbputc): Remove target.
(do-tst-printf): Likewise.
* stdlib/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* string/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.
* sysdeps/x86/Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.

localedata:
* Makefile (tests): Change dependencies to ....
(tests-special): ... additions to this variable.

25 files changed:
ChangeLog
Makefile
Makerules
Rules
catgets/Makefile
conform/Makefile
elf/Makefile
grp/Makefile
iconv/Makefile
iconvdata/Makefile
intl/Makefile
io/Makefile
libio/Makefile
localedata/ChangeLog
localedata/Makefile
malloc/Makefile
misc/Makefile
nptl/Makefile
nptl_db/Makefile
posix/Makefile
resolv/Makefile
stdio-common/Makefile
stdlib/Makefile
string/Makefile
sysdeps/x86/Makefile

index 89b40c8c88eb9f2da92ce84a5e9905760fd855ec..89e8d035095f45577453f3a2893080db48b6bf19 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,64 @@
 2014-03-06  Joseph Myers  <joseph@codesourcery.com>
 
+       * Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       (tests): Depend on $(tests-special).
+       * Makerules (check-abi-list): New variable.
+       (check-abi): Depend on $(check-abi-list).
+       [$(subdir) = elf] (tests-special): Add
+       $(objpfx)check-abi-libc.out.
+       [$(build-shared) = yes && subdir] (tests-special): Add
+       $(check-abi-list).
+       [$(build-shared) = yes && subdir] (tests): Do not depend on
+       check-abi.
+       * Rules (tests): Depend on $(tests-special).
+       (xtests): Depend on $(xtests-special).
+       * catgets/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * conform/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * elf/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * grp/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * iconv/Makefile (xtests): Change dependencies to ....
+       (xtests-special): ... additions to this variable.
+       * iconvdata/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * intl/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.  Also add
+       $(objpfx)tst-gettext.out.
+       * io/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * libio/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * malloc/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * misc/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * nptl/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * nptl_db/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * posix/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       (xtests): Change dependencies to ....
+       (xtests-special): ... additions to this variable.
+       * resolv/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       (xtests): Change dependencies to ....
+       (xtests-special): ... additions to this variable.
+       * stdio-common/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       (do-tst-unbputc): Remove target.
+       (do-tst-printf): Likewise.
+       * stdlib/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * string/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+       * sysdeps/x86/Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+
        * conform/data/netinet/tcp.h-data [POSIX2008 || XOPEN2K8]: Enable
        whole file.
        * conform/data/sys/timeb.h-data [POSIX2008 || XOPEN2K8]: Disable
index a9b559716a756c231bb2a5534ff11dbcde00e468..aee88e1e3e7ee868d9d8df8aba48f397d76e0734 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -250,7 +250,7 @@ mostlyclean: parent-mostlyclean
 tests-clean:
        @$(MAKE) subdir_testclean no_deps=t
 
-tests: $(objpfx)c++-types-check.out $(objpfx)check-local-headers.out
+tests-special += $(objpfx)c++-types-check.out $(objpfx)check-local-headers.out
 ifneq ($(CXX),no)
 
 vpath c++-types.data $(+sysdep_dirs)
@@ -310,12 +310,14 @@ installed-headers = argp/argp.h assert/assert.h catgets/nl_types.h \
                    time/sys/time.h time/sys/timeb.h wcsmbs/wchar.h \
                    wctype/wctype.h
 
-tests: $(objpfx)begin-end-check.out
+tests-special += $(objpfx)begin-end-check.out
 $(objpfx)begin-end-check.out: scripts/begin-end-check.pl
        $(PERL) scripts/begin-end-check.pl $(installed-headers) > $@; \
        $(evaluate-test)
 endif
 
+tests: $(tests-special)
+
 # The realclean target is just like distclean for the parent, but we want
 # the subdirs to know the difference in case they care.
 realclean distclean: parent-clean
index c2324366df5a8d4e66e7b87248f2f614d335bcb0..ad81ea9f767821f615ac52c89220b38070216ebd 100644 (file)
--- a/Makerules
+++ b/Makerules
@@ -1246,7 +1246,9 @@ endef
 
 .PHONY: update-abi check-abi
 update-abi: $(patsubst %.so,update-abi-%,$(install-lib.so-versioned))
-check-abi: $(patsubst %.so,$(objpfx)check-abi-%.out,$(install-lib.so-versioned))
+check-abi-list = $(patsubst %.so,$(objpfx)check-abi-%.out, \
+                                $(install-lib.so-versioned))
+check-abi: $(check-abi-list)
 ifdef subdir
 subdir_check-abi: check-abi
 subdir_update-abi: update-abi
@@ -1257,13 +1259,14 @@ endif
 
 ifeq ($(subdir),elf)
 check-abi: $(objpfx)check-abi-libc.out
+tests-special += $(objpfx)check-abi-libc.out
 update-abi: update-abi-libc
 common-generated += libc.symlist
 endif
 
 ifeq ($(build-shared),yes)
 ifdef subdir
-tests: check-abi
+tests-special += $(check-abi-list)
 endif
 endif
 
diff --git a/Rules b/Rules
index 3e305ddaa551a84054fc143fd76614c711337aeb..d37ae52b6c01706eb7c02d65255fbaf3931ed340 100644 (file)
--- a/Rules
+++ b/Rules
@@ -95,11 +95,11 @@ else
 others: $(addprefix $(objpfx),$(extra-objs))
 endif
 ifeq ($(run-built-tests),no)
-tests: $(addprefix $(objpfx),$(tests) $(test-srcs))
-xtests: tests
+tests: $(addprefix $(objpfx),$(tests) $(test-srcs)) $(tests-special)
+xtests: tests $(xtests-special)
 else
-tests: $(tests:%=$(objpfx)%.out)
-xtests: tests $(xtests:%=$(objpfx)%.out)
+tests: $(tests:%=$(objpfx)%.out) $(tests-special)
+xtests: tests $(xtests:%=$(objpfx)%.out) $(xtests-special)
 endif
 
 ifeq ($(build-programs),yes)
index 5eba3b5605a924d0add946f72a0a79765628de4e..02ca263c4ef32d0cc002dbf0275e84ea2b691364 100644 (file)
@@ -31,6 +31,11 @@ extra-objs   = $(gencat-modules:=.o)
 tests = tst-catgets
 test-srcs = test-gencat
 
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \
+                $(objpfx)test-gencat.out
+endif
+
 gencat-modules = xmalloc
 
 # To find xmalloc.c
@@ -53,8 +58,6 @@ generated-dirs += de
 tst-catgets-ENV = NLSPATH="$(objpfx)%l/%N.cat" LANG=de
 
 ifeq ($(run-built-tests),yes)
-tests: $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \
-       $(objpfx)test-gencat.out
 # This test just checks whether the program produces any error or not.
 # The result is not tested.
 $(objpfx)test1.cat: test1.msg $(objpfx)gencat
index 40081f304ba550e33b6ed7f29a118162320e4078..3f767737583a80dba9c4f3043ed3b6598c51d36d 100644 (file)
@@ -22,14 +22,14 @@ subdir      := conform
 
 include ../Makeconfig
 
-include ../Rules
-
 ifneq (yes,$(fast-check))
 ifeq (no,$(cross-compiling))
-tests: $(objpfx)run-conformtest.out
+tests-special += $(objpfx)run-conformtest.out
 endif
 endif
 
+include ../Rules
+
 test-xfail-run-conformtest = yes
 $(objpfx)run-conformtest.out: run-conformtest.sh conformtest.pl \
                              $(wildcard data/*.h-data) \
index 5637b4899c75c9f9cf073fc80f698da9c7aa57c1..1007a63c6c63c16c25ae5b550ab6a246b7395ab1 100644 (file)
@@ -157,8 +157,8 @@ tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
 endif
 endif
 ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-leaks1-mem $(objpfx)tst-leaks1-static-mem \
-       $(objpfx)noload-mem
+tests-special += $(objpfx)tst-leaks1-mem $(objpfx)tst-leaks1-static-mem \
+                $(objpfx)noload-mem
 endif
 tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
 tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
@@ -253,12 +253,31 @@ modules-names += ifuncmod1 ifuncmod3 ifuncmod5 ifuncmod6
 endif
 endif
 
+ifeq (yes,$(build-shared))
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)tst-pathopt.out $(objpfx)tst-rtld-load-self.out
+endif
+tests-special += $(objpfx)check-textrel.out $(objpfx)check-execstack.out \
+                $(objpfx)check-localplt.out
+endif
 
-include ../Rules
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)order-cmp.out $(objpfx)tst-array1-cmp.out \
+                $(objpfx)tst-array1-static-cmp.out \
+                $(objpfx)tst-array2-cmp.out $(objpfx)tst-array3-cmp.out \
+                $(objpfx)tst-array4-cmp.out $(objpfx)tst-array5-cmp.out \
+                $(objpfx)tst-array5-static-cmp.out $(objpfx)order2-cmp.out \
+                $(objpfx)tst-initorder-cmp.out \
+                $(objpfx)tst-initorder2-cmp.out $(objpfx)tst-unused-dep.out \
+                $(objpfx)tst-unused-dep-cmp.out
+endif
 
 check-abi: $(objpfx)check-abi-ld.out
+tests-special += $(objpfx)check-abi-ld.out
 update-abi: update-abi-ld
 
+include ../Rules
+
 ifeq (yes,$(build-shared))
 # Make sure these things are built in the `make lib' pass so they can be used
 # to run programs during the `make others' pass.
@@ -430,12 +449,6 @@ CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
 test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
 generated += $(addsuffix .so,$(strip $(modules-names)))
 
-ifeq (yes,$(build-shared))
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-pathopt.out $(objpfx)tst-rtld-load-self.out
-endif
-endif
-
 $(objpfx)testobj1.so: $(libdl)
 $(objpfx)testobj1_1.so: $(objpfx)testobj1.so $(libdl)
 $(objpfx)testobj2.so: $(objpfx)testobj1.so $(libdl)
@@ -640,9 +653,6 @@ $(objpfx)circlemod2a.so: $(objpfx)circlemod3a.so
 
 $(objpfx)order: $(addprefix $(objpfx),dep4.so dep3.so dep2.so dep1.so)
 
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)order-cmp.out
-endif
 $(objpfx)order-cmp.out: $(objpfx)order.out
        (echo "0123456789" | cmp $< -) > $@; \
        $(evaluate-test)
@@ -856,13 +866,6 @@ endif
 LDFLAGS-tst-array2 = $(no-as-needed)
 LDFLAGS-tst-array5 = $(no-as-needed)
 
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-array1-cmp.out $(objpfx)tst-array1-static-cmp.out \
-       $(objpfx)tst-array2-cmp.out $(objpfx)tst-array3-cmp.out \
-       $(objpfx)tst-array4-cmp.out $(objpfx)tst-array5-cmp.out \
-       $(objpfx)tst-array5-static-cmp.out
-endif
-
 $(objpfx)tst-array1-cmp.out: tst-array1.exp $(objpfx)tst-array1.out
        cmp $^ > $@; \
        $(evaluate-test)
@@ -902,8 +905,6 @@ CFLAGS-tst-pie1.c += $(pie-ccflag)
 $(objpfx)tst-pie1: $(objpfx)tst-piemod1.so
 
 ifeq (yes,$(build-shared))
-tests: $(objpfx)check-textrel.out $(objpfx)check-execstack.out
-
 all-built-dso := $(common-objpfx)libc.so \
                 $(filter-out $(common-objpfx)linkobj/libc.so, \
                              $(sort $(wildcard $(addprefix $(common-objpfx), \
@@ -961,8 +962,6 @@ $(all-built-dso:=.jmprel): %.jmprel: % Makefile
        mv -f $@T $@
 common-generated += $(all-built-dso:$(common-objpfx)%=%.jmprel)
 
-tests: $(objpfx)check-localplt.out
-
 localplt-built-dso := $(addprefix $(common-objpfx),\
                                  libc.so \
                                  math/libm.so \
@@ -1026,9 +1025,6 @@ tst-audit8-ENV = LD_AUDIT=$(objpfx)tst-auditmod1.so
 $(objpfx)tst-global1: $(libdl)
 $(objpfx)tst-global1.out: $(objpfx)testobj6.so $(objpfx)testobj2.so
 
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)order2-cmp.out
-endif
 $(objpfx)order2: $(libdl)
 $(objpfx)order2.out: $(objpfx)order2mod1.so $(objpfx)order2mod2.so
 $(objpfx)order2-cmp.out: $(objpfx)order2.out
@@ -1131,9 +1127,6 @@ $(objpfx)tst-unique3.out: $(objpfx)tst-unique3lib2.so
 
 $(objpfx)tst-unique4: $(objpfx)tst-unique4lib.so
 
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-initorder-cmp.out
-endif
 $(objpfx)tst-initorder-cmp.out: tst-initorder.exp $(objpfx)tst-initorder.out
        cmp $^ > $@; \
        $(evaluate-test)
@@ -1153,9 +1146,6 @@ endef
 object-suffixes-left := a b c d
 include $(o-iterator)
 
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-initorder2-cmp.out
-endif
 $(objpfx)tst-initorder2-cmp.out: tst-initorder2.exp $(objpfx)tst-initorder2.out
        cmp $^ > $@; \
        $(evaluate-test)
@@ -1166,10 +1156,6 @@ $(objpfx)tst-relsort1mod2.so: $(libm)
 $(objpfx)tst-relsort1.out: $(objpfx)tst-relsort1mod1.so \
                           $(objpfx)tst-relsort1mod2.so
 
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-unused-dep.out $(objpfx)tst-unused-dep-cmp.out
-endif
-
 $(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so
        $(test-wrapper-env) \
        LD_TRACE_LOADED_OBJECTS=1 \
index 3ed8471fdd11fef46e6e80a8caaf6d44fd5cd0af..a60d2f95ab6009018f37dbf63b92cb86363a883d 100644 (file)
@@ -32,6 +32,9 @@ tests := testgrp
 
 ifeq (yes,$(build-shared))
 test-srcs :=  tst_fgetgrent
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)tst_fgetgrent.out
+endif
 endif
 
 
@@ -54,7 +57,6 @@ endif
 ifeq ($(run-built-tests),yes)
 # tst_fgetgrent currently only works with shared libraries
 ifeq (yes,$(build-shared))
-tests: $(objpfx)tst_fgetgrent.out
 $(objpfx)tst_fgetgrent.out: tst_fgetgrent.sh $(objpfx)tst_fgetgrent
        $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
        $(evaluate-test)
index ec3535412e0ee784b421a59f732eb4f29786d3ad..8728fefc134294fdae7867eea6ae2601b7ed71e6 100644 (file)
@@ -60,6 +60,10 @@ CPPFLAGS-strtab = -DNOT_IN_libc
 CPPFLAGS-charmap = -DNOT_IN_libc
 CPPFLAGS-charmap-dir = -DNOT_IN_libc
 
+ifeq ($(run-built-tests),yes)
+xtests-special += test-iconvconfig
+endif
+
 include ../Rules
 
 $(inst_bindir)/iconv: $(objpfx)iconv_prog $(+force)
@@ -68,10 +72,6 @@ $(inst_bindir)/iconv: $(objpfx)iconv_prog $(+force)
 $(objpfx)iconv_prog: $(iconv_prog-modules:%=$(objpfx)%.o)
 $(objpfx)iconvconfig: $(iconvconfig-modules:%=$(objpfx)%.o)
 
-ifeq ($(run-built-tests),yes)
-xtests: test-iconvconfig
-endif
-
 .PHONY: test-iconvconfig
 test-iconvconfig: /dev/null $(objpfx)iconvconfig
        tmp=$(objpfx)gconv-modules.cache.$$$$; \
index 8fabe52718bd8de32592d0f3681f5e40b8f03a0d..f0d832af6d4fe97ec5e67f44242ffdd05915939a 100644 (file)
@@ -265,17 +265,17 @@ endif
 
 endif # build-shared = yes
 
-include ../Rules
-
 ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
-tests: $(objpfx)iconv-test.out $(objpfx)tst-tables.out
+tests-special += $(objpfx)iconv-test.out $(objpfx)tst-tables.out
 ifneq (no,$(PERL))
-tests: $(objpfx)mtrace-tst-loading
+tests-special += $(objpfx)mtrace-tst-loading
 endif
 endif
 endif
 
+include ../Rules
+
 tst-loading-ENV = MALLOC_TRACE=$(objpfx)tst-loading.mtrace
 $(objpfx)mtrace-tst-loading: $(objpfx)tst-loading.out
        $(common-objpfx)malloc/mtrace $(objpfx)tst-loading.mtrace > $@; \
index 61ba07f62c99269e12e48c5d0363eee85d63bc2a..56769548b52468aae8dacae2e41cd6907254cc14 100644 (file)
@@ -47,22 +47,27 @@ plural.c: plural.y
 endif
 $(objpfx)plural.o: plural.c
 
-include ../Rules
-
 ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
 ifneq ($(strip $(MSGFMT)),:)
-tests: $(objpfx)tst-translit.out $(objpfx)tst-gettext2.out \
-       $(objpfx)tst-codeset.out $(objpfx)tst-gettext3.out
+tests-special += $(objpfx)tst-translit.out $(objpfx)tst-gettext.out \
+                $(objpfx)tst-gettext2.out $(objpfx)tst-codeset.out \
+                $(objpfx)tst-gettext3.out
 ifeq ($(have-thread-library),yes)
-tests: $(objpfx)tst-gettext4.out $(objpfx)tst-gettext5.out \
-       $(objpfx)tst-gettext6.out
+tests-special += $(objpfx)tst-gettext4.out $(objpfx)tst-gettext5.out \
+                $(objpfx)tst-gettext6.out
 endif
 ifneq (no,$(PERL))
-tests: $(objpfx)mtrace-tst-gettext
+tests-special += $(objpfx)mtrace-tst-gettext
+endif
+endif
 endif
 endif
 
+include ../Rules
+
+ifeq ($(run-built-tests),yes)
+ifeq (yes,$(build-shared))
 # Multiple tests use this data.  Create it once to avoid racing and
 # spurious test failures.
 codeset_mo = $(objpfx)domaindir/de_DE/LC_MESSAGES/codeset.mo
index 8d38612b0683aa452fbbfd8c9eebff9efc2717e5..8a6562e65dc0216fb5611d67da60342323662bc2 100644 (file)
@@ -73,6 +73,10 @@ tests                := test-utime test-stat test-stat2 test-lfs tst-getcwd \
                   tst-mknodat tst-mkfifoat tst-ttyname_r bug-ftw5 \
                   tst-posix_fallocate
 
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)ftwtest.out
+endif
+
 include ../Rules
 
 CFLAGS-open.c = -fexceptions -fasynchronous-unwind-tables
@@ -103,8 +107,6 @@ test-stat2-ARGS = Makefile . $(objpfx)test-stat2
 tst-statvfs-ARGS = $(objpfx)tst-statvfs tst-statvfs.c /tmp
 
 ifeq ($(run-built-tests),yes)
-tests: $(objpfx)ftwtest.out
-
 $(objpfx)ftwtest.out: ftwtest-sh $(objpfx)ftwtest
        $(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@; \
        $(evaluate-test)
index 488ee51f0e1d2b570d2d581fb50de10deb58db15..69c25c0c3d2242ac2a281a63f1f557c531837b5b 100644 (file)
@@ -172,17 +172,17 @@ shared-only-routines = oldiofopen oldiofdopen oldiofclose oldfileops      \
                       oldiofgetpos oldiofgetpos64 oldiofsetpos         \
                       oldiofsetpos64
 
-include ../Rules
-
 ifeq ($(run-built-tests),yes)
-tests: $(objpfx)test-freopen.out
+tests-special += $(objpfx)test-freopen.out
 ifeq (yes,$(build-shared))
 # Run tst-fopenloc-cmp.out and tst-openloc-mem.out only if shared
 # library is enabled since they depend on tst-fopenloc.out.
-tests: $(objpfx)tst-fopenloc-cmp.out $(objpfx)tst-fopenloc-mem.out
+tests-special += $(objpfx)tst-fopenloc-cmp.out $(objpfx)tst-fopenloc-mem.out
 endif
 endif
 
+include ../Rules
+
 $(objpfx)test-freopen.out: test-freopen.sh $(objpfx)test-freopen
        $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'   \
        $(common-objpfx)libio/; \
index a7323054baeba24f85283ce927f1fb57542885a5..2ca1abeda6fbe85fdfeb3ca88b7c5eb6a4aed622 100644 (file)
@@ -1,3 +1,8 @@
+2014-03-06  Joseph Myers  <joseph@codesourcery.com>
+
+       * Makefile (tests): Change dependencies to ....
+       (tests-special): ... additions to this variable.
+
 2014-02-28  Roland McGrath  <roland@hack.frob.com>
 
        * Makefile (generated, generated-dirs): Use += rather than =.
index ad801b7e75041317c73a6adb23ade315c25752bc..5f01b611395e20c22454e05c9c703a8ac10ddca2 100644 (file)
@@ -79,7 +79,7 @@ tests-static = bug-setlocale1-static
 tests += $(tests-static)
 ifeq (yes,$(build-shared))
 ifneq (no,$(PERL))
-tests: $(objpfx)mtrace-tst-leaks
+tests-special += $(objpfx)mtrace-tst-leaks
 endif
 endif
 endif
@@ -91,6 +91,12 @@ install-others := $(addprefix $(inst_i18ndir)/, \
 
 tests: $(objdir)/iconvdata/gconv-modules
 
+tests-special += $(objpfx)sort-test.out $(objpfx)tst-fmon.out \
+                $(objpfx)tst-locale.out $(objpfx)tst-rpmatch.out \
+                $(objpfx)tst-trans.out $(objpfx)tst-mbswcs.out \
+                $(objpfx)tst-ctype.out $(objpfx)tst-wctype.out \
+                $(objpfx)tst-langinfo.out $(objpfx)tst-numeric.out
+
 include ../Rules
 
 # Install the charmap files in gzipped format.
@@ -137,11 +143,6 @@ $(addprefix $(objpfx),$(CTYPE_FILES)): %: \
 $(addsuffix .out,$(addprefix $(objpfx),$(tests))): %: \
   $(addprefix $(objpfx),$(CTYPE_FILES))
 
-tests: $(objpfx)sort-test.out $(objpfx)tst-fmon.out $(objpfx)tst-locale.out \
-       $(objpfx)tst-rpmatch.out $(objpfx)tst-trans.out \
-       $(objpfx)tst-mbswcs.out $(objpfx)tst-ctype.out $(objpfx)tst-wctype.out \
-       $(objpfx)tst-langinfo.out $(objpfx)tst-numeric.out
-
 $(objpfx)sort-test.out: sort-test.sh $(objpfx)collate-test $(objpfx)xfrm-test \
                       $(test-input-data) $(addprefix $(objpfx),$(CTYPE_FILES))
        $(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(test-input) \
index 1b47ce2a42586626da84144e4e32fed7e56e3699..28717262208919d9d27239dd643b712cd6c56483 100644 (file)
@@ -92,6 +92,14 @@ memusagestat-modules = memusagestat
 $(objpfx)memusagestat: $(memusagestat-modules:%=$(objpfx)%.o)
        $(LINK.o) -o $@ $^ $(libgd-LDFLAGS) -lgd -lpng -lz -lm
 
+ifeq ($(run-built-tests),yes)
+ifeq (yes,$(build-shared))
+ifneq ($(PERL),no)
+tests-special += $(objpfx)tst-mtrace.out
+endif
+endif
+endif
+
 include ../Rules
 
 CFLAGS-mcheck-init.c = $(PIC-ccflag)
@@ -107,7 +115,6 @@ lib: $(objpfx)libmcheck.a
 ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
 ifneq ($(PERL),no)
-tests: $(objpfx)tst-mtrace.out
 $(objpfx)tst-mtrace.out: tst-mtrace.sh $(objpfx)tst-mtrace
        $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
        $(evaluate-test)
index 65dcc4860549d58db894e8e2d8f88241bfb700e3..c08f95a32108a1edfe054030c8a3977dfdc8b6f7 100644 (file)
@@ -78,7 +78,7 @@ gpl2lgpl := error.c error.h
 tests := tst-dirname tst-tsearch tst-fdset tst-efgcvt tst-mntent tst-hsearch \
         tst-error1 tst-pselect tst-insremque tst-mntent2 bug-hsearch1
 ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-error1-mem
+tests-special += $(objpfx)tst-error1-mem
 endif
 
 CFLAGS-select.c = -fexceptions -fasynchronous-unwind-tables
index 320facf8eab501d4d99eb2b2b641782409955aca..9fcf3d678f7fdb7fd0b89a4b928e259672ee2aff 100644 (file)
@@ -367,6 +367,14 @@ xtests-static += tst-setuid1-static
 # These tests are linked with libc before libpthread
 tests-reverse += tst-cancel5 tst-cancel23 tst-vfork1x tst-vfork2x
 
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)tst-stack3-mem $(objpfx)tst-oddstacklimit.out
+ifeq ($(build-shared),yes)
+tests-special += $(objpfx)tst-tls6.out $(objpfx)tst-cleanup0-cmp.out \
+                $(objpfx)tst-cancel-wrappers.out
+endif
+endif
+
 include ../Rules
 
 ifeq (yes,$(build-shared))
@@ -457,9 +465,6 @@ LDFLAGS-tst-atfork2 = -rdynamic
 tst-atfork2-ENV = MALLOC_TRACE=$(objpfx)tst-atfork2.mtrace
 $(objpfx)tst-atfork2mod.so: $(shared-thread-library)
 
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-stack3-mem
-endif
 tst-stack3-ENV = MALLOC_TRACE=$(objpfx)tst-stack3.mtrace
 $(objpfx)tst-stack3-mem: $(objpfx)tst-stack3.out
        $(common-objpfx)malloc/mtrace $(objpfx)tst-stack3.mtrace > $@; \
@@ -482,9 +487,6 @@ LDFLAGS-tst-tls5 = $(no-as-needed)
 LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so
 
 ifeq ($(build-shared),yes)
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-tls6.out
-endif
 $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
                       $(objpfx)tst-tls5moda.so $(objpfx)tst-tls5modb.so \
                       $(objpfx)tst-tls5modc.so $(objpfx)tst-tls5modd.so \
@@ -547,9 +549,6 @@ $(objpfx)tst-cleanup0.out: /dev/null $(objpfx)tst-cleanup0
        $(make-test-out) > $@ 2>&1; \
        $(evaluate-test)
 
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-cleanup0-cmp.out
-endif
 $(objpfx)tst-cleanup0-cmp.out: tst-cleanup0.expect $(objpfx)tst-cleanup0.out
        cmp $^ > $@; \
        $(evaluate-test)
@@ -583,7 +582,6 @@ endif
 
 ifeq ($(run-built-tests),yes)
 ifeq (yes,$(build-shared))
-tests: $(objpfx)tst-cancel-wrappers.out
 $(objpfx)tst-cancel-wrappers.out: tst-cancel-wrappers.sh
        $(SHELL) $< '$(NM)' \
                    $(common-objpfx)libc_pic.a \
@@ -606,8 +604,6 @@ tst-stackguard1-ARGS = --command "$(host-test-program-cmd) --child"
 tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
 
 ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-oddstacklimit.out
-
 $(objpfx)tst-oddstacklimit.out: $(objpfx)tst-oddstacklimit $(objpfx)tst-basic1
        $(test-program-prefix) $< --command '$(host-test-program-cmd)' > $@; \
        $(evaluate-test)
index f321b539dcbb84b4b58d0c4ab42492cad87dbee4..ff873ca225edf9ee8f414951e352111088da5b72 100644 (file)
@@ -51,9 +51,10 @@ libthread_db-inhibit-o = $(filter-out .os,$(object-suffixes))
 # The ps_* callback functions are not defined.
 libthread_db.so-no-z-defs = yes
 
+tests-special += $(objpfx)db-symbols.out
+
 include ../Rules
 
-tests: $(objpfx)db-symbols.out
 $(objpfx)db-symbols.out: $(objpfx)db-symbols.v.i \
                         $(common-objpfx)nptl/libpthread.so
        LC_ALL=C $(READELF) -W -s $(filter %.so,$^) | $(AWK) -f $< > $@; \
index a9bbff2f62c4cb49166a3427eaa586be7a57b5cb..3af936ffbb820a1feeb262b2c92ead28a2be90cf 100644 (file)
@@ -113,12 +113,30 @@ generated += $(addprefix wordexp-test-result, 1 2 3 4 5 6 7 8 9 10) \
             tst-vfork3-mem tst-vfork3.mtrace getconf.speclist \
             tst-fnmatch-mem tst-fnmatch.mtrace
 
+ifeq ($(run-built-tests),yes)
+ifeq (yes,$(build-shared))
+tests-special += $(objpfx)globtest.out $(objpfx)wordexp-tst.out
+endif
+endif
+
+# Run a test on the header files we use.
+# XXX Please note that for now we ignore the result of this test.
+tests-special += $(objpfx)annexc.out
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)bug-regex2-mem $(objpfx)bug-regex14-mem \
+                $(objpfx)bug-regex21-mem $(objpfx)bug-regex31-mem \
+                $(objpfx)tst-rxspencer-no-utf8-mem $(objpfx)tst-pcre-mem \
+                $(objpfx)tst-boost-mem $(objpfx)tst-getconf.out \
+                $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem \
+                $(objpfx)tst-fnmatch-mem
+xtests-special += $(objpfx)bug-ga2-mem
+endif
+
 include ../Rules
 
 ifeq ($(run-built-tests),yes)
 # globtest and wordexp-test currently only works with shared libraries
 ifeq (yes,$(build-shared))
-tests: $(objpfx)globtest.out $(objpfx)wordexp-tst.out
 $(objpfx)globtest.out: globtest.sh $(objpfx)globtest
        $(SHELL) $< $(common-objpfx) '$(test-via-rtld-prefix)' \
                '$(test-program-prefix)' '$(test-wrapper-env)'; \
@@ -221,18 +239,6 @@ ptestcases.h: PTESTS PTESTS2C.sed
        LC_ALL=C sed -f PTESTS2C.sed < $< > $@T
        mv -f $@T $@
 
-# Run a test on the header files we use.
-# XXX Please note that for now we ignore the result of this test.
-tests: $(objpfx)annexc.out
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)bug-regex2-mem $(objpfx)bug-regex14-mem \
-  $(objpfx)bug-regex21-mem $(objpfx)bug-regex31-mem \
-  $(objpfx)tst-rxspencer-no-utf8-mem \
-  $(objpfx)tst-pcre-mem $(objpfx)tst-boost-mem $(objpfx)tst-getconf.out \
-  $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem $(objpfx)tst-fnmatch-mem
-xtests: $(objpfx)bug-ga2-mem
-endif
-
 test-xfail-annexc = yes
 $(objpfx)annexc.out: $(objpfx)annexc
        $(dir $<)$(notdir $<) '$(CC)' \
index 576346928540bca6ef4edd330ba49105533ac961..4ce7619667360159012e272c2ba7f865bdbcbb5a 100644 (file)
@@ -64,6 +64,13 @@ ifeq (yesyes,$(build-shared)$(have-thread-library))
 tests: $(objpfx)ga_test
 endif
 
+ifeq ($(run-built-tests),yes)
+ifneq (no,$(PERL))
+tests-special += $(objpfx)mtrace-tst-leaks
+xtests-special += $(objpfx)mtrace-tst-leaks2
+endif
+endif
+
 generated += mtrace-tst-leaks tst-leaks.mtrace \
             mtrace-tst-leaks2 tst-leaks2.mtrace
 
@@ -96,18 +103,8 @@ tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace
 $(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out
        $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@; \
        $(evaluate-test)
-ifeq ($(run-built-tests),yes)
-ifneq (no,$(PERL))
-tests: $(objpfx)mtrace-tst-leaks
-endif
-endif
 
 tst-leaks2-ENV = MALLOC_TRACE=$(objpfx)tst-leaks2.mtrace
 $(objpfx)mtrace-tst-leaks2: $(objpfx)tst-leaks2.out
        $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks2.mtrace > $@; \
        $(evaluate-test)
-ifeq ($(run-built-tests),yes)
-ifneq (no,$(PERL))
-xtests: $(objpfx)mtrace-tst-leaks2
-endif
-endif
index ba0bf64fc07139c97a7dd89607d5f18298c110d7..332f205bcfca0ab9b56fe8f08268b5ebe753201d 100644 (file)
@@ -61,11 +61,14 @@ tests := tstscanf test_rdwr test-popen tstgetln test-fseek \
 
 test-srcs = tst-unbputc tst-printf
 
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)tst-unbputc.out $(objpfx)tst-printf.out \
+                $(objpfx)tst-setvbuf1-cmp.out
+endif
+
 include ../Rules
 
 ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-unbputc.out $(objpfx)tst-printf.out
-
 $(objpfx)tst-unbputc.out: tst-unbputc.sh $(objpfx)tst-unbputc
        $(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
        $(evaluate-test)
@@ -126,10 +129,6 @@ tst-grouping-ENV = LOCPATH=$(common-objpfx)localedata
 
 CPPFLAGS += $(libio-mtsafe)
 
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-setvbuf1-cmp.out
-endif
-
 $(objpfx)tst-setvbuf1.out: /dev/null $(objpfx)tst-setvbuf1
        $(test-program-cmd) > $@ 2>&1; \
        $(evaluate-test)
index 5f2c10cec26d6d49e7a853fc438ed46295c53e15..42482a2a6c2cdae8ab9f94a97c1ae37cf321ea1f 100644 (file)
@@ -111,6 +111,13 @@ CFLAGS-tst-bsearch.c = $(stack-align-test-flags)
 CFLAGS-tst-qsort.c = $(stack-align-test-flags)
 CFLAGS-tst-makecontext2.c = $(stack-align-test-flags)
 
+# Run a test on the header files we use.
+tests-special += $(objpfx)isomac.out
+
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)tst-fmtmsg.out
+endif
+
 include ../Rules
 
 # Testdir has to be named stdlib and needs to be writable
@@ -123,13 +130,6 @@ tst-strtod5-ENV = LOCPATH=$(common-objpfx)localedata
 testmb2-ENV = LOCPATH=$(common-objpfx)localedata
 bug-fmtmsg1-ENV = SEV_LEVEL=foo,11,newsev
 
-# Run a test on the header files we use.
-tests: $(objpfx)isomac.out
-
-ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-fmtmsg.out
-endif
-
 $(objpfx)isomac.out: $(objpfx)isomac
        $(dir $<)$(notdir $<) '$(CC)'  \
        '-I../include $(+sysdep-includes) $(sysincludes) -I..' > $<.out; \
index 543b5f68e4462c8134192e5af6cec55f8ef87bb8..5a76872131698e77d6b5d0504089b939240e9b81 100644 (file)
@@ -58,6 +58,10 @@ tests                := tester inl-tester noinl-tester testcopy test-ffs     \
 
 xtests = tst-strcoll-overflow
 
+ifeq ($(run-built-tests),yes)
+tests-special += $(objpfx)tst-svc-cmp.out
+endif
+
 include ../Rules
 
 tester-ENV = LANGUAGE=C
@@ -76,7 +80,6 @@ CFLAGS-test-ffs.c = -fno-builtin
 CFLAGS-tst-inlcall.c = -fno-builtin
 
 ifeq ($(run-built-tests),yes)
-tests: $(objpfx)tst-svc-cmp.out
 $(objpfx)tst-svc-cmp.out: tst-svc.expect $(objpfx)tst-svc.out
        cmp $^ > $@; \
        $(evaluate-test)
index 80d03d5b07121ac4d3f8654cebf092c613cfbe58..a96c8bd0b262ab864f9c8198f9ad5b5e4b413128 100644 (file)
@@ -2,7 +2,7 @@ ifeq ($(subdir),elf)
 CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
                   -mno-sse -mno-mmx)
 
-tests: $(objpfx)tst-xmmymm.out
+tests-special += $(objpfx)tst-xmmymm.out
 $(objpfx)tst-xmmymm.out: ../sysdeps/x86/tst-xmmymm.sh $(objpfx)ld.so
        @echo "Checking ld.so for SSE register use.  This will take a few seconds..."
        $(SHELL) $< $(objpfx) '$(NM)' '$(OBJDUMP)' '$(READELF)' > $@; \