Comment #1 on issue 802 by [email protected]: Ganeti doesn't build on
Debian Jessie
http://code.google.com/p/ganeti/issues/detail?id=802
This is a side-effect of automake 1.13 changing the default test harness
from
serial-tests to parallel-tests. From the changelog of 1.12 that introduced
the
parallel test harness (although not as default):
- The default testsuite driver offered by the 'parallel-tests' option is
now implemented (partly at least) with the help of automake-provided
auxiliary scripts (e.g., 'test-driver'), instead of relying entirely
on code in the generated Makefile.in.
This has two noteworthy implications. The first one is that projects
using the 'parallel-tests' option should now either run automake with
the '--add-missing' option, or manually copy the 'test-driver' script
into their tree. The second, and more important, implication is that
now, when the 'parallel-tests' option is in use, TESTS_ENVIRONMENT can
no longer be used to define a test runner, and the command specified
in LOG_COMPILER (and <ext>_LOG_COMPILER) must be a *real* executable
program or script. For example, this is still a valid usage (albeit
a little contorted):
TESTS_ENVIRONMENT = \
if test -n '$(STRICT_TESTS)'; then \
maybe_errexit='-e'; \
else \
maybe_errexit=''; \
fi;
LOG_COMPILER = $(SHELL) $$maybe_errexit
OTOH, this is no longer a valid usage:
TESTS_ENVIRONMENT = \
$(SHELL) `test -n '$(STRICT_TESTS_CHECKING)' && echo ' -e'`
neither is this:
TESTS_ENVIRONMENT = \
run_with_perl_or_shell () \
{ \
if grep -q '^#!.*perl' $$1; then
$(PERL) $$1; \
else \
$(SHELL) $$1; \
fi; \
}
LOG_COMPILER = run_with_perl_or_shell
A workaround for the moment being is to revert to pre-1.13 defaults, by
setting
the serial-tests automake option in Makefile.am. In the long term, we should
move all binaries to LOG_COMPILER, which will be future-proof and make sure
that the tests can run in parallel.
Regarding LOG_COMPILER, the following extract from automake's texinfo might
be helpful:
It's important to note that, differently from what we've seen for the
serial test harness (*note Parallel Test Harness::), the
'AM_TESTS_ENVIRONMENT' and 'TESTS_ENVIRONMENT' variables _cannot_ be use
to define a custom test runner; the 'LOG_COMPILER' and 'LOG_FLAGS' (or
their extension-specific counterparts) should be used instead:
## This is WRONG!
AM_TESTS_ENVIRONMENT = PERL5LIB='$(srcdir)/lib' $(PERL) -Mstrict -w
## Do this instead.
AM_TESTS_ENVIRONMENT = PERL5LIB='$(srcdir)/lib'; export PERL5LIB;
LOG_COMPILER = $(PERL)
AM_LOG_FLAGS = -Mstrict -w
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings