GCC Automated Testing System
The GCC automated continuous testing system is, at present, a
single machine which waits for a checkin to the GCC Subversion repository;
checks out a URL of that tree; checks that it builds (for
the native case, checks that it bootstraps); and runs the
testsuite, checking whether any test which used to pass now fails.
If any of the checks fails, it determines from the ChangeLog
entries which checkins were made and sends mail to their authors.
The tester tests a powerpc-darwin8.5 native.
The following information is available:
current status of the tester
also available as
a continuously updated JavaScript version;
logfile containing the results of
each test;
log output of the last build for
native;
.log and .sum
files from the last time the tree successfully built for
native;
The list of regressions (tests that used to pass and now fail)
from the last time the tree successfully built for
native;
the last mail the tester sent;
list of tests that are known to pass, for
native.
All the mail from the tester is also sent to the gcc-regression
mailing list. The tester also uses the test_summary
script to send mail of its successful runs to the
gcc-testresults
mailing list.
If idle, the tester automatically tries to update its
dejagnu and other tools daily, if the GCC tree is stable:
current status;
logfile;
log output of the last build;
Occasionally people ask "Why did I get sent mail? I didn't break
anything!" These are the reasons why you might get sent mail by
the tester:
Your patch actually did break something. Yes, I know your
patch couldn't possibly have caused the behaviour shown, but
stranger things have happened.
Your patch was tested at the same time as another patch
which caused the problem. The tester doesn't have the CPU
power to test each patch individually, this would need a farm
of about eight machines each at least as fast as the one
machine doing the testing now. One feature that would be
nice, but isn't implemented yet, is to have the tester look
more closely at the failure and try to eliminate patches
that couldn't possibly have caused it (for instance,
a change to the mips backend can't cause a regression test
failure on x86 native).
The tester sent you mail to warn you that it couldn't fully
test your patch, because the tree didn't build. This is not
supposed to happen very often; when I was designing the tester,
I didn't expect the tree to be unbuildable for weeks or months at
a time. I believe the best way to reduce this mail is to try
to ensure that the tree doesn't get broken, not by changing
the tester. I'd rather not switch this off, because that would
only make the underlying problem worse.
The tester sent you mail to warn you that it couldn't fully
test your patch, because there were pre-existing regressions,
and it's possible that the regressions were hiding a bug in
your patch (for instance, if your patch is trying to do
something with exception handling, and all the exception
handling tests were failing before your patch went in, then
your patch might have a bug but there's no way to tell).
It'll only send you one of these until the list of regressions
changes. This isn't supposed to happen often either.
Geoffrey Keating
geoffk@apple.com