.TH runtest 1 "2008-02-25"
.SH NAME
runtest \- DejaGnu test driver
.SH SYNOPSIS
.B runtest
[OPTION]...
.SH DESCRIPTION
.I DejaGnu
is a framework for testing programs using Expect.
.B runtest
is the driver program for
.I DejaGnu.
It controls what tests to run and how to run them.
.SH OPTIONS
.TP
.B --all
Output all test results. By default, only unexpected results are
displayed.
.TP
.B --debug
Turn on
.B expect
internal debugging output. The output is logged to a file called
\fBdbg.log\fR.
.TP
.BI --build \ TRIPLET
The configuration TRIPLET for the build system.
.TP
.BI --directory \ DIRECTORY
Run only tests in the specified DIRECTORY.
.TP
.B --help
Prints out a help screen and then exits.
.TP
.BI --host \ TRIPLET
The configuration TRIPLET for the host system.
.TP
.BI --host_board \ NAME
The host board definition to use.
.TP
.BI --ignore \ test1.exp\ test2.exp\ ...
Do not run the specified tests.
.TP
.BI --mail \ \'name1\ name2\ ...\'
Electronic mail addresses to receive test results.
.TP
.BI --name \ HOSTNAME
The network HOSTNAME of the target board.
.TP
.BI --objdir \ PATH
\fIPATH\fR is a directory containing compiled test code.
.TP
.BI --outdir \ DIRECTORY
The name of a DIRECTORY for test log output.
.TP
.B --log_dialog
Emit Expect output to standard output.
.TP
.B --reboot
Reboot the target board when \fBruntest\fR initializes
(if supported).
.TP
.BI --srcdir \ PATH
\fIPATH\fR is a directory containing test directories.
.TP
.BI --status
Set the exit status to fail on Tcl errors.
.TP
.BI --strace \ N
Turns on
.B expect
internal tracing to \fIN\fR levels deep. The output is logged to a
file called \fBdbg.log\fR.
.TP
.BI --target \ TRIPLET
The configuration TRIPLET for the target.
.TP
.BI --target_board \ NAME
A list of target board NAMEs to run tests on.
.TP
.BI --tool \ TOOLNAME
Specify the tool to be tested.  \fITOOLNAME\fR controls the test suite
applied, and the associated initialization module.
.TP
.BI --tool_exec \ PATH
Specify the PATH to the executable to test.
.TP
.BI --tool_opts \ OPTIONS
Additional OPTIONS to pass to the tool.
.TP
.B --verbose,\ -v
Turns on more debugging output from test cases and DejaGnu utility code.
Use more than once to increase output further.
.TP
.B --version,\ -V
Prints out the versions of DejaGnu, Expect and Tcl.
.TP
.B --xml[=FILE],\ -x
Generate XML output.  \fBFILE\fR is optional; if given it is the name of
the output file.  If not given, the output file is named after the tool.
.TP
.B -D[number]
Activate the Tcl debugger.  \fBnumber\fR can be either 1 or 0. If it
is 1, then the expect shell will break when it starts to run. The
interrupt key will cause DejaGnu to drop to the debugger prompt. If it
is 0, DejaGnu starts as usual, but a ^C drops to the debugger prompt.
.TP 0
Any file name on the command line is assumed to be a subset of the
test names to run.  Usually these are the names of the test scripts
(eg. foo.exp).

Makefile-style variables are used to specify tool names and their
flags; these and other configuration dependent values are saved in the
file \fBsite.exp\fR, created during configuration.
.SH EXIT CODES
.B runtest
sets the exit code to 1 if any of the tests failed, or
sets it to 0 if all the tests passed.
.SH AUTHOR
Rob Savoye (rob@welcomehome.org)
.SH "REPORTING BUGS"
Report bugs to <bug\-dejagnu@gnu.org>.
.SH COPYRIGHT
Copyright \(co 2005, 2007, 2008 Free Software Foundation, Inc.
.br
This is free software.  You may redistribute copies of it under the terms of
the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
There is NO WARRANTY, to the extent permitted by law.
.SH "SEE ALSO"
The full documentation for
.B DejaGnu
is maintained as a Docbook manual.  If the
.B info
program is properly installed at your site, the command
.IP
.B info dejagnu
.PP
should give you access to the complete manual.
