[libgo] Improve Solaris 2/SPARC support
Joseph S. Myers
joseph@codesourcery.com
Thu Mar 31 17:16:00 GMT 2011
On Thu, 31 Mar 2011, Ralf Wildenhues wrote:
> Hello,
>
> * Rainer Orth wrote on Thu, Mar 31, 2011 at 06:12:31PM CEST:
> > Ian Lance Taylor <iant@google.com> writes:
> > > Argh, no, I am trying to fight against that as long as possible. We
> > > should be moving away from DejaGNU, not toward it.
> >
> > Do you have a decent alternative? I've no idea what happened to QMTest
> > which CodeSourcery tried for the C++ testsuite.
>
> FWIW, Automake's parallel-tests driver at least provides halfway decent
> test results summary; timeouts and remote control would need to be
> implemented by means of a per-test driver script or program though.
> And of course the summary style is different from the dejagnu one ...
As far as I could see when I last looked at it, Automake's test code lacks
the basic feature of being able to test installed programs without
reconfiguring and rebuilding the code. No-one really uses GCC with long
series of -B options in a build tree; installed testing is much closer to
how it's actually used and the aim should be to move towards staged
installation for build-tree testing: install in a temporary directory
within the build tree and run programs from there. The vast bulk of GCC
users are probably using a version from a distributor who did install in a
temporary directory at some point in packaging - the case of someone
wanting to know if a tool is broken before running "make install" to
replace a previous installation is not the usual one, and "make install"
itself should just be copying from such a staging directory in the build
tree.
Basic features for a new test harness for GCC would include, in my view:
* Starting from installed testing as the basic case (run a test-running
command, such as runtest at present, to run the tests for the tools in the
PATH), with more complicated commands for build-tree testing meaning
passing a more complicated configuration file (generated by the build
process) to the test-running command. Definitely do not hardcode details
of build-tree structure in the test tool itself as DejaGnu does.
* Well-defined enumeration of test assertions independent of running the
tests. In DejaGnu the test assertions are the things after "PASS:" or
"FAIL:" - but there can be duplicate names, and the set of names can
depend on the results of the tests, or on the build directory name, when
tests or testsuites are buggy; the system should make it inherently
impossible to have such problems, so that it is always possible to examine
results and see what tests did not run, for example. Similarly, test
assertion names should be as stable as possible to facilitate comparisons
when the testsuite itself as well as the compilers being testing may have
changed.
* Structured results so that build commands and output etc. are
unambiguously associated with a particular test. (For DejaGnu you need to
do heuristic processing of .log files.)
* Well-defined interfaces for defining a target board (i.e., how you run
a test program on the target, get its output, copy inputs to the board,
etc.), a host board (for testing the tools themselves on a remote host), a
testsuite.
* Ability to represent expectations for test results just as flexibly as
the present XFAILs system. Some test systems seem to be based on a
presumption that the expected state is no failures at all, and this is not
realistic for GCC.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Gcc-patches
mailing list