glibc/conform
Joseph Myers cc6c89faf3 Separate conformtest subtest generation and execution.
This patch continues moving conformtest towards running more tests in
a single compiler execution by separating the generation and execution
of the subtests of each test.

Instead of test classes having a run method that both generates the
text of the programs to be compiled or executed, and compiles or
executes them, they are changed to having a gen_subtests method that
just generates CompileSubTest and ExecuteSubTest objects to store the
subtest names and text, and then a separate loop in HeaderTests.run
deals with actually executing those subtests.

This will allow for future changes to extract the text for all
non-optional, non-xfail compilation subtests to try compiling those
all at once, with separate compilations only if that fails, so
massively reducing the number of separate compiler executions (each of
which needs to parse the entire contents of the header under test, in
addition to the startup cost that applies even for compiling an empty
file).

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

	* conform/conformtest.py (CompileSubTest): New class.
	(ExecuteSubTest): Likewise.
	(ElementTest.run): Rename to gen_subtests.  Append tests to
	self.subtests instead of running them.
	(ConstantTest.run): Likewise.
	(SymbolTest.run): Likewise.
	(TypeTest.run): Likewise.
	(TagTest.run): Likewise.
	(FunctionTest.run): Likewise.
	(VariableTest.run): Likewise.
	(MacroFunctionTest.run): Likewise.
	(MacroStrTest.run): Likewise.
	(HeaderTests.handle_test_line): Generate subtests for tests.
	(HeaderTests.run): Run subtests for tests.
2018-11-22 00:47:20 +00:00
..
data Replace conformtest.pl with conformtest.py. 2018-11-09 13:54:06 +00:00
check-header-lists.sh Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
conformtest.py Separate conformtest subtest generation and execution. 2018-11-22 00:47:20 +00:00
glibcconform.py Replace conformtest.pl with conformtest.py. 2018-11-09 13:54:06 +00:00
linknamespace.py Convert linknamespace tests from Perl to Python. 2018-10-30 22:18:34 +00:00
list-header-symbols.py Replace conform/list-header-symbols.pl with a Python script. 2018-08-31 21:19:51 +00:00
Makefile Update conform/Makefile mkdir commands. 2018-11-09 17:40:58 +00:00