summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2011-02-09 17:08:58 +0100
committerJim Meyering <meyering@redhat.com>2011-02-10 08:50:14 +0100
commitee6c466ba807fb16f3d37c72ece5ec28fb6c87fc (patch)
tree362428deb747dd3a60fc377655f8ada667d98713
parent5c3fd50a751a93acf5ad7bb69d01261267a53a1e (diff)
downloadcoreutils-ee6c466ba807fb16f3d37c72ece5ec28fb6c87fc.tar.xz
tests: avoid gross inefficiency in "make test"
Do not run a sub-make to set up the environment for each and every test script. Instead, run it just once and store the result in a file. * tests/check.mk (built_programs): Remove definition. (.built-programs): New rule to create the temporary file. (CLEANFILES): Arrange to remove it. (TESTS_ENVIRONMENT): Simply cat .built-programs, rather than running the sub-make. * .gitignore: Ignore it.
-rw-r--r--.gitignore1
-rw-r--r--tests/check.mk11
2 files changed, 9 insertions, 3 deletions
diff --git a/.gitignore b/.gitignore
index 7fead3d49..138e72abb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -76,6 +76,7 @@
/stamp-h1
/tests/*/*.log
/tests/t?
+/tests/.built-programs
/tests/test-suite.log
ID
Makefile
diff --git a/tests/check.mk b/tests/check.mk
index f931806d2..b80dce8ac 100644
--- a/tests/check.mk
+++ b/tests/check.mk
@@ -40,8 +40,13 @@ vc_exe_in_TESTS: Makefile
check: vc_exe_in_TESTS
.PHONY: vc_exe_in_TESTS
-built_programs = \
- (cd $(top_builddir)/src && MAKEFLAGS= $(MAKE) -s built_programs.list)
+CLEANFILES =
+CLEANFILES += .built-programs
+check-am: .built-programs
+.built-programs:
+ $(AM_V_GEN)cd $(top_builddir)/src \
+ && MAKEFLAGS= $(MAKE) -s built_programs.list \
+ > $@-t && mv $@-t $@
# Note that the first lines are statements. They ensure that environment
# variables that can perturb tests are unset or set to expected values.
@@ -76,7 +81,7 @@ TESTS_ENVIRONMENT = \
abs_top_builddir='$(abs_top_builddir)' \
abs_top_srcdir='$(abs_top_srcdir)' \
abs_srcdir='$(abs_srcdir)' \
- built_programs="`$(built_programs)`" \
+ built_programs="`cat .built-programs`" \
host_os=$(host_os) \
host_triplet='$(host_triplet)' \
srcdir='$(srcdir)' \