The test suite is driven by the DejaGnu test framework and GNU make. Additionally, two log files are created, one detailing exactly how the compiler was invoked for each test, the other listing only results for each test. The log files are plain text, and not very well-suited to machine parsing. Historically, it is almost never the case that all of the tests in the test suite pass. As a result, on any given day there will be several dozen tests failing in the test suite, many of them long-standing.
Much time is lost to test framework overhead.
There is no provision for parallelizing test execution, even though almost all tests are independent and require no setup and little cleanup. Running individual tests by hand is cumbersome. There is no easy way to determine which tests test particular features or aspects of the compiler, or even where a new test should go. There is similarly no way to determine whether a particular feature or aspect is tested at all. Since test results are not easily machine-readable, postprocessing of results for purposes of statistical analysis, detection of regressions from previous test runs, and similar is prohibitive.