]> sourceware.org Git - glibc.git/commit
Combine more conformtest tests into single execution of the compiler.
authorJoseph Myers <joseph@codesourcery.com>
Thu, 22 Nov 2018 21:21:36 +0000 (21:21 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 22 Nov 2018 21:21:36 +0000 (21:21 +0000)
commit95edd05c75af2208c62174d135d76b897969a9af
tree34e957ef20bd7e1005197100d52b2d23432801b0
parentcc6c89faf3f7dc545d9794c07b6eb101192dc24d
Combine more conformtest tests into single execution of the compiler.

In <https://sourceware.org/ml/libc-alpha/2018-11/msg00225.html>,
Florian reported that the change from conformtest.pl to conformtest.py
had increased conform/ test time, possibly because of increased
startup overhead for Python scripts.

This patch improves conformtest.py performance by arranging for as
many tests of a (header, standard) pair as possible to use a single
execution of the compiler, so it does not need to initialize and parse
the whole header under test separately for every test assertion.
Specifically, compilation tests that are not marked as "optional" or
"xfail" are combined into a single source file, and are only then run
separately if compilation of that combined file fails.  For me, this
reduces the wall clock time for the conformtest.py tests (not the
whole of the conform/ directory) from two minutes to 15 seconds.

Tested for x86_64, and with build-many-glibcs.py.

* conform/conformtest.py (CompileSubTest.__init__): Set
self.run_early to False.
(ExecuteSubTest.__init__): Likewise.
(HeaderTests.run): Try running all non-optional, non-XFAILed
compilation tests in a single execution of the compiler.
ChangeLog
conform/conformtest.py
This page took 0.037524 seconds and 5 git commands to generate.