BIND 10 #3243: The serial unit tests execution is not possible for automake 1.13 and later
BIND 10 Development
do-not-reply at isc.org
Thu Nov 14 18:59:11 UTC 2013
#3243: The serial unit tests execution is not possible for automake 1.13 and later
-------------------------------------+-------------------------------------
Reporter: | Owner: UnAssigned
marcin | Status: new
Type: | Milestone: New Tasks
enhancement | Keywords:
Priority: | Sensitive: 0
medium | Sub-Project: Core
Component: build | Estimated Difficulty: 0
system | Total Hours: 0
CVSS Scoring: |
Defect Severity: N/A |
Feature Depending on Ticket: |
Add Hours to Ticket: 0 |
Internal?: 0 |
-------------------------------------+-------------------------------------
Starting from automake 1.13 the test suites are executed in the parallel
mode. Along with this, the unit tests output is not logged to the console,
but rather to file. This is very inconvenient for the following reasons:
- I have to go to individual logs to see what went wrong if my unit tests
fail. Note that we have a lot of test suites in bind10
- I have no output from the tests execution if they all pass. I rather
have a summary.
Here is the sample output from the successfully executed test suite:
{{{
make[9]: Leaving directory
`/home/b10builder/builder/work/BIND10/20131114133526-FedoraLinux-
x86_64-GCC/build/src/lib/util/threads/tests'
============================================================================
Testsuite summary for bind10 20130529
============================================================================
# TOTAL: 1
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
}}}
It tells me nothing about the test cases being run. This may cause
additional problems with diagnosing problems when unit tests are executed
on the build farm - browsing multiple logs may be tricky on the build
farm.
It seems that the configure.ac has already got a hack for this:
{{{
# serial-tests is not available in automake version before 1.13. In
# automake 1.13 and higher, AM_PROG_INSTALL is undefined, so we'll check
# that and conditionally use serial-tests.
AM_INIT_AUTOMAKE(
[foreign]
m4_ifndef([AM_PROG_INSTALL], [serial-tests])
)
}}}
which relies on the presence or absence of the macro to check the current
version of the automake. It seems that the absence of the macro doesn't
give a reliable indication of the automake version. From what I have read,
the macros have been moved back and forth between versions of automake.
Also, I don't know the easy and portable way to check the version of the
automake from the configure.ac.
My suggestion is that we add an extra parameter to configure.ac (say
--enable-serial-tests) to turn the serial test mode. The behaviour will be
serial-mode for automake prior to 1.13 and parallel mode after 1.13.
--
Ticket URL: <http://bind10.isc.org/ticket/3243>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list