New DejaGNU parsing and comparison scripts in contrib

Matthew Sachs msachs@apple.com
Thu Sep 28 02:02:00 GMT 2006


I've committed some code for parsing DejaGNU log/sum files and doing  
three-way comparisons to contrib.

dglib.pm is a perl module which implements a "parseLogFile"  
function.  parseLogFile will take a DejaGNU log or sum file and  
return a detailed parse of the file.  Tests will be broken into  
groups, and multi-phase (compile/link/execute) test results will be  
combined for instance:
	FAIL: gcc.dg/c-torture/link/20000105-1.c -O0 (test for excess errors)
will become something like:
	gcc.dg
		c-torture
			compile/link/execute
				20000105-1.c
					-O0 (test for excess errors)
where 20000105-1.c is a test group, which is inside the "compile/link/ 
execute" test group, which is inside the "c-torture" test group,  
which is inside the "gcc.dg" test group.  "-O0 (test for excess  
errors)" is the test name.  It will have the result "FAIL", and it  
will have a 'result detail' of "link phase".

It will also associate non-result lines in the log file with their  
respective results.


compareSumTests3 is a script written on top of this which can do a  
three-way comparison between DejaGNU .sum (or .log) files.  It's  
designed for doing a merge of branch A into branch B, where you have  
two "old" compilers (the pre-merge compiler on branch A, 'old1', and  
the pre-merge compiler on branch B, 'old2') and one "new" compiler  
(the post-merge compiler.)  It will tell you things like "these tests  
were working in both old compilers but are broken after the merge",  
or "these tests only worked in old1."

I hope people find them useful.  Feel free to contact me with  
questions, comments, &c.

-- 
Matthew Sachs <msachs@apple.com> [AIM: MattSachs]
Compiler Quality Engineer, Apple Computer



More information about the Gcc mailing list