mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-20 18:56:39 +02:00
tests: allow to run Perl tests more cleanly
Before this change, perl tests were run via a #!/bin/sh script in which perl was invoked via $(PERL) ... -- - <<\EOF. That made some stty tests fail due to the way stdin was usurped. * build-aux/check.mk (am__check_pre): Don't append $(SHELL) to this nominally automake-internal variable. * tests/check.mk (TESTS_ENVIRONMENT): Instead, define a shell function here, and append it to the more user-visible $(TESTS_ENVIRONMENT).
This commit is contained in:
@@ -113,7 +113,7 @@ if test -f "./$$src"; then dir=./; \
|
||||
elif test -f "$$src"; then dir=; \
|
||||
else dir="$(srcdir)/"; fi; \
|
||||
__SAVED_TERM=$$TERM; \
|
||||
$(TESTS_ENVIRONMENT) $(SHELL)
|
||||
$(TESTS_ENVIRONMENT)
|
||||
|
||||
# To be appended to the command running the test. Handles the stdout
|
||||
# and stderr redirection, and catch the exit status.
|
||||
|
||||
@@ -50,6 +50,20 @@ built_programs = \
|
||||
TESTS_ENVIRONMENT = \
|
||||
. $(top_srcdir)/tests/lang-default; \
|
||||
. $(top_srcdir)/tests/envvar-check; \
|
||||
shell_or_perl_() { \
|
||||
if grep '^\#!/usr/bin/perl' "$$1" > /dev/null; then \
|
||||
if $(PERL) -e 'use warnings' > /dev/null 2>&1; then \
|
||||
$(PERL) -w -I$(top_srcdir)/tests -MCoreutils \
|
||||
-M"CuTmpdir qw($$tst)" -- "$$1"; \
|
||||
else \
|
||||
echo 1>&2 "$$tst: configure did not find a usable version of Perl," \
|
||||
"so skipping this test"; \
|
||||
(exit 77); \
|
||||
fi; \
|
||||
else \
|
||||
$(SHELL) "$$1"; \
|
||||
fi; \
|
||||
}; \
|
||||
LOCALE_FR='$(LOCALE_FR)' \
|
||||
abs_top_builddir='$(abs_top_builddir)' \
|
||||
abs_top_srcdir='$(abs_top_srcdir)' \
|
||||
@@ -67,7 +81,8 @@ TESTS_ENVIRONMENT = \
|
||||
PACKAGE_VERSION=$(PACKAGE_VERSION) \
|
||||
PERL='$(PERL)' \
|
||||
REPLACE_GETCWD=$(REPLACE_GETCWD) \
|
||||
PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH"
|
||||
PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH" \
|
||||
shell_or_perl_
|
||||
|
||||
TEST_LOGS = $(TESTS:=.log)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user