about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-02-21 21:48:08 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-02-21 21:48:08 +0000
commitf0881698bf244bcb16c394d2d6258d975a11baef (patch)
tree1476337c5c42a7e623ffbfbcf0914d52fff2bd0d
parentacd7f096d79c181866d56d4aaf3b043e741f1e2c (diff)
downloadglibc-f0881698bf244bcb16c394d2d6258d975a11baef.tar.gz
glibc-f0881698bf244bcb16c394d2d6258d975a11baef.tar.xz
glibc-f0881698bf244bcb16c394d2d6258d975a11baef.zip
Generate .test-result files for tests with special rules.
This patch, an updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00194.html> now
proposed for inclusion in glibc, extends the generation of PASS and
FAIL status in .test-result files for individual tests to cover tests
with their own custom makefile rules.  This is just adding
$(evaluate-test) calls to all such rules, since tests with multiple
commands were previously split into separate tests.

Note that the tests the makefiles expect to fail (posix/annexc and
conformtest) currently get FAIL listed in the .test-result file,
rather than XFAIL; a subsequent patch will introduce a better XFAIL
mechanism.

Tested x86_64.

	* Makefile ($(objpfx)c++-types-check.out): Use $(evaluate-test).
	($(objpfx)check-local-headers.out): Likewise.
	($(objpfx)begin-end-check.out): Likewise.
	* Makerules (check-abi-%.out): Likewise.
	* catgets/Makefile ($(objpfx)test1.cat): Likewise.
	($(objpfx)test2.cat): Likewise.
	($(objpfx)de/libc.cat): Likewise.
	($(objpfx)test-gencat.out): Likewise.
	* conform/Makefile ($(objpfx)run-conformtest.out): Likewise.
	* elf/Makefile ($(objpfx)order-cmp.out): Likewise.
	($(objpfx)noload-mem): Likewise.
	($(objpfx)tst-pathopt.out): Likewise.
	($(objpfx)tst-rtld-load-self.out): Likewise.
	($(objpfx)tst-array1-cmp.out): Likewise.
	($(objpfx)tst-array1-static-cmp.out): Likewise.
	($(objpfx)tst-array2-cmp.out): Likewise.
	($(objpfx)tst-array3-cmp.out): Likewise.
	($(objpfx)tst-array4-cmp.out): Likewise.
	($(objpfx)tst-array5-cmp.out): Likewise.
	($(objpfx)tst-array5-static-cmp.out): Likewise.
	($(objpfx)check-textrel.out): Likewise.
	($(objpfx)check-execstack.out): Likewise.
	($(objpfx)check-localplt.out): Likewise.
	($(objpfx)order2-cmp.out): Likewise.
	($(objpfx)tst-leaks1-mem): Likewise.
	($(objpfx)tst-leaks1-static-mem): Likewise.
	($(objpfx)tst-initorder-cmp.out): Likewise.
	($(objpfx)tst-initorder2-cmp.out): Likewise.
	($(objpfx)tst-unused-dep.out): Likewise.
	($(objpfx)tst-unused-dep-cmp.out): Likewise.
	* grp/Makefile ($(objpfx)tst_fgetgrent.out): Likewise.
	* iconv/Makefile (test-iconvconfig): Likewise.
	* iconvdata/Makefile ($(objpfx)mtrace-tst-loading): Likewise.
	($(objpfx)iconv-test.out): Likewise.
	($(objpfx)tst-tables.out): Likewise.
	* intl/Makefile ($(objpfx)mtrace-tst-gettext): Likewise.
	($(objpfx)tst-gettext.out): Likewise.
	($(objpfx)tst-translit.out): Likewise.
	($(objpfx)tst-gettext2.out): Likewise.
	($(objpfx)tst-gettext4.out): Likewise.
	($(objpfx)tst-gettext6.out): Likewise.
	* io/Makefile ($(objpfx)ftwtest.out): Likewise.
	* libio/Makefile ($(objpfx)test-freopen.out): Likewise.
	($(objpfx)tst-fopenloc-cmp.out): Likewise.
	($(objpfx)tst-fopenloc-mem.out): Likewise.
	* malloc/Makefile ($(objpfx)tst-mtrace.out): Likewise.
	* misc/Makefile ($(objpfx)tst-error1-mem): Likewise.
	* posix/Makefile ($(objpfx)globtest.out): Likewise.
	($(objpfx)wordexp-tst.out): Likewise.
	($(objpfx)annexc.out): Likewise.
	($(objpfx)tst-fnmatch-mem): Likewise.
	($(objpfx)bug-regex2-mem): Likewise.
	($(objpfx)bug-regex14-mem): Likewise.
	($(objpfx)bug-regex21-mem): Likewise.
	($(objpfx)bug-regex31-mem): Likewise.
	($(objpfx)tst-vfork3-mem): Likewise.
	($(objpfx)tst-rxspencer-no-utf8-mem): Likewise.
	($(objpfx)tst-pcre-mem): Likewise.
	($(objpfx)tst-boost-mem): Likewise.
	($(objpfx)tst-getconf.out): Likewise.
	($(objpfx)bug-ga2-mem): Likewise.
	($(objpfx)bug-glob2-mem): Likewise.
	* resolv/Makefile ($(objpfx)mtrace-tst-leaks): Likewise.
	($(objpfx)mtrace-tst-leaks2): Likewise.
	* stdio-common/Makefile ($(objpfx)tst-unbputc.out): Likewise.
	($(objpfx)tst-printf.out): Likewise.
	($(objpfx)tst-setvbuf1.out): Likewise.
	($(objpfx)tst-setvbuf1-cmp.out): Likewise.
	* stdlib/Makefile ($(objpfx)isomac.out): Likewise.
	($(objpfx)tst-fmtmsg.out): Likewise.
	* string/Makefile ($(objpfx)tst-svc-cmp.out): Likewise.
	* sysdeps/x86/Makefile ($(objpfx)tst-xmmymm.out): Likewise.

localedata:
	* Makefile ($(objpfx)sort-test.out): Use $(evaluate-test).
	($(objpfx)tst-fmon.out): Likewise.
	($(objpfx)tst-numeric.out): Likewise.
	($(objpfx)tst-locale.out): Likewise.
	($(objpfx)tst-rpmatch.out): Likewise.
	($(objpfx)tst-trans.out): Likewise.
	($(objpfx)tst-mbswcs.out): Likewise.
	($(objpfx)tst-ctype.out): Likewise.
	($(objpfx)tst-wctype.out): Likewise.
	($(objpfx)tst-langinfo.out): Likewise.
	($(objpfx)mtrace-tst-leaks): Likewise.

nptl:
	* Makefile ($(objpfx)tst-stack3-mem): Use $(evaluate-test).
	($(objpfx)tst-tls6.out): Likewise.
	($(objpfx)tst-cleanup0.out): Likewise.
	($(objpfx)tst-cleanup0-cmp.out): Likewise.
	($(objpfx)tst-cancel-wrappers.out): Likewise.
	($(objpfx)tst-oddstacklimit.out): Likewise.

nptl_db:
	* Makefile ($(objpfx)db-symbols.out): Use
	$(evaluate-test).
-rw-r--r--ChangeLog73
-rw-r--r--Makefile9
-rw-r--r--Makerules12
-rw-r--r--catgets/Makefile12
-rw-r--r--conform/Makefile3
-rw-r--r--elf/Makefile63
-rw-r--r--grp/Makefile3
-rw-r--r--iconv/Makefile3
-rw-r--r--iconvdata/Makefile9
-rw-r--r--intl/Makefile18
-rw-r--r--io/Makefile3
-rw-r--r--libio/Makefile9
-rw-r--r--localedata/ChangeLog14
-rw-r--r--localedata/Makefile33
-rw-r--r--malloc/Makefile3
-rw-r--r--misc/Makefile3
-rw-r--r--nptl/ChangeLog9
-rw-r--r--nptl/Makefile18
-rw-r--r--nptl_db/ChangeLog5
-rw-r--r--nptl_db/Makefile3
-rw-r--r--posix/Makefile46
-rw-r--r--resolv/Makefile6
-rw-r--r--stdio-common/Makefile12
-rw-r--r--stdlib/Makefile6
-rw-r--r--string/Makefile3
-rw-r--r--sysdeps/x86/Makefile3
26 files changed, 288 insertions, 93 deletions
diff --git a/ChangeLog b/ChangeLog
index 41491f6b9d..0beb5fd6c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,78 @@
 2014-02-21  Joseph Myers  <joseph@codesourcery.com>
 
+	* Makefile ($(objpfx)c++-types-check.out): Use $(evaluate-test).
+	($(objpfx)check-local-headers.out): Likewise.
+	($(objpfx)begin-end-check.out): Likewise.
+	* Makerules (check-abi-%.out): Likewise.
+	* catgets/Makefile ($(objpfx)test1.cat): Likewise.
+	($(objpfx)test2.cat): Likewise.
+	($(objpfx)de/libc.cat): Likewise.
+	($(objpfx)test-gencat.out): Likewise.
+	* conform/Makefile ($(objpfx)run-conformtest.out): Likewise.
+	* elf/Makefile ($(objpfx)order-cmp.out): Likewise.
+	($(objpfx)noload-mem): Likewise.
+	($(objpfx)tst-pathopt.out): Likewise.
+	($(objpfx)tst-rtld-load-self.out): Likewise.
+	($(objpfx)tst-array1-cmp.out): Likewise.
+	($(objpfx)tst-array1-static-cmp.out): Likewise.
+	($(objpfx)tst-array2-cmp.out): Likewise.
+	($(objpfx)tst-array3-cmp.out): Likewise.
+	($(objpfx)tst-array4-cmp.out): Likewise.
+	($(objpfx)tst-array5-cmp.out): Likewise.
+	($(objpfx)tst-array5-static-cmp.out): Likewise.
+	($(objpfx)check-textrel.out): Likewise.
+	($(objpfx)check-execstack.out): Likewise.
+	($(objpfx)check-localplt.out): Likewise.
+	($(objpfx)order2-cmp.out): Likewise.
+	($(objpfx)tst-leaks1-mem): Likewise.
+	($(objpfx)tst-leaks1-static-mem): Likewise.
+	($(objpfx)tst-initorder-cmp.out): Likewise.
+	($(objpfx)tst-initorder2-cmp.out): Likewise.
+	($(objpfx)tst-unused-dep.out): Likewise.
+	($(objpfx)tst-unused-dep-cmp.out): Likewise.
+	* grp/Makefile ($(objpfx)tst_fgetgrent.out): Likewise.
+	* iconv/Makefile (test-iconvconfig): Likewise.
+	* iconvdata/Makefile ($(objpfx)mtrace-tst-loading): Likewise.
+	($(objpfx)iconv-test.out): Likewise.
+	($(objpfx)tst-tables.out): Likewise.
+	* intl/Makefile ($(objpfx)mtrace-tst-gettext): Likewise.
+	($(objpfx)tst-gettext.out): Likewise.
+	($(objpfx)tst-translit.out): Likewise.
+	($(objpfx)tst-gettext2.out): Likewise.
+	($(objpfx)tst-gettext4.out): Likewise.
+	($(objpfx)tst-gettext6.out): Likewise.
+	* io/Makefile ($(objpfx)ftwtest.out): Likewise.
+	* libio/Makefile ($(objpfx)test-freopen.out): Likewise.
+	($(objpfx)tst-fopenloc-cmp.out): Likewise.
+	($(objpfx)tst-fopenloc-mem.out): Likewise.
+	* malloc/Makefile ($(objpfx)tst-mtrace.out): Likewise.
+	* misc/Makefile ($(objpfx)tst-error1-mem): Likewise.
+	* posix/Makefile ($(objpfx)globtest.out): Likewise.
+	($(objpfx)wordexp-tst.out): Likewise.
+	($(objpfx)annexc.out): Likewise.
+	($(objpfx)tst-fnmatch-mem): Likewise.
+	($(objpfx)bug-regex2-mem): Likewise.
+	($(objpfx)bug-regex14-mem): Likewise.
+	($(objpfx)bug-regex21-mem): Likewise.
+	($(objpfx)bug-regex31-mem): Likewise.
+	($(objpfx)tst-vfork3-mem): Likewise.
+	($(objpfx)tst-rxspencer-no-utf8-mem): Likewise.
+	($(objpfx)tst-pcre-mem): Likewise.
+	($(objpfx)tst-boost-mem): Likewise.
+	($(objpfx)tst-getconf.out): Likewise.
+	($(objpfx)bug-ga2-mem): Likewise.
+	($(objpfx)bug-glob2-mem): Likewise.
+	* resolv/Makefile ($(objpfx)mtrace-tst-leaks): Likewise.
+	($(objpfx)mtrace-tst-leaks2): Likewise.
+	* stdio-common/Makefile ($(objpfx)tst-unbputc.out): Likewise.
+	($(objpfx)tst-printf.out): Likewise.
+	($(objpfx)tst-setvbuf1.out): Likewise.
+	($(objpfx)tst-setvbuf1-cmp.out): Likewise.
+	* stdlib/Makefile ($(objpfx)isomac.out): Likewise.
+	($(objpfx)tst-fmtmsg.out): Likewise.
+	* string/Makefile ($(objpfx)tst-svc-cmp.out): Likewise.
+	* sysdeps/x86/Makefile ($(objpfx)tst-xmmymm.out): Likewise.
+
 	* bits/fcntl.h [__USE_MISC]: Remove redundant conditionals.
 	* bits/sigaction.h [__USE_MISC]: Likewise.
 	* bits/waitstatus.h: Update #endif comments.
diff --git a/Makefile b/Makefile
index f24ba41a3a..a9b559716a 100644
--- a/Makefile
+++ b/Makefile
@@ -256,12 +256,14 @@ ifneq ($(CXX),no)
 vpath c++-types.data $(+sysdep_dirs)
 
 $(objpfx)c++-types-check.out: c++-types.data scripts/check-c++-types.sh
-	scripts/check-c++-types.sh $< $(CXX) $(filter-out -std=gnu99 -Wstrict-prototypes,$(CFLAGS)) $(CPPFLAGS) > $@
+	scripts/check-c++-types.sh $< $(CXX) $(filter-out -std=gnu99 -Wstrict-prototypes,$(CFLAGS)) $(CPPFLAGS) > $@; \
+	$(evaluate-test)
 endif
 
 $(objpfx)check-local-headers.out: scripts/check-local-headers.sh
 	AWK='$(AWK)' scripts/check-local-headers.sh \
-	  "$(includedir)" "$(objpfx)" > $@
+	  "$(includedir)" "$(objpfx)" > $@; \
+	$(evaluate-test)
 
 ifneq ($(PERL),no)
 installed-headers = argp/argp.h assert/assert.h catgets/nl_types.h \
@@ -310,7 +312,8 @@ installed-headers = argp/argp.h assert/assert.h catgets/nl_types.h \
 
 tests: $(objpfx)begin-end-check.out
 $(objpfx)begin-end-check.out: scripts/begin-end-check.pl
-	$(PERL) scripts/begin-end-check.pl $(installed-headers) > $@
+	$(PERL) scripts/begin-end-check.pl $(installed-headers) > $@; \
+	$(evaluate-test)
 endif
 
 # The realclean target is just like distclean for the parent, but we want
diff --git a/Makerules b/Makerules
index 54a347104f..59b28f7e36 100644
--- a/Makerules
+++ b/Makerules
@@ -1195,17 +1195,21 @@ generated += $(extra-libs:=.symlist)
 ifdef abilist-pattern
 $(objpfx)check-abi-%.out: $(common-objpfx)config.make $(abilist-pattern) \
 			  $(objpfx)%.symlist
-	$(check-abi-pattern)
+	$(check-abi-pattern); \
+	$(evaluate-test)
 $(objpfx)check-abi-%.out: $(common-objpfx)config.make $(abilist-pattern) \
 			  $(common-objpfx)%.symlist
-	$(check-abi-pattern)
+	$(check-abi-pattern); \
+	$(evaluate-test)
 endif
 $(objpfx)check-abi-%.out: $(common-objpfx)config.make %.abilist \
 			  $(objpfx)%.symlist
-	$(check-abi)
+	$(check-abi); \
+	$(evaluate-test)
 $(objpfx)check-abi-%.out: $(common-objpfx)config.make %.abilist \
 			  $(common-objpfx)%.symlist
-	$(check-abi)
+	$(check-abi); \
+	$(evaluate-test)
 define check-abi-pattern
 	diff -p -U 0 $(filter $(abilist-pattern),$^) $(filter %.symlist,$^) \
 	     > $@
diff --git a/catgets/Makefile b/catgets/Makefile
index c95442d369..7c2a1170e1 100644
--- a/catgets/Makefile
+++ b/catgets/Makefile
@@ -58,15 +58,18 @@ tests: $(objpfx)de/libc.cat $(objpfx)test1.cat $(objpfx)test2.cat \
 $(objpfx)test1.cat: test1.msg $(objpfx)gencat
 	LC_ALL=hr_HR.ISO-8859-2 LOCPATH=$(common-objpfx)localedata \
 	GCONV_PATH=$(common-objpfx)iconvdata \
-	$(built-program-cmd) -H $(objpfx)test1.h $@ $<
+	$(built-program-cmd) -H $(objpfx)test1.h $@ $<; \
+	$(evaluate-test)
 $(objpfx)test2.cat: test2.msg $(objpfx)gencat
 	LOCPATH=$(common-objpfx)localedata \
 	GCONV_PATH=$(common-objpfx)iconvdata \
-	$(built-program-cmd) -H $(objpfx)test2.h $@ $<
+	$(built-program-cmd) -H $(objpfx)test2.h $@ $<; \
+	$(evaluate-test)
 $(objpfx)de/libc.cat: $(objpfx)de.msg $(objpfx)gencat
 	$(make-target-directory)
 	LC_ALL=de_DE.ISO-8859-1 LOCPATH=$(common-objpfx)localedata \
-	GCONV_PATH=$(common-objpfx)iconvdata $(built-program-cmd) $@ $<
+	GCONV_PATH=$(common-objpfx)iconvdata $(built-program-cmd) $@ $<; \
+	$(evaluate-test)
 $(objpfx)tst-catgets.out: $(objpfx)de/libc.cat
 
 # Generate a non-simple input file.
@@ -75,7 +78,8 @@ $(objpfx)de.msg: xopen-msg.awk $(..)po/de.po
 
 $(objpfx)test-gencat.out: test-gencat.sh $(objpfx)test-gencat \
 			  $(objpfx)sample.SJIS.cat
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)'; \
+	$(evaluate-test)
 
 $(objpfx)sample.SJIS.cat: sample.SJIS $(objpfx)gencat
 	GCONV_PATH=$(common-objpfx)iconvdata LC_ALL=C \
diff --git a/conform/Makefile b/conform/Makefile
index df510d81ee..0761a1c294 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -32,6 +32,7 @@ $(objpfx)run-conformtest.out: run-conformtest.sh conformtest.pl \
 			      $(wildcard data/*.h-data) \
 			      $(wildcard data/*/*.h-data)
 	-$(BASH) -e $< $(objpfx) $(PERL) '$(CC)' \
-	  '-I../include $(+sysdep-includes) $(sysincludes) -I..'
+	  '-I../include $(+sysdep-includes) $(sysincludes) -I..'; \
+	$(evaluate-test)
 
 generated = $(wildcard $(objpfx)conform-*.out)
diff --git a/elf/Makefile b/elf/Makefile
index 6f4f2f81b5..863acd8627 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -641,7 +641,8 @@ ifeq ($(run-built-tests),yes)
 tests: $(objpfx)order-cmp.out
 endif
 $(objpfx)order-cmp.out: $(objpfx)order.out
-	(echo "0123456789" | cmp $< -) > $@
+	(echo "0123456789" | cmp $< -) > $@; \
+	$(evaluate-test)
 
 $(objpfx)vismain: $(addprefix $(objpfx),vismod1.so vismod2.so)
 $(objpfx)vismain.out: $(addprefix $(objpfx),vismod3.so)
@@ -652,7 +653,8 @@ LDFLAGS-noload = -rdynamic $(no-as-needed)
 $(objpfx)noload.out: $(objpfx)testobj5.so
 
 $(objpfx)noload-mem: $(objpfx)noload.out
-	$(common-objpfx)malloc/mtrace $(objpfx)noload.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)noload.mtrace > $@; \
+	$(evaluate-test)
 noload-ENV = MALLOC_TRACE=$(objpfx)noload.mtrace
 
 LDFLAGS-nodelete = -rdynamic
@@ -704,10 +706,12 @@ $(objpfx)lateglobal.out: $(objpfx)ltglobmod1.so $(objpfx)ltglobmod2.so
 $(objpfx)tst-pathopt: $(libdl)
 $(objpfx)tst-pathopt.out: tst-pathopt.sh $(objpfx)tst-pathopt \
 			  $(objpfx)pathoptobj.so
-	$(SHELL) $< $(common-objpfx) '$(test-wrapper-env)'
+	$(SHELL) $< $(common-objpfx) '$(test-wrapper-env)'; \
+	$(evaluate-test)
 
 $(objpfx)tst-rtld-load-self.out: tst-rtld-load-self.sh $(objpfx)ld.so
-	$(SHELL) $^ '$(test-wrapper)' '$(test-wrapper-env)' > $@
+	$(SHELL) $^ '$(test-wrapper)' '$(test-wrapper-env)' > $@; \
+	$(evaluate-test)
 
 $(objpfx)initfirst: $(libdl)
 $(objpfx)initfirst.out: $(objpfx)firstobj.so
@@ -857,31 +861,38 @@ tests: $(objpfx)tst-array1-cmp.out $(objpfx)tst-array1-static-cmp.out \
 endif
 
 $(objpfx)tst-array1-cmp.out: tst-array1.exp $(objpfx)tst-array1.out
-	cmp $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-array1-static-cmp.out: tst-array1.exp \
 				    $(objpfx)tst-array1-static.out
-	cmp $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-array2: $(objpfx)tst-array2dep.so
 $(objpfx)tst-array2-cmp.out: tst-array2.exp $(objpfx)tst-array2.out
-	cmp $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-array3-cmp.out: tst-array1.exp $(objpfx)tst-array3.out
-	cmp $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-array4: $(libdl)
 $(objpfx)tst-array4.out: $(objpfx)tst-array2dep.so
 $(objpfx)tst-array4-cmp.out: tst-array4.exp $(objpfx)tst-array4.out
-	cmp $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-array5: $(objpfx)tst-array5dep.so
 $(objpfx)tst-array5-cmp.out: tst-array5.exp $(objpfx)tst-array5.out
-	cmp $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-array5-static-cmp.out: tst-array5-static.exp \
 				$(objpfx)tst-array5-static.out
-	cmp $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 CFLAGS-tst-pie1.c += $(pie-ccflag)
 
@@ -905,7 +916,8 @@ common-generated += $(all-built-dso:$(common-objpfx)%=%.dyn)
 
 $(objpfx)check-textrel.out: $(..)scripts/check-textrel.awk \
 			    $(all-built-dso:=.dyn)
-	LC_ALL=C $(AWK) -f $^ > $@
+	LC_ALL=C $(AWK) -f $^ > $@; \
+	$(evaluate-test)
 generated += check-textrel.out
 
 $(objpfx)execstack-default: $(first-word $(wildcard $(sysdirs:%=%/stackinfo.h)))
@@ -932,7 +944,8 @@ common-generated += $(all-built-dso:$(common-objpfx)%=%.phdr)
 $(objpfx)check-execstack.out: $(..)scripts/check-execstack.awk \
 			      $(objpfx)execstack-default \
 			      $(all-built-dso:=.phdr)
-	LC_ALL=C $(AWK) -f $^ > $@
+	LC_ALL=C $(AWK) -f $^ > $@; \
+	$(evaluate-test)
 generated += check-execstack.out
 
 $(objpfx)tst-dlmodcount: $(libdl)
@@ -967,7 +980,8 @@ $(objpfx)check-localplt.out: $(..)scripts/check-localplt.awk \
 			     localplt.data
 	LC_ALL=C $(AWK) -f $(filter-out $< %localplt.data,$^) | \
 	  LC_ALL=C $(AWK) -f $< $(filter %localplt.data,$^) - \
-	  > $@
+	  > $@; \
+	$(evaluate-test)
 endif
 
 $(objpfx)tst-dlopenrpathmod.so: $(libdl)
@@ -1011,7 +1025,8 @@ endif
 $(objpfx)order2: $(libdl)
 $(objpfx)order2.out: $(objpfx)order2mod1.so $(objpfx)order2mod2.so
 $(objpfx)order2-cmp.out: $(objpfx)order2.out
-	(echo "12345" | cmp $< -) > $@
+	(echo "12345" | cmp $< -) > $@; \
+	$(evaluate-test)
 $(objpfx)order2mod1.so: $(objpfx)order2mod4.so
 $(objpfx)order2mod4.so: $(objpfx)order2mod3.so
 $(objpfx)order2mod2.so: $(objpfx)order2mod3.so
@@ -1030,11 +1045,13 @@ tst-ptrguard1-static-ARGS = --command "$(objpfx)tst-ptrguard1-static --child"
 
 $(objpfx)tst-leaks1: $(libdl)
 $(objpfx)tst-leaks1-mem: $(objpfx)tst-leaks1.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1.mtrace > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-leaks1-static: $(common-objpfx)dlfcn/libdl.a
 $(objpfx)tst-leaks1-static-mem: $(objpfx)tst-leaks1-static.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1-static.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks1-static.mtrace > $@; \
+	$(evaluate-test)
 
 tst-leaks1-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1.mtrace
 tst-leaks1-static-ENV = MALLOC_TRACE=$(objpfx)tst-leaks1-static.mtrace
@@ -1111,7 +1128,8 @@ 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 $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-initorder2: $(objpfx)tst-initorder2a.so $(objpfx)tst-initorder2d.so $(objpfx)tst-initorder2c.so
 $(objpfx)tst-initorder2a.so: $(objpfx)tst-initorder2b.so
@@ -1132,7 +1150,8 @@ 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 $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-relsort1: $(libdl)
 $(objpfx)tst-relsort1mod1.so: $(libm) $(objpfx)tst-relsort1mod2.so
@@ -1151,7 +1170,9 @@ $(objpfx)tst-unused-dep.out: $(objpfx)testobj1.so
 	LD_PRELOAD= \
 	$(elf-objpfx)${rtld-installed-name} \
 	  --library-path $(rpath-link)$(patsubst %,:%,$(sysdep-library-path)) \
-	  $< > $@
+	  $< > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-unused-dep-cmp.out: $(objpfx)tst-unused-dep.out
-	cmp $< /dev/null > $@
+	cmp $< /dev/null > $@; \
+	$(evaluate-test)
diff --git a/grp/Makefile b/grp/Makefile
index 3aa31760ea..b8d1d81db5 100644
--- a/grp/Makefile
+++ b/grp/Makefile
@@ -55,7 +55,8 @@ ifeq ($(run-built-tests),yes)
 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)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(evaluate-test)
 
 endif
 endif
diff --git a/iconv/Makefile b/iconv/Makefile
index e0d8ef18d6..ec3535412e 100644
--- a/iconv/Makefile
+++ b/iconv/Makefile
@@ -78,4 +78,5 @@ test-iconvconfig: /dev/null $(objpfx)iconvconfig
 	rm -f $$tmp; \
 	$(make-test-out) --output=$$tmp --nostdlib $(inst_gconvdir) && \
 	cmp $$tmp $(inst_gconvdir)/gconv-modules.cache && \
-	rm -f $$tmp
+	rm -f $$tmp; \
+	$(evaluate-test)
diff --git a/iconvdata/Makefile b/iconvdata/Makefile
index 5c2154e7bf..3a355208be 100644
--- a/iconvdata/Makefile
+++ b/iconvdata/Makefile
@@ -278,7 +278,8 @@ endif
 
 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 > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-loading.mtrace > $@; \
+	$(evaluate-test)
 
 $(objpfx)bug-iconv1.out: $(objpfx)gconv-modules \
 			 $(addprefix $(objpfx),$(modules.so))
@@ -299,13 +300,15 @@ $(objpfx)tst-iconv7.out: $(objpfx)gconv-modules \
 $(objpfx)iconv-test.out: run-iconv-test.sh $(objpfx)gconv-modules \
 			 $(addprefix $(objpfx),$(modules.so)) \
 			 $(common-objdir)/iconv/iconv_prog TESTS
-	$(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@
+	$(SHELL) $< $(common-objdir) '$(test-wrapper)' > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-tables.out: tst-tables.sh $(objpfx)gconv-modules \
 			 $(addprefix $(objpfx),$(modules.so)) \
 			 $(objpfx)tst-table-from $(objpfx)tst-table-to
 	$(SHELL) $< $(common-objpfx) $(common-objpfx)iconvdata/ \
-		'$(test-program-prefix)' > $@
+		'$(test-program-prefix)' > $@; \
+	$(evaluate-test)
 
 do-tests-clean common-mostlyclean: tst-tables-clean
 
diff --git a/intl/Makefile b/intl/Makefile
index 93d2f9d137..8a96a857f1 100644
--- a/intl/Makefile
+++ b/intl/Makefile
@@ -72,20 +72,26 @@ $(codeset_mo): tstcodeset.po
 	mv -f $@T $@
 
 $(objpfx)mtrace-tst-gettext: $(objpfx)tst-gettext.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-gettext.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-gettext.mtrace > $@; \
+	$(evaluate-test)
 $(objpfx)tst-gettext.out: tst-gettext.sh $(objpfx)tst-gettext
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' \
-	  $(common-objpfx)intl/ $(objpfx)tst-gettext.mtrace
+	  $(common-objpfx)intl/ $(objpfx)tst-gettext.mtrace; \
+	$(evaluate-test)
 $(objpfx)tst-translit.out: tst-translit.sh $(objpfx)tst-translit
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' \
-	  $(common-objpfx)intl/
+	  $(common-objpfx)intl/; \
+	$(evaluate-test)
 $(objpfx)tst-gettext2.out: tst-gettext2.sh $(objpfx)tst-gettext2
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' \
-	  $(common-objpfx)intl/
+	  $(common-objpfx)intl/; \
+	$(evaluate-test)
 $(objpfx)tst-gettext4.out: tst-gettext4.sh $(objpfx)tst-gettext4
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)intl/
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)intl/; \
+	$(evaluate-test)
 $(objpfx)tst-gettext6.out: tst-gettext6.sh $(objpfx)tst-gettext6
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)intl/
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)intl/; \
+	$(evaluate-test)
 
 $(objpfx)tst-codeset.out: $(codeset_mo)
 $(objpfx)tst-gettext3.out: $(codeset_mo)
diff --git a/io/Makefile b/io/Makefile
index 19d3a6b113..bb32b86eef 100644
--- a/io/Makefile
+++ b/io/Makefile
@@ -104,5 +104,6 @@ ifeq ($(run-built-tests),yes)
 tests: $(objpfx)ftwtest.out
 
 $(objpfx)ftwtest.out: ftwtest-sh $(objpfx)ftwtest
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@; \
+	$(evaluate-test)
 endif
diff --git a/libio/Makefile b/libio/Makefile
index 8c333ce8e0..9bbe71259d 100644
--- a/libio/Makefile
+++ b/libio/Makefile
@@ -187,11 +187,14 @@ endif
 
 $(objpfx)test-freopen.out: test-freopen.sh $(objpfx)test-freopen
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'	\
-	$(common-objpfx)libio/
+	$(common-objpfx)libio/; \
+	$(evaluate-test)
 
 $(objpfx)tst-fopenloc-cmp.out: ../iconvdata/testdata/ISO-8859-1..UTF8 \
 			       $(objpfx)tst-fopenloc.out
-	cmp $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-fopenloc-mem.out: $(objpfx)tst-fopenloc.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-fopenloc.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-fopenloc.mtrace > $@; \
+	$(evaluate-test)
diff --git a/localedata/ChangeLog b/localedata/ChangeLog
index a5707677b5..1857fc1f81 100644
--- a/localedata/ChangeLog
+++ b/localedata/ChangeLog
@@ -1,3 +1,17 @@
+2014-02-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* Makefile ($(objpfx)sort-test.out): Use $(evaluate-test).
+	($(objpfx)tst-fmon.out): Likewise.
+	($(objpfx)tst-numeric.out): Likewise.
+	($(objpfx)tst-locale.out): Likewise.
+	($(objpfx)tst-rpmatch.out): Likewise.
+	($(objpfx)tst-trans.out): Likewise.
+	($(objpfx)tst-mbswcs.out): Likewise.
+	($(objpfx)tst-ctype.out): Likewise.
+	($(objpfx)tst-wctype.out): Likewise.
+	($(objpfx)tst-langinfo.out): Likewise.
+	($(objpfx)mtrace-tst-leaks): Likewise.
+
 2013-12-26  Chris Leonard  <cjl@sugarlabs.org>
 
 	* locales/sa_IN: Add lang_name.
diff --git a/localedata/Makefile b/localedata/Makefile
index 7d157bff42..a69ec41aee 100644
--- a/localedata/Makefile
+++ b/localedata/Makefile
@@ -148,45 +148,55 @@ tests: $(objpfx)sort-test.out $(objpfx)tst-fmon.out $(objpfx)tst-locale.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) \
-	  > $@
+	  > $@; \
+	$(evaluate-test)
 $(objpfx)tst-fmon.out: tst-fmon.sh $(objpfx)tst-fmon tst-fmon.data \
 		       $(objpfx)sort-test.out \
 		       $(addprefix $(objpfx),$(CTYPE_FILES))
 	$(SHELL) $< $(common-objpfx) '$(run-program-prefix)' \
 		'$(test-program-prefix)' tst-fmon.data  \
-	  > $@
+	  > $@; \
+	$(evaluate-test)
 $(objpfx)tst-numeric.out: tst-numeric.sh $(objpfx)tst-numeric tst-numeric.data \
 		       $(objpfx)sort-test.out \
 		       $(addprefix $(objpfx),$(CTYPE_FILES))
 	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' tst-numeric.data \
-	  > $@
+	  > $@; \
+	$(evaluate-test)
 $(objpfx)tst-locale.out: tst-locale.sh $(common-objpfx)locale/localedef \
 			 $(ld-test-srcs) $(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(built-program-cmd)' > $@
+	$(SHELL) $< $(common-objpfx) '$(built-program-cmd)' > $@; \
+	$(evaluate-test)
 $(objpfx)tst-rpmatch.out: tst-rpmatch.sh $(objpfx)tst-rpmatch \
 			  $(objpfx)tst-fmon.out \
 			  $(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)' > $@; \
+	$(evaluate-test)
 $(objpfx)tst-trans.out: tst-trans.sh $(objpfx)tst-trans \
 			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(run-program-prefix)' '$(test-program-prefix)'
+	$(SHELL) $< $(common-objpfx) '$(run-program-prefix)' '$(test-program-prefix)'; \
+	$(evaluate-test)
 $(objpfx)tst-mbswcs.out: tst-mbswcs.sh $(objpfx)tst-mbswcs1 \
 			 $(objpfx)tst-mbswcs2 $(objpfx)tst-mbswcs3 \
 			 $(objpfx)tst-mbswcs4 $(objpfx)tst-mbswcs5 \
 			 $(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(evaluate-test)
 $(objpfx)tst-ctype.out: tst-ctype.sh $(objpfx)tst-ctype \
 			$(objpfx)sort-test.out \
 			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)'; \
+	$(evaluate-test)
 $(objpfx)tst-wctype.out: tst-wctype.sh $(objpfx)tst-wctype \
 			$(objpfx)sort-test.out tst-wctype.input \
 			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)'; \
+	$(evaluate-test)
 $(objpfx)tst-langinfo.out: tst-langinfo.sh $(objpfx)tst-langinfo \
 			$(objpfx)sort-test.out \
 			$(addprefix $(objpfx),$(CTYPE_FILES))
-	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-cmd)'; \
+	$(evaluate-test)
 $(objpfx)tst-digits.out: $(objpfx)tst-locale.out
 $(objpfx)tst-mbswcs6.out: $(addprefix $(objpfx),$(CTYPE_FILES))
 endif
@@ -285,7 +295,8 @@ tst-sscanf-ENV = LOCPATH=$(common-objpfx)localedata
 tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace \
 		LOCPATH=$(common-objpfx)localedata
 $(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@; \
+	$(evaluate-test)
 
 bug-setlocale1-ENV = LOCPATH=$(common-objpfx)localedata
 bug-setlocale1-ARGS = -- $(host-test-program-cmd)
diff --git a/malloc/Makefile b/malloc/Makefile
index 5db93dbf06..d2d3c8e0a1 100644
--- a/malloc/Makefile
+++ b/malloc/Makefile
@@ -111,7 +111,8 @@ 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)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(evaluate-test)
 endif
 endif
 endif
diff --git a/misc/Makefile b/misc/Makefile
index b039182fa0..66d0ab7b18 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -111,4 +111,5 @@ endif
 tst-error1-ENV = MALLOC_TRACE=$(objpfx)tst-error1.mtrace
 tst-error1-ARGS = $(objpfx)tst-error1.out
 $(objpfx)tst-error1-mem: $(objpfx)tst-error1.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-error1.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-error1.mtrace > $@; \
+	$(evaluate-test)
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index bc8ae0d759..793b662f4c 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,12 @@
+2014-02-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* Makefile ($(objpfx)tst-stack3-mem): Use $(evaluate-test).
+	($(objpfx)tst-tls6.out): Likewise.
+	($(objpfx)tst-cleanup0.out): Likewise.
+	($(objpfx)tst-cleanup0-cmp.out): Likewise.
+	($(objpfx)tst-cancel-wrappers.out): Likewise.
+	($(objpfx)tst-oddstacklimit.out): Likewise.
+
 2014-02-14  Joseph Myers  <joseph@codesourcery.com>
 
 	* Makefile ($(objpfx)tst-cleanup0.out): Do not run cmp.
diff --git a/nptl/Makefile b/nptl/Makefile
index 889552ffc1..253e7dd293 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -462,7 +462,8 @@ 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 > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-stack3.mtrace > $@; \
+	$(evaluate-test)
 generated += tst-stack3-mem tst-stack3.mtrace
 
 $(objpfx)tst-cleanup4: $(objpfx)tst-cleanup4aux.o $(shared-thread-library)
@@ -489,7 +490,8 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
 		       $(objpfx)tst-tls5modc.so $(objpfx)tst-tls5modd.so \
 		       $(objpfx)tst-tls5mode.so $(objpfx)tst-tls5modf.so
 	$(BASH) $< $(common-objpfx) '$(test-via-rtld-prefix)' \
-	  '$(test-wrapper-env)'
+	  '$(test-wrapper-env)'; \
+	$(evaluate-test)
 endif
 
 $(objpfx)tst-dlsym1: $(libdl) $(shared-thread-library)
@@ -542,13 +544,15 @@ endif
 ifeq ($(build-shared),yes)
 
 $(objpfx)tst-cleanup0.out: /dev/null $(objpfx)tst-cleanup0
-	$(make-test-out) > $@ 2>&1
+	$(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 $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 $(objpfx)crti.o: $(objpfx)pt-crti.o
 	ln -f $< $@
@@ -585,7 +589,8 @@ $(objpfx)tst-cancel-wrappers.out: tst-cancel-wrappers.sh
 		    $(common-objpfx)libc_pic.a \
 		    $(common-objpfx)libc.a \
 		    $(objpfx)libpthread_pic.a \
-		    $(objpfx)libpthread.a > $@
+		    $(objpfx)libpthread.a > $@; \
+	$(evaluate-test)
 endif
 endif
 
@@ -604,7 +609,8 @@ 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)' > $@
+	$(test-program-prefix) $< --command '$(host-test-program-cmd)' > $@; \
+	$(evaluate-test)
 endif
 
 # The tests here better do not run in parallel
diff --git a/nptl_db/ChangeLog b/nptl_db/ChangeLog
index e0935e380b..f4787ee2d8 100644
--- a/nptl_db/ChangeLog
+++ b/nptl_db/ChangeLog
@@ -1,3 +1,8 @@
+2014-02-21  Joseph Myers  <joseph@codesourcery.com>
+
+	* Makefile ($(objpfx)db-symbols.out): Use
+	$(evaluate-test).
+
 2013-05-31  Joseph Myers  <joseph@codesourcery.com>
 
 	* Makefile ($(objpfx)libthread_db.so): Remove dependencies on
diff --git a/nptl_db/Makefile b/nptl_db/Makefile
index 93aad1909b..5d20dd5427 100644
--- a/nptl_db/Makefile
+++ b/nptl_db/Makefile
@@ -54,6 +54,7 @@ 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 $< > $@
+	LC_ALL=C $(READELF) -W -s $(filter %.so,$^) | $(AWK) -f $< > $@; \
+	$(evaluate-test)
 
 $(objpfx)db-symbols.v.i: db-symbols.awk
diff --git a/posix/Makefile b/posix/Makefile
index 2c9868ed83..ea06d392be 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -121,9 +121,11 @@ 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)'
+		'$(test-program-prefix)' '$(test-wrapper-env)'; \
+	$(evaluate-test)
 $(objpfx)wordexp-tst.out: wordexp-tst.sh $(objpfx)wordexp-test
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(evaluate-test)
 endif
 endif
 
@@ -233,7 +235,8 @@ endif
 
 $(objpfx)annexc.out: $(objpfx)annexc
 	-$(dir $<)$(notdir $<) '$(CC)' \
-	  '$(patsubst %,-I../%,$(sorted-subdirs)) -I../include $(+sysdep-includes) $(sysincludes) -I..' > $@
+	  '$(patsubst %,-I../%,$(sorted-subdirs)) -I../include $(+sysdep-includes) $(sysincludes) -I..' > $@; \
+	$(evaluate-test)
 
 annexc-CFLAGS = -O
 $(objpfx)annexc: annexc.c
@@ -242,60 +245,73 @@ $(objpfx)annexc: annexc.c
 tst-fnmatch-ENV += MALLOC_TRACE=$(objpfx)tst-fnmatch.mtrace
 
 $(objpfx)tst-fnmatch-mem: $(objpfx)tst-fnmatch.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-fnmatch.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-fnmatch.mtrace > $@; \
+	$(evaluate-test)
 
 bug-regex2-ENV = MALLOC_TRACE=$(objpfx)bug-regex2.mtrace
 
 $(objpfx)bug-regex2-mem: $(objpfx)bug-regex2.out
-	$(common-objpfx)malloc/mtrace $(objpfx)bug-regex2.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)bug-regex2.mtrace > $@; \
+	$(evaluate-test)
 
 bug-regex14-ENV = MALLOC_TRACE=$(objpfx)bug-regex14.mtrace
 
 $(objpfx)bug-regex14-mem: $(objpfx)bug-regex14.out
-	$(common-objpfx)malloc/mtrace $(objpfx)bug-regex14.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)bug-regex14.mtrace > $@; \
+	$(evaluate-test)
 
 bug-regex21-ENV = MALLOC_TRACE=$(objpfx)bug-regex21.mtrace
 
 $(objpfx)bug-regex21-mem: $(objpfx)bug-regex21.out
-	$(common-objpfx)malloc/mtrace $(objpfx)bug-regex21.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)bug-regex21.mtrace > $@; \
+	$(evaluate-test)
 
 bug-regex31-ENV = MALLOC_TRACE=$(objpfx)bug-regex31.mtrace
 
 $(objpfx)bug-regex31-mem: $(objpfx)bug-regex31.out
-	$(common-objpfx)malloc/mtrace $(objpfx)bug-regex31.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)bug-regex31.mtrace > $@; \
+	$(evaluate-test)
 
 tst-vfork3-ENV = MALLOC_TRACE=$(objpfx)tst-vfork3.mtrace
 
 $(objpfx)tst-vfork3-mem: $(objpfx)tst-vfork3.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-vfork3.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-vfork3.mtrace > $@; \
+	$(evaluate-test)
 
 # tst-rxspencer.mtrace is not generated, only
 # tst-rxspencer-no-utf8.mtrace, since otherwise the file has almost
 # 100M and takes very long time to process.
 tst-rxspencer-no-utf8-ENV += MALLOC_TRACE=$(objpfx)tst-rxspencer-no-utf8.mtrace
 $(objpfx)tst-rxspencer-no-utf8-mem: $(objpfx)tst-rxspencer-no-utf8.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-rxspencer-no-utf8.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-rxspencer-no-utf8.mtrace \
+				      > $@; \
+	$(evaluate-test)
 
 tst-pcre-ENV = MALLOC_TRACE=$(objpfx)tst-pcre.mtrace
 $(objpfx)tst-pcre-mem: $(objpfx)tst-pcre.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-pcre.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-pcre.mtrace > $@; \
+	$(evaluate-test)
 
 tst-boost-ENV = MALLOC_TRACE=$(objpfx)tst-boost.mtrace
 $(objpfx)tst-boost-mem: $(objpfx)tst-boost.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-boost.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-boost.mtrace > $@; \
+	$(evaluate-test)
 
 $(objpfx)tst-getconf.out: tst-getconf.sh $(objpfx)getconf
-	$(SHELL) $< $(common-objpfx) '$(built-program-cmd)'
+	$(SHELL) $< $(common-objpfx) '$(built-program-cmd)'; \
+	$(evaluate-test)
 
 $(objpfx)bug-ga2-mem: $(objpfx)bug-ga2.out
-	$(common-objpfx)malloc/mtrace $(objpfx)bug-ga2.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)bug-ga2.mtrace > $@; \
+	$(evaluate-test)
 
 bug-ga2-ENV = MALLOC_TRACE=$(objpfx)bug-ga2.mtrace
 
 bug-glob2-ENV = MALLOC_TRACE=$(objpfx)bug-glob2.mtrace
 
 $(objpfx)bug-glob2-mem: $(objpfx)bug-glob2.out
-	$(common-objpfx)malloc/mtrace $(objpfx)bug-glob2.mtrace > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)bug-glob2.mtrace > $@; \
+	$(evaluate-test)
 
 $(inst_libexecdir)/getconf: $(inst_bindir)/getconf \
 			    $(objpfx)getconf.speclist FORCE
diff --git a/resolv/Makefile b/resolv/Makefile
index b96b8ed927..7a102cd443 100644
--- a/resolv/Makefile
+++ b/resolv/Makefile
@@ -94,7 +94,8 @@ $(objpfx)ga_test: $(objpfx)libanl.so $(shared-thread-library)
 $(objpfx)tst-leaks: $(objpfx)libresolv.so
 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 > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@; \
+	$(evaluate-test)
 ifeq ($(run-built-tests),yes)
 ifneq (no,$(PERL))
 tests: $(objpfx)mtrace-tst-leaks
@@ -103,7 +104,8 @@ 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 > $@
+	$(common-objpfx)malloc/mtrace $(objpfx)tst-leaks2.mtrace > $@; \
+	$(evaluate-test)
 ifeq ($(run-built-tests),yes)
 ifneq (no,$(PERL))
 xtests: $(objpfx)mtrace-tst-leaks2
diff --git a/stdio-common/Makefile b/stdio-common/Makefile
index c0fd97321a..c401f25fbb 100644
--- a/stdio-common/Makefile
+++ b/stdio-common/Makefile
@@ -67,10 +67,12 @@ 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)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(evaluate-test)
 
 $(objpfx)tst-printf.out: tst-printf.sh $(objpfx)tst-printf
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
+	$(evaluate-test)
 endif
 
 CFLAGS-vfprintf.c = -Wno-uninitialized
@@ -129,10 +131,12 @@ tests: $(objpfx)tst-setvbuf1-cmp.out
 endif
 
 $(objpfx)tst-setvbuf1.out: /dev/null $(objpfx)tst-setvbuf1
-	$(test-program-cmd) > $@ 2>&1
+	$(test-program-cmd) > $@ 2>&1; \
+	$(evaluate-test)
 
 $(objpfx)tst-setvbuf1-cmp.out: tst-setvbuf1.expect $(objpfx)tst-setvbuf1.out
-	cmp $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 
 ifeq ($(build-shared),yes)
 link-libm = $(common-objpfx)math/libm.so
diff --git a/stdlib/Makefile b/stdlib/Makefile
index 1be16eb8d0..8e5623c89d 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -132,14 +132,16 @@ endif
 
 $(objpfx)isomac.out: $(objpfx)isomac
 	$(dir $<)$(notdir $<) '$(CC)'  \
-	'-I../include $(+sysdep-includes) $(sysincludes) -I..' > $<.out
+	'-I../include $(+sysdep-includes) $(sysincludes) -I..' > $<.out; \
+	$(evaluate-test)
 
 isomac-CFLAGS = -O
 $(objpfx)isomac: isomac.c
 	$(native-compile)
 
 $(objpfx)tst-fmtmsg.out: tst-fmtmsg.sh $(objpfx)tst-fmtmsg
-	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)stdlib/
+	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)' $(common-objpfx)stdlib/; \
+	$(evaluate-test)
 
 $(objpfx)tst-putenv: $(objpfx)tst-putenvmod.so
 LDFLAGS-tst-putenv = $(no-as-needed)
diff --git a/string/Makefile b/string/Makefile
index af0eece785..3759229587 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -76,5 +76,6 @@ 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 $^ > $@
+	cmp $^ > $@; \
+	$(evaluate-test)
 endif
diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
index 3e87a77069..80d03d5b07 100644
--- a/sysdeps/x86/Makefile
+++ b/sysdeps/x86/Makefile
@@ -5,5 +5,6 @@ CFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
 tests: $(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)' > $@
+	$(SHELL) $< $(objpfx) '$(NM)' '$(OBJDUMP)' '$(READELF)' > $@; \
+	$(evaluate-test)
 endif