This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]