Previous: Detailed log file, Up: Output files [Contents][Index]
The runtest
option --debug
creates a file showing the
output from Expect in debugging mode. The dbg.log file is
created in the current directory. The log file shows the string sent
to the tool being tested by each send
command and the pattern
it compares with the tool output by each expect
command.
The log messages begin with a message of the form:
expect: does {tool output} (spawn_id n) match pattern {expected pattern}?
For every unsuccessful match, Expect issues a no after this message. If other patterns are specified for the same Expect command, they are reflected also, but without the first part of the message (expect... match pattern).
When Expect finds a match, the log for the successful match ends with yes, followed by a record of the Expect variables set to describe a successful match.
Example debug log file for a GDB test
send: sent {break gdbme.c:34\n} to spawn id 6 expect: does {} (spawn_id 6) match pattern {Breakpoint.*at.* file gdbme.c, line 34.*\(gdb\) $}? no {.*\(gdb\) $}? no expect: does {} (spawn_id 0) match pattern {return} ? no {\(y or n\) }? no {buffer_full}? no {virtual}? no {memory}? no {exhausted}? no {Undefined}? no {command}? no break gdbme.c:34 Breakpoint 8 at 0x23d8: file gdbme.c, line 34. (gdb) expect: does {break gdbme.c:34\r\nBreakpoint 8 at 0x23d8: file gdbme.c, line 34.\r\n(gdb) } (spawn_id 6) match pattern {Breakpoint.*at.* file gdbme.c, line 34.*\(gdb\) $}? yes expect: set expect_out(0,start) {18} expect: set expect_out(0,end) {71} expect: set expect_out(0,string) {Breakpoint 8 at 0x23d8: file gdbme.c, line 34.\r\n(gdb) } epect: set expect_out(spawn_id) {6} expect: set expect_out(buffer) {break gdbme.c:34\r\nBreakpoint 8 at 0x23d8: file gdbme.c, line 34.\r\n(gdb) } PASS: 70 0 breakpoint line number in file
This example exhibits three properties of Expect and DejaGnu that might be surprising at first glance:
The pattern {return} is a particularly interesting fail-safe to notice; it checks for an unexpected RET prompt. This may happen, for example, if the tested tool can filter output through a pager.
These fail-safe patterns (like the debugging log itself) are primarily
useful while developing test scripts. Use the error
procedure
to make the actions for fail-safe patterns produce messages starting
with ERROR on standard output, and in the detailed log file.
Previous: Detailed log file, Up: Output files [Contents][Index]