test.html revision 1.1.1.1
1<html lang="en">
2<head>
3<title>Installing GCC: Testing</title>
4<meta http-equiv="Content-Type" content="text/html">
5<meta name=description content="Installing GCC: Testing">
6<meta name=generator content="makeinfo 4.2">
7<link href="http://www.gnu.org/software/texinfo/" rel=generator-home>
8<!--
9Copyright &copy; 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
101999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
11<br><p>
12<p>Permission is granted to copy, distribute and/or modify this document
13under the terms of the GNU Free Documentation License, Version 1.2 or
14any later version published by the Free Software Foundation; with no
15Invariant Sections, the Front-Cover texts being (a) (see below), and
16with the Back-Cover Texts being (b) (see below).  A copy of the
17license is included in the section entitled "<a href="./gfdl.html">GNU Free Documentation License</a>".
18
19<p>(a) The FSF's Front-Cover Text is:
20
21<p>A GNU Manual
22
23<p>(b) The FSF's Back-Cover Text is:
24
25<p>You have freedom to copy and modify this GNU Manual, like GNU
26     software.  Copies published by the Free Software Foundation raise
27     funds for GNU development.-->
28</head>
29<body>
30<h1>Installing GCC: Testing</h1>
31Before you install GCC, we encourage you to run the testsuites and to
32compare your results with results from a similar configuration that have
33been submitted to the
34<a href="http://gcc.gnu.org/ml/gcc-testresults/">gcc-testresults mailing list</a>. 
35Some of these archived results are linked from the build status lists
36at <a href="http://gcc.gnu.org/buildstat.html">http://gcc.gnu.org/buildstat.html</a>, although not everyone who
37reports a successful build runs the testsuites and submits the results. 
38This step is optional and may require you to download additional software,
39but it can give you confidence in your new GCC installation or point out
40problems before you install and start using your new GCC.
41
42<p>First, you must have <a href="download.html">downloaded the testsuites</a>. 
43These are part of the full distribution, but if you downloaded the
44"core" compiler plus any front ends, you must download the testsuites
45separately.
46
47<p>Second, you must have the testing tools installed.  This includes
48<a href="http://www.gnu.org/software/dejagnu/">DejaGnu</a> 1.4.1 or 1.4.3
49and later, Tcl, and Expect; the DejaGnu site has links to these.
50
51<p>If the directories where <code>runtest</code> and <code>expect</code> were
52installed are not in the <code>PATH</code>, you may need to set the following
53environment variables appropriately, as in the following example (which
54assumes that DejaGnu has been installed under <code>/usr/local</code>):
55
56<br><pre>     TCL_LIBRARY = /usr/local/share/tcl8.0
57     DEJAGNULIBS = /usr/local/share/dejagnu
58</pre>
59
60<p>(On systems such as Cygwin, these paths are required to be actual
61paths, not mounts or links; presumably this is due to some lack of
62portability in the DejaGnu code.)
63
64<p>Finally, you can run the testsuite (which may take a long time):
65<br><pre>     cd <var>objdir</var>; make -k check
66</pre>
67
68<p>This will test various components of GCC, such as compiler
69front ends and runtime libraries.  While running the testsuite, DejaGnu
70might emit some harmless messages resembling
71<code>WARNING: Couldn't find the global config file.</code> or
72<code>WARNING: Couldn't find tool init file</code> that can be ignored.
73
74<h3><a name="TOC0"></a>How can I run the test suite on selected tests?</h3>
75
76<p>In order to run sets of tests selectively, there are targets
77<code>make check-gcc</code> and <code>make check-g++</code>
78in the <code>gcc</code> subdirectory of the object directory.  You can also
79just run <code>make check</code> in a subdirectory of the object directory.
80
81<p>A more selective way to just run all <code>gcc</code> execute tests in the
82testsuite is to use
83
84<br><pre>    make check-gcc RUNTESTFLAGS="execute.exp <var>other-options</var>"
85</pre>
86
87<p>Likewise, in order to run only the <code>g++</code> "old-deja" tests in
88the testsuite with filenames matching <code>9805*</code>, you would use
89
90<br><pre>    make check-g++ RUNTESTFLAGS="old-deja.exp=9805* <var>other-options</var>"
91</pre>
92
93<p>The <code>*.exp</code> files are located in the testsuite directories of the GCC
94source, the most important ones being <code>compile.exp</code>,
95<code>execute.exp</code>, <code>dg.exp</code> and <code>old-deja.exp</code>. 
96To get a list of the possible <code>*.exp</code> files, pipe the
97output of <code>make check</code> into a file and look at the
98<code>Running <small>...</small>  .exp</code> lines.
99
100<p>The Java runtime tests can be executed via <code>make check</code>
101in the <code><var>target</var>/libjava/testsuite</code> directory in
102the build tree.
103
104<h3><a name="TOC1"></a>Additional testing for Java Class Libraries</h3>
105
106<p>The <a href="http://sources.redhat.com/mauve/">Mauve Project</a> provides
107a suite of tests for the Java Class Libraries.  This suite can be run
108as part of libgcj testing by placing the Mauve tree within the libjava
109testsuite at <code>libjava/testsuite/libjava.mauve/mauve</code>, or by
110specifying the location of that tree when invoking <code>make</code>, as in
111<code>make MAUVEDIR=~/mauve check</code>.
112
113<a href="http://www-124.ibm.com/developerworks/oss/cvs/jikes/~checkout~/jacks/jacks.html">Jacks</a>
114is a free test suite that tests Java compiler front ends.  This suite
115can be run as part of libgcj testing by placing the Jacks tree within
116the libjava testsuite at <code>libjava/testsuite/libjava.jacks/jacks</code>.
117
118<h3><a name="TOC2"></a>How to interpret test results</h3>
119
120<p>The result of running the testsuite are various <code>*.sum</code> and <code>*.log</code>
121files in the testsuite subdirectories.  The <code>*.log</code> files contain a
122detailed log of the compiler invocations and the corresponding
123results, the <code>*.sum</code> files summarize the results.  These summaries
124contain status codes for all tests:
125
126<ul>
127<li>PASS: the test passed as expected
128<li>XPASS: the test unexpectedly passed
129<li>FAIL: the test unexpectedly failed
130<li>XFAIL: the test failed as expected
131<li>UNSUPPORTED: the test is not supported on this platform
132<li>ERROR: the testsuite detected an error
133<li>WARNING: the testsuite detected a possible problem
134</ul>
135
136<p>It is normal for some tests to report unexpected failures.  At the
137current time our testing harness does not allow fine grained control
138over whether or not a test is expected to fail.  We expect to fix this
139problem in future releases.
140
141<h3><a name="TOC3"></a>Submitting test results</h3>
142
143<p>If you want to report the results to the GCC project, use the
144<code>contrib/test_summary</code> shell script.  Start it in the <var>objdir</var> with
145
146<br><pre>    <var>srcdir</var>/contrib/test_summary -p your_commentary.txt \
147        -m gcc-testresults@gcc.gnu.org |sh
148</pre>
149
150<p>This script uses the <code>Mail</code> program to send the results, so
151make sure it is in your <code>PATH</code>.  The file <code>your_commentary.txt</code> is
152prepended to the testsuite summary and should contain any special
153remarks you have on your results or your build environment.  Please
154do not edit the testsuite result block or the subject line, as these
155messages may be automatically processed.
156
157<hr />
158<p>
159<a href="./index.html">Return to the GCC Installation page</a>
160
161</body></html>
162
163