blob: 93a2c03c0cf96c1fa0b5843526146e98fc3e9843 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
><HEAD
><TITLE
>Debugging A Test Case</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="DejaGnu"
HREF="book1.html"><LINK
REL="UP"
TITLE="Extending DejaGnu"
HREF="c1099.html"><LINK
REL="PREVIOUS"
TITLE="Writing A Test Case"
HREF="x1445.html"><LINK
REL="NEXT"
TITLE="Adding A Test Case To A Testsuite."
HREF="x1493.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>DejaGnu: The GNU Testing Framework</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="x1445.html"
ACCESSKEY="P"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Extending DejaGnu</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x1493.html"
ACCESSKEY="N"
>Next &#62;&#62;&#62;</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="DEBUGGING"
></A
>Debugging A Test Case</H1
><P
>These are the kinds of debugging information available
from DejaGnu:</P
><P
></P
><UL
><LI
STYLE="list-style-type: disc"
><P
>Output controlled by test scripts themselves,
explicitly allowed for by the test author. This kind of
debugging output appears in the detailed output recorded in the
DejaGnu log file. To do the same for new tests, use the
<B
CLASS="COMMAND"
>verbose</B
> procedure (which in turn uses the
variable also called <I
CLASS="EMPHASIS"
>verbose</I
>) to control
how much output to generate. This will make it easier for other
people running the test to debug it if necessary. Whenever
possible, if <I
CLASS="EMPHASIS"
>$verbose</I
> is
<I
CLASS="EMPHASIS"
>0</I
>, there should be no output other than the
output from <I
CLASS="EMPHASIS"
>pass</I
>,
<I
CLASS="EMPHASIS"
>fail</I
>, <I
CLASS="EMPHASIS"
>error</I
>, and
<I
CLASS="EMPHASIS"
>warning</I
>. Then, to whatever extent is
appropriate for the particular test, allow successively higher
values of <I
CLASS="EMPHASIS"
>$verbose</I
> to generate more
information. Be kind to other programmers who use your tests:
provide for a lot of debugging information.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Output from the internal debugging functions of
Tcl and <SPAN
CLASS="PRODUCTNAME"
>Expect</SPAN
>. There is a command
line options for each; both forms of debugging output are
recorded in the file <TT
CLASS="FILENAME"
>dbg.log</TT
> in the current
directory.</P
><P
>Use <TT
CLASS="OPTION"
>--debug</TT
> for information from the
expect level; it generates displays of the expect attempts to
match the tool output with the patterns specified. This output
can be very helpful while developing test scripts, since it
shows precisely the characters received. Iterating between the
latest attempt at a new test script and the corresponding
<TT
CLASS="FILENAME"
>dbg.log</TT
> can allow you to create the final
patterns by ``cut and paste''. This is sometimes the best way
to write a test case.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Use <TT
CLASS="OPTION"
>--strace</TT
> to see more
detail at the Tcl level; this shows how Tcl procedure
definitions expand, as they execute. The associated number
controls the depth of definitions expanded.</P
></LI
><LI
STYLE="list-style-type: disc"
><P
>Finally, if the value of
<I
CLASS="EMPHASIS"
>verbose</I
> is 3 or greater,DejaGnu turns on
the expect command <B
CLASS="COMMAND"
>log_user</B
>. This command
prints all expect actions to the expect standard output, to the
detailed log file, and (if <TT
CLASS="OPTION"
>--debug</TT
> is on) to
<TT
CLASS="FILENAME"
>dbg.log</TT
>.</P
></LI
></UL
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="x1445.html"
ACCESSKEY="P"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x1493.html"
ACCESSKEY="N"
>Next &#62;&#62;&#62;</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Writing A Test Case</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="c1099.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Adding A Test Case To A Testsuite.</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>