summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2022-01-24 01:02:41 -0500
committerMike Frysinger <vapier@gentoo.org>2022-01-24 22:01:48 -0500
commitcd995fe624f2efe9fa2ba0e8c8a89fa0f57d32bb (patch)
tree23627d5e5cb38a2793ddc62300a9ff3fa15c2731
parent4c2c73bf72fdd060956dede8ece73504e8fc974f (diff)
downloadautomake-cd995fe624f2efe9fa2ba0e8c8a89fa0f57d32bb.tar.gz
tests: clear autotools env vars
Fixes automake bug https://bugs.gnu.org/16714. The testsuite will try and retain these env vars when recursively running itself, but doesn't distinguish between vars coming from the env where the tests were launched. This breaks if the user happens to `export ACLOCAL=alocal` before `make check`. This gets a little more confusing in that the Makefile appears to export these already: ACLOCAL = ".../automake/pre-inst-env" aclocal-1.16 In reality, while those are set in the make execution environment, they aren't exported into the process environment, so children (i.e. shell processes in make rules) don't have them set. That's why tests work for most people today. However, if the user has first exported "ACLOCAL" in the parent make environment (regardless of value), then make's value will reset the process environment, and then that will leak into the children. That's why we see errors that look like the makefile env vars are leaking for these people. At any rate, the fix is to update the test harness to clear these vars that the test suite relies upon, especially the ones that are also set in the Makefiles. That includes AUTOUPDATE even though it currently isn't used inside any of the tests. * t/local.mk: Add ACLOCAL, AUTOCONF, AUTOHEADER, AUTOMAKE, and AUTOUPDATE to the env unset list. * t/ax/runtest.in: Likewise.
-rw-r--r--t/ax/runtest.in5
-rw-r--r--t/local.mk5
2 files changed, 10 insertions, 0 deletions
diff --git a/t/ax/runtest.in b/t/ax/runtest.in
index 499b85299..91a5afd52 100644
--- a/t/ax/runtest.in
+++ b/t/ax/runtest.in
@@ -45,6 +45,11 @@ export srcdir
# test scripts, but not from the environment.
# Keep this in sync with the 'Makefile.am:AM_TESTS_ENVIRONMENT'.
for v in \
+ ACLOCAL \
+ AUTOCONF \
+ AUTOHEADER \
+ AUTOMAKE \
+ AUTOUPDATE \
required \
am_test_protocol \
am_serial_tests \
diff --git a/t/local.mk b/t/local.mk
index 31d43e868..8a7cab3b2 100644
--- a/t/local.mk
+++ b/t/local.mk
@@ -42,6 +42,11 @@ TESTS =
# Keep this in sync with the similar list in ax/runtest.in.
AM_TESTS_ENVIRONMENT = \
for v in \
+ ACLOCAL \
+ AUTOCONF \
+ AUTOHEADER \
+ AUTOMAKE \
+ AUTOUPDATE \
required \
am_test_protocol \
am_serial_tests \