.TH runtest 1 "2016-04-03"
.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,\ -a
Output all test results. By default, only unexpected results are
displayed.
.TP
.BI --build \ TRIPLET
The configuration TRIPLET for the build system.
.TP
.B --debug
Turn on
.B Expect
internal debugging output. The output is logged to a file called
\fBdbg.log\fR.
.TP
.BI --directory \ DIRECTORY
Run only tests in the specified DIRECTORY.
.TP
.B --help
Prints a usage message 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
.B --log_dialog
Emit Expect output to standard output.
.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 --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 --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 -v,\ --verbose
Turns on more debugging output from test cases and DejaGnu utility code.
Use more than once to increase output further.
.TP
.B -V,\ --version
Prints out the versions of DejaGnu, Expect and Tcl.
.TP
.B -x,\ --xml[=FILE]
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 Control-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).
.PP
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.
.SS "Exit status:"
.TP
0
if all tests passed including expected failures and unsupported tests,
.TP
1
if any test failed, passed unexpectedly, or was unresolved,
.TP
2
if Expect encountered any error in the test scripts.
.SH AUTHOR
Rob Savoye (rob@welcomehome.org)
.SH "REPORTING BUGS"
Report bugs to <bug\-dejagnu@gnu.org>.
.SH COPYRIGHT
Copyright \(co 2005, 2007, 2008, 2015, 2016 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 Texinfo 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.
