This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Replace conformtest.pl with conformtest.py [committed]
On Fri, 9 Nov 2018, Florian Weimer wrote:
> * Joseph Myers:
>
> > Continuing the consolidation on Python for various miscellaneous build
> > and test scripts, this patch moves conformtest from Perl to Python.
>
> For me, this increases test time for conform/ from 97 seconds to
> 126 seconds, perhaps due to the increased startup overhead of Python
> compared to Perl.
>
> Is there a way we can recover some of the additional overhead? Perhaps
> by doing more work in a single Python invocation?
The division into separate processes for each (standard, header) pair
(some time ago) was to enable those tests to run in parallel (apart from
allowing more precise XFAILing). So I don't think recombining tests into
a single Python invocation, and so losing that parallelism, is such a good
idea.
What ought to be plausible is to reduce the number of *compiler*
invocations - further separate generating the text of a test from actually
running it, arrange for tests to use automatically-generated unique
identifiers instead of hardcoded identifiers, and then concatenate all
tests that aren't "optional" or "xfail" into a single file, trying
compiling that and only compiling the individual tests separately if
building the combined file fails. (The vast bulk of time spent running
these tests is in the compiler; you can get more specific figures for your
system by replacing the subprocess.check_call call in compile_test with
"pass". I don't know how much of that is compiler startup overhead that
would be saved by using a combined compiler execution.)
--
Joseph S. Myers
joseph@codesourcery.com