aboutsummaryrefslogtreecommitdiff
path: root/contrib/bluegnu2.0.3/doc/dejagnu.info-3
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/bluegnu2.0.3/doc/dejagnu.info-3')
-rw-r--r--contrib/bluegnu2.0.3/doc/dejagnu.info-31016
1 files changed, 0 insertions, 1016 deletions
diff --git a/contrib/bluegnu2.0.3/doc/dejagnu.info-3 b/contrib/bluegnu2.0.3/doc/dejagnu.info-3
deleted file mode 100644
index 3e91476..0000000
--- a/contrib/bluegnu2.0.3/doc/dejagnu.info-3
+++ /dev/null
@@ -1,1016 +0,0 @@
-This is Info file dejagnu.info, produced by Makeinfo version 1.68 from
-the input file ./dejagnu.texi.
-
-START-INFO-DIR-ENTRY
-* DejaGnu: (dejagnu). The GNU testing framework.
-END-INFO-DIR-ENTRY
-
- Copyright (C) 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
-
- Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
- Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided also
-that the entire resulting derived work is distributed under the terms
-of a permission notice identical to this one.
-
- Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions.
-
-
-File: dejagnu.info, Node: Debugging, Next: Adding, Prev: Writing, Up: Tests
-
-Debugging a test case
-=====================
-
-These are the kinds of debugging information available from DejaGnu:
-
- 1. 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 `TOOL.log' file. To do the
- same for new tests, use the `verbose' procedure (which in turn
- uses the variable also called `verbose') 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
- `$verbose' is `0', there should be no output other than the output
- from `pass', `fail', `error', and `warning'. Then, to whatever
- extent is appropriate for the particular test, allow successively
- higher values of `$verbose' to generate more information. Be kind
- to other programmers who use your tests: provide for a lot of
- debugging information.
-
- 2. Output from the internal debugging functions of Tcl and `expect'.
- There is a command line options for each; both forms of debugging
- output are recorded in the file `dbg.log' in the current directory.
-
- Use `--debug' for information from the `expect' level; it
- generates displays of the `expect' attempts to match the tool
- output with the patterns specified (*note Debug Log: Debug.). 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
- `dbg.log' can allow you to create the final patterns by "cut and
- paste". This is sometimes the best way to write a test case.
-
- Use `--strace' 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; see the
- discussion of `--strace' in *Note Running the Tests: Invoking
- runtest.
-
- 3. Finally, if the value of `verbose' is 3 or greater, `runtest'
- turns on the `expect' command `log_user'. This command prints all
- `expect' actions to the `expect' standard output, to the detailed
- log file, and (if `--debug' is on) to `dbg.log'.
-
-
-File: dejagnu.info, Node: Adding, Next: Hints, Prev: Debugging, Up: Tests
-
-Adding a test case to a test suite
-==================================
-
- There are two slightly different ways to add a test case. One is to
-add the test case to an existing directory. The other is to create a new
-directory to hold your test. The existing test directories represent
-several styles of testing, all of which are slightly different; examine
-the directories for the tool of interest to see which (if any) is most
-suitable.
-
- Adding a GCC test can be very simple: just add the C code to any
-directory beginning with `gcc.' and it runs on the next `runtest --tool
-gcc'.
-
- To add a test to GDB, first add any source code you will need to the
-test directory. Then you can either create a new `expect' file, or add
-your test to an existing one (any file with a `.exp' suffix). Creating
-a new `.exp' file is probably a better idea if the test is
-significantly different from existing tests. Adding it as a separate
-file also makes upgrading easier. If the C code has to be already
-compiled before the test will run, then you'll have to add it to the
-`Makefile.in' file for that test directory, then run `configure' and
-`make'.
-
- Adding a test by creating a new directory is very similar:
-
- 1. Create the new directory. All subdirectory names begin with the
- name of the tool to test; e.g. G++ tests might be in a directory
- called `g++.other'. There can be multiple test directories that
- start with the same tool name (such as `g++').
-
- 2. Add the new directory name to the `configdirs' definition in the
- `configure.in' file for the test suite directory. This way when
- `make' and `configure' next run, they include the new directory.
-
- 3. Add the new test case to the directory, as above.
-
- 4. To add support in the new directory for configure and make, you
- must also create a `Makefile.in' and a `configure.in'. *Note What
- Configure Does: (configure.info)What Configure Does.
-
-
-File: dejagnu.info, Node: Hints, Next: Variables, Prev: Adding, Up: Tests
-
-Hints on writing a test case
-============================
-
- There may be useful existing procedures already written for your
-test in the `lib' directory of the DejaGnu distribution. *Note DejaGnu
-Builtins: DejaGnu Builtins.
-
- It is safest to write patterns that match *all* the output generated
-by the tested program; this is called "closure". If a pattern does not
-match the entire output, any output that remains will be examined by
-the *next* `expect' command. In this situation, the precise boundary
-that determines which `expect' command sees what is very sensitive to
-timing between the `expect' task and the task running the tested tool.
-As a result, the test may sometimes appear to work, but is likely to
-have unpredictable results. (This problem is particularly likely for
-interactive tools, but can also affect batch tools--especially for
-tests that take a long time to finish.) The best way to ensure closure
-is to use the `-re' option for the `expect' command to write the
-pattern as a full regular expressions; then you can match the end of
-output using a `$'. It is also a good idea to write patterns that
-match all available output by using `.*\' after the text of interest;
-this will also match any intervening blank lines. Sometimes an
-alternative is to match end of line using `\r' or `\n', but this is
-usually too dependent on terminal settings.
-
- Always escape punctuation, such as `(' or `"', in your patterns; for
-example, write `\('. If you forget to escape punctuation, you will
-usually see an error message like `extra characters after close-quote'.
-
- If you have trouble understanding why a pattern does not match the
-program output, try using the `--debug' option to `runtest', and
-examine the debug log carefully. *Note Debug Log: Debug.
-
- Be careful not to neglect output generated by setup rather than by
-the interesting parts of a test case. For example, while testing GDB,
-I issue a send `set height 0\n' command. The purpose is simply to make
-sure GDB never calls a paging program. The `set height' command in GDB
-does not generate any output; but running *any* command makes GDB issue
-a new `(gdb) ' prompt. If there were no `expect' command to match this
-prompt, the output `(gdb) ' begins the text seen by the next `expect'
-command--which might make *that* pattern fail to match.
-
- To preserve basic sanity, I also recommended that no test ever pass
-if there was any kind of problem in the test case. To take an extreme
-case, tests that pass even when the tool will not spawn are misleading.
-Ideally, a test in this sort of situation should not fail either.
-Instead, print an error message by calling one of the DejaGnu procedures
-`error' or `warning'.
-
-
-File: dejagnu.info, Node: Variables, Prev: Hints, Up: Tests
-
-Special variables used by test cases
-====================================
-
- Your test cases can use these variables, with conventional meanings
-(as well as the variables saved in `site.exp' *note Setting `runtest'
-defaults: Customizing.):
-
- *These variables are available to all test cases.*
-
-`prms_id'
- The tracking system (e.g. GNATS) number identifying a corresponding
- bugreport. (`0' if you do not specify it in the test script.)
-
-`bug_id'
- An optional bug id; may reflect a bug identification from another
- organization. (`0' if you do not specify it.)
-
-`subdir'
- The subdirectory for the current test case.
-
- *These variables should never be changed. They appear in most
- tests.*
-
-`expect_out(buffer)'
- The output from the last command. This is an internal variable set
- by `expect'.
-
-`exec_output'
- This is the output from a `TOOL_load' command. This only applies
- to tools like GCC and GAS which produce an object file that must
- in turn be executed to complete a test.
-
-`comp_output'
- This is the output from a `TOOL_start' command. This is
- conventionally used for batch oriented programs, like GCC and GAS,
- that may produce interesting output (warnings, errors) without
- further interaction.
-
-
-File: dejagnu.info, Node: Extending, Next: Installation, Prev: Tests, Up: Top
-
-New Tools, Targets, or Hosts
-****************************
-
- The most common ways to extend the DejaGnu framework are: adding a
-suite of tests for a new tool to be tested; adding support for testing
-on a new target; and porting `runtest' to a new host.
-
-* Menu:
-
-* Adding Tools:: How to add tests for a new tool
-* Adding Targets:: How to add a new target
-* Porting:: Porting DejaGnu to a new host
-
-
-File: dejagnu.info, Node: Adding Tools, Next: Adding Targets, Up: Extending
-
-Writing tests for a new tool
-============================
-
- In general, the best way to learn how to write (code or even prose)
-is to read something similar. This principle applies to test cases and
-to test suites. Unfortunately, well-established test suites have a way
-of developing their own conventions: as test writers become more
-experienced with DejaGnu and with Tcl, they accumulate more utilities,
-and take advantage of more and more features of `expect' and Tcl in
-general.
-
- Inspecting such established test suites may make the prospect of
-creating an entirely new test suite appear overwhelming. Nevertheless,
-it is quite straightforward to get a new test suite going.
-
- There is one test suite that is guaranteed not to grow more elaborate
-over time: both it and the tool it tests were created expressly to
-illustrate what it takes to get started with DejaGnu. The `example/'
-directory of the DejaGnu distribution contains both an interactive tool
-called `calc', and a test suite for it. Reading this test suite, and
-experimenting with it, is a good way to supplement the information in
-this section. (Thanks to Robert Lupton for creating `calc' and its
-test suite--and also the first version of this section of the manual!)
-
- To help orient you further in this task, here is an outline of the
-steps to begin building a test suite for a program EXAMPLE.
-
- 1. Create or select a directory to contain your new collection of
- tests. Change to that directory (shown here as `testsuite'):
-
- eg$ cd testsuite/
-
- 2. Create a `configure.in' file in this directory, to control
- configuration-dependent choices for your tests. So far as DejaGnu
- is concerned, the important thing is to set a value for the
- variable `target_abbrev'; this value is the link to the init file
- you will write soon. (For simplicity, we assume the environment
- is Unix, and use `unix' as the value.)
-
- What else is needed in `configure.in' depends on the requirements
- of your tool, your intended test environments, and which
- `configure' system you use. This example is a minimal
- `configure.in' for use with Cygnus Configure. (For an alternative
- based on the FSF `autoconf' system, see the `calc' example
- distributed with DejaGnu.) Replace EXAMPLE with the name of your
- program:
-
- # This file is a shell script fragment
- # for use with Cygnus configure.
-
- srctrigger="EXAMPLE.0"
- srcname="The DejaGnu EXAMPLE tests"
-
- # per-host:
-
- # per-target:
-
- # everything defaults to unix for a target
- target_abbrev=unix
-
- # post-target:
-
- 3. Create `Makefile.in', the source file used by `configure' to build
- your `Makefile'. Its leading section should as usual contain the
- values that `configure' may override:
-
- srcdir = .
- prefix = /usr/local
-
- exec_prefix = $(prefix)
- bindir = $(exec_prefix)/bin
- libdir = $(exec_prefix)/lib
- tooldir = $(libdir)/$(target_alias)
-
- datadir = $(exec_prefix)/lib/dejagnu
-
- RUNTEST = runtest
- RUNTESTFLAGS =
- FLAGS_TO_PASS =
-
- #### host, target, site specific Makefile frags come in here.
-
- This should be followed by the standard targets at your site. To
- begin with, they need not do anything--for example, these
- definitions will do:
-
-
- all:
-
- info:
-
- install-info:
-
- install:
- uninstall:
-
- clean:
- -rm -f *~ core *.info*
-
- It is also a good idea to make sure your `Makefile' can rebuild
- itself if `Makefile.in' changes, with a target like this (which
- works for either Cygnus or FSF Configure):
-
- Makefile : $(srcdir)/Makefile.in $(host_makefile_frag) \
- $(target_makefile_frag)
- $(SHELL) ./config.status
-
- You also need to include two targets important to DejaGnu: `check',
- to run the tests, and `site.exp', to set up the Tcl copies of
- configuration-dependent values. The `check' target must run
- `runtest --tool EXAMPLE':
-
- check: site.exp all
- $(RUNTEST) $(RUNTESTFLAGS) $(FLAGS_TO_PASS) \
- --tool EXAMPLE --srcdir $(srcdir)
-
- The `site.exp' target should usually set up (among other things!) a
- Tcl variable for the name of your program:
-
- site.exp: ./config.status Makefile
- @echo "Making a new config file..."
- -@rm -f ./tmp?
- @touch site.exp
-
- -@mv site.exp site.bak
- @echo "## these variables are automatically\
- generated by make ##" > ./tmp0
- @echo "# Do not edit here. If you wish to\
- override these values" >> ./tmp0
- @echo "# add them to the last section" >> ./tmp0
- @echo "set host_os ${host_os}" >> ./tmp0
- @echo "set host_alias ${host_alias}" >> ./tmp0
- @echo "set host_cpu ${host_cpu}" >> ./tmp0
- @echo "set host_vendor ${host_vendor}" >> ./tmp0
- @echo "set target_os ${target_os}" >> ./tmp0
- @echo "set target_alias ${target_alias}" >> ./tmp0
- @echo "set target_cpu ${target_cpu}" >> ./tmp0
- @echo "set target_vendor ${target_vendor}" >> ./tmp0
- @echo "set host_triplet ${host_canonical}" >> ./tmp0
- @echo "set target_triplet ${target_canonical}">>./tmp0
- @echo "set tool binutils" >> ./tmp0
- @echo "set srcdir ${srcdir}" >> ./tmp0
- @echo "set objdir `pwd`" >> ./tmp0
- @echo "set EXAMPLENAME EXAMPLE" >> ./tmp0
- @echo "## All variables above are generated by\
- configure. Do Not Edit ##" >> ./tmp0
- @cat ./tmp0 > site.exp
- @sed < site.bak \
- -e '1,/^## All variables above are.*##/ d' \
- >> site.exp
- -@rm -f ./tmp?
-
- 4. Create a directory (in `testsuite/') called `config/':
-
- eg$ mkdir config
-
- 5. Make an init file in this directory; its name must start with the
- `target_abbrev' value, so call it `config/unix.exp'. This is the
- file that contains the target-dependent procedures; fortunately,
- most of them do not have to do very much in order for `runtest' to
- run.
-
- If EXAMPLE is not interactive, you can get away with this minimal
- `unix.exp' to begin with:
-
- proc foo_exit {} {}
- proc foo_version {} {}
-
- If EXAMPLE is interactive, however, you might as well define a
- start routine *and invoke it* by using an init file like this:
-
- proc foo_exit {} {}
- proc foo_version {} {}
-
- proc foo_start {} {
- global EXAMPLENAME
- spawn $EXAMPLENAME
- expect {
- -re "" {}
- }
- }
- foo_start
-
- 6. Create a directory whose name begins with your tool's name, to
- contain tests:
-
- eg$ mkdir EXAMPLE.0
-
- 7. Create a sample test file in `EXAMPLE.0'. Its name must end with
- `.exp'; you can use `first-try.exp' To begin with, just write
- there a line of Tcl code to issue a message:
-
- send_user "Testing: one, two...\n"
-
- 8. Back in the `testsuite/' (top level) directory, run
-
- eg$ configure
-
- (You may have to specify more of a path, if a suitable `configure'
- is not available in your execution path.)
-
- 9. You are now ready to triumphantly type `make check' or `runtest
- --tool EXAMPLE'. You should see something like this:
-
- Test Run By rhl on Fri Jan 29 16:25:44 EST 1993
-
- === EXAMPLE tests ===
-
- Running ./EXAMPLE.0/first-try.exp ...
- Testing: one, two...
-
- === EXAMPLE Summary ===
-
- There is no output in the summary, because so far the example does
- not call any of the procedures that establish a test outcome.
-
- 10. Begin writing some real tests. For an interactive tool, you should
- probably write a real exit routine in fairly short order; in any
- case, you should also write a real version routine soon.
-
-
-File: dejagnu.info, Node: Adding Targets, Next: Porting, Prev: Adding Tools, Up: Extending
-
-Adding a target
-===============
-
- DejaGnu has some additional requirements for target support, beyond
-the general-purpose provisions of Cygnus `configure'. `runtest' must
-actively communicate with the target, rather than simply generating or
-managing code for the target architecture. Therefore, each tool
-requires an initialization module for each target. For new targets, you
-must supply a few Tcl procedures to adapt DejaGnu to the target. This
-permits DejaGnu itself to remain target independent. *Note
-Initialization module: Init Module, for a discussion of the naming
-conventions that enable DejaGnu to locate and use init files.
-
- Usually the best way to write a new initialization module is to edit
-an existing initialization module; some trial and error will be
-required. If necessary, you can use the `--debug' option to see what
-is really going on.
-
- When you code an initialization module, be generous in printing
-information controlled by the `verbose' procedure (*note DejaGnu
-procedures: DejaGnu Builtins.).
-
- Most of the work is in getting the communications right.
-Communications code (for several situations involving IP networks or
-serial lines) is available in a DejaGnu library file, `lib/remote.exp'.
-*Note DejaGnu Builtins: DejaGnu Builtins.
-
- If you suspect a communication problem, try running the connection
-interactively from `expect'. (There are three ways of running `expect'
-as an interactive interpreter. You can run `expect' with no arguments,
-and control it completely interactively; or you can use `expect -i'
-together with other command-line options and arguments; or you can run
-the command `interpreter' from any `expect' procedure. Use `return' to
-get back to the calling procedure (if any), or `return -tcl' to make
-the calling procedure itself return to its caller; use `exit' or
-end-of-file to leave `expect' altogether.) Run the program whose name
-is recorded in `$connectmode', with the arguments in `$targetname', to
-establish a connection. You should at least be able to get a prompt
-from any target that is physically connected.
-
-
-File: dejagnu.info, Node: Porting, Prev: Adding Targets, Up: Extending
-
-Porting to a new host
-=====================
-
- The task of porting DejaGnu is basically that of porting Tcl and
-`expect'. Tcl and `expect', as distributed with DejaGnu, both use
-`autoconf'; they should port automatically to most Unix systems.
-
- Once Tcl and `expect' are ported, DejaGnu should run. Most system
-dependencies are taken care of by using `expect' as the main command
-shell.
-
-
-File: dejagnu.info, Node: Installation, Next: Index, Prev: Extending, Up: Top
-
-Installing DejaGnu
-******************
-
- Once you have the DejaGnu source unpacked and available, you must
-first configure the software to specify where it is to run (and the
-associated defaults); then you can proceed to installing it.
-
-* Menu:
-
-* Configuring DejaGnu::
-* Installing DejaGnu::
-
-
-File: dejagnu.info, Node: Configuring DejaGnu, Next: Installing DejaGnu, Up: Installation
-
-Configuring the DejaGnu test driver
-===================================
-
- It is usually best to configure in a directory separate from the
-source tree, specifying where to find the source with the optional
-`--srcdir' option to `configure'. DejaGnu uses the GNU `autoconf' to
-configure itself. For more info on using autoconf, read the GNU
-autoconf manual. To configure, execute the `configure' program, no
-other options are required. For an example, to configure in a seperate
-tree for objects, execute the configure script from the source tree
-like this:
-
- ../dejagnu-1.3/configure
-
- DejaGnu doesn't care at config time if it's for testing a native
-system or a cross system. That is determined at runtime by using the
-config files.
-
- You may also want to use the `configure' option `--prefix' to
-specify where you want DejaGnu and its supporting code installed. By
-default, installation is in subdirectories of `/usr/local', but you can
-select any alternate directory ALTDIR by including `--prefix=ALTDIR' on
-the `configure' command line. (This value is captured in the Makefile
-variables `prefix' and `exec_prefix'.)
-
- Save for a small number of example tests, the DejaGnu distribution
-itself does not include any test suites; these are available separately.
-Test suites for the GNU compiler (testing both GCC and G++) and for the
-GNU binary utilities are distributed in parallel with the DejaGnu
-distribution (but packaged as separate files). The test suite for the
-GNU debugger is distributed in parallel with each release of GDB
-itself, starting with GDB 4.9. After configuring the top-level DejaGnu
-directory, unpack and configure the test directories for the tools you
-want to test; then, in each test directory, run `make' to build
-auxiliary programs required by some of the tests.
-
-
-File: dejagnu.info, Node: Installing DejaGnu, Prev: Configuring DejaGnu, Up: Installation
-
-Installing DejaGnu
-==================
-
- To install DejaGnu in your filesystem (either in `/usr/local', or as
-specified by your `--prefix' option to `configure'), execute
-
- eg$ make install
-
-`make install' does these things for DejaGnu:
-
- 1. Look in the path specified for executables (`$exec_prefix') for
- directories called `lib' and `bin'. If these directories do not
- exist, `make install' creates them.
-
- 2. Create another directory in the `lib' directory, called `dejagnu'.
-
- 3. Copy the `runtest' shell script into `$exec_prefix/bin'.
-
- 4. Copy all the library files (used to support the framework) into
- `$exec_prefix/lib/dejagnu'.
-
- 5. Copy `runtest.exp' into `$exec_prefix/lib/dejagnu'. This is the
- main Tcl code implementing DejaGnu.
-
-
- Each test suite collection comes with simple installation
-instructions in a `README' file; in general, the test suites are
-designed to be unpacked in the source directory for the corresponding
-tool, and extract into a directory called `testsuite'.
-
-
-File: dejagnu.info, Node: Index, Prev: Installation, Up: Top
-
-Index
-*****
-
-* Menu:
-
-* --all (runtest option): Invoking runtest.
-* --baud (runtest option): Invoking runtest.
-* --build (runtest option): Invoking runtest.
-* --connect (runtest option): Invoking runtest.
-* --debug (runtest option): Invoking runtest.
-* --help (runtest option): Invoking runtest.
-* --host (runtest option): Invoking runtest.
-* --name (runtest option): Invoking runtest.
-* --objdir (runtest option): Invoking runtest.
-* --outdir (runtest option): Invoking runtest.
-* --reboot (runtest option): Invoking runtest.
-* --srcdir (runtest option): Invoking runtest.
-* --strace (runtest option): Invoking runtest.
-* --target (runtest option): Invoking runtest.
-* --tool (runtest option): Invoking runtest.
-* --tool and naming conventions: Names.
-* --verbose (runtest option): Invoking runtest.
-* --version (runtest option): Invoking runtest.
-* -b (runtest option): Invoking runtest.
-* -V (runtest option): Invoking runtest.
-* -v (runtest option): Invoking runtest.
-* .exp: Overview.
-* absolute PATH: utils.exp.
-* adding a target: Adding Targets.
-* adding a test case: Adding.
-* all_flag: Config Values.
-* ambiguity, required for POSIX: Posix.
-* archive object files: target.exp.
-* auxiliary files, building: Running Tests.
-* auxiliary programs: Configuring DejaGnu.
-* auxiliary test programs: Invoking runtest.
-* baud: Config Values.
-* baud rate, specifying: Invoking runtest.
-* bps, specifying: Invoking runtest.
-* bt: debugger.exp.
-* bug number: Variables.
-* bug number, extra: Variables.
-* bug_id: Variables.
-* build config name, changing: Invoking runtest.
-* build host configuration test: framework.exp.
-* build_triplet: Config Values.
-* built in procedures, DejaGnu: DejaGnu Builtins.
-* C torture test: Writing.
-* canadian cross configuration test: framework.exp.
-* cancelling expected failure: framework.exp.
-* check makefile target: Running Tests.
-* clear_xfail CONFIG: framework.exp.
-* Closing a remote connection: remote.exp.
-* command line option variables: Config Values.
-* command line options: Invoking runtest.
-* command line Tcl variable definition: Invoking runtest.
-* communications procedures: remote.exp.
-* comp_output: Variables.
-* comparing files: utils.exp.
-* compile a file: target.exp.
-* configuration dependent defaults: Config Values.
-* configuring DejaGnu: Installation.
-* connecting to target: Invoking runtest.
-* connectmode: Config Values.
-* converting relative paths to absolute: utils.exp.
-* Core Internal Procedures: framework.exp.
-* cross configuration: Running Tests.
-* current test subdirectory: Variables.
-* dbg.log file: Invoking runtest.
-* debug log: Debug.
-* debug log for test cases: Invoking runtest.
-* debugger.exp: debugger.exp.
-* debugging a test case: Debugging.
-* default options, controlling: Config Values.
-* defaults, option: Config Values.
-* defaults, setting in init file: Init Module.
-* DejaGnu configuration: Installation.
-* DejaGnu test driver: Invoking runtest.
-* DejaGnu, the name: Design Goals.
-* Delete a watchpoint.: debugger.exp.
-* design goals: Design Goals.
-* detailed log: Detail.
-* diff FILENAME FILENAME: utils.exp.
-* directories matching a pattern: utils.exp.
-* directory names and --tool: Names.
-* download a file: remote.exp.
-* download FILE [ SPAWNID ]: remote.exp.
-* download, tip: remote.exp.
-* dumplocals *expr*: debugger.exp.
-* dumprocs *expr*: debugger.exp.
-* dumpvars *expr*: debugger.exp.
-* dumpwatch *expr*: debugger.exp.
-* echo.exp: Sample Test.
-* ERROR <1>: framework.exp.
-* ERROR: Invoking runtest.
-* example: Sample Test.
-* exec_output: Variables.
-* exec_prefix, configure options.: Configuring DejaGnu.
-* execute_anywhere *cmdline*: target.exp.
-* executing commands remotely: target.exp.
-* existing tests, running: Running Tests.
-* exit code from runtest: Invoking runtest.
-* exit procedure, tested tools: Target Dependent.
-* exit_remote_shell SPAWNID: remote.exp.
-* exp filename suffix: Names.
-* expect internal tracing: Invoking runtest.
-* expect script names: Overview.
-* expect scripting language: Tcl and Expect.
-* expect_out(buffer): Variables.
-* expected failure <1>: framework.exp.
-* expected failure: Invoking runtest.
-* expected failure, cancelling: framework.exp.
-* FAIL <1>: Invoking runtest.
-* FAIL: Posix.
-* fail "STRING": framework.exp.
-* failing test, expected: Invoking runtest.
-* failing test, unexpected: Invoking runtest.
-* failure, expected: framework.exp.
-* failure, POSIX definition: Posix.
-* filename for test files: Names.
-* files matching a pattern: utils.exp.
-* find DIR PATTERN: utils.exp.
-* findfile: Init Module.
-* finding file differences: utils.exp.
-* future directions: Future Directions.
-* gdb.t00/echo.exp: Sample Test.
-* get_warning_threshold: framework.exp.
-* getdirs DIR: utils.exp.
-* getdirs DIR PATTERN: utils.exp.
-* getenv VAR: utils.exp.
-* getting environment variables: utils.exp.
-* GNATS bug number: Variables.
-* Granlund, Torbjorn: Writing.
-* grep FILENAME REGEXP: utils.exp.
-* grep FILENAME REGEXP line: utils.exp.
-* help with runtest: Invoking runtest.
-* hints on test case writing: Hints.
-* host config name, changing: Invoking runtest.
-* host configuration test: framework.exp.
-* host, explained: Installation.
-* host_triplet: Config Values.
-* ignoretests: Config Values.
-* init file name: Init Module.
-* init file, purpose: Init Module.
-* initialization: Init Module.
-* input files: Input Files.
-* installed tool name: framework.exp.
-* installing DejaGnu: Installing DejaGnu.
-* internal details: Internals.
-* invoking: Invoking runtest.
-* IP network procedures: remote.exp.
-* isbuild "HOST": framework.exp.
-* ishost "HOST": framework.exp.
-* isnative: framework.exp.
-* istarget "TARGET": framework.exp.
-* kermit PORT BPS: remote.exp.
-* kermit, remote testing via: Invoking runtest.
-* last command output: Variables.
-* lib/debugger.exp: debugger.exp.
-* lib/remote.exp: remote.exp.
-* lib/target.exp: target.exp.
-* lib/utils.exp: utils.exp.
-* Libes, Don: Tcl and Expect.
-* list, pruning: utils.exp.
-* list_targets: target.exp.
-* lists supported targets: target.exp.
-* load library file: framework.exp.
-* load procedure, tested tools: Target Dependent.
-* load_lib "LIBRARY-FILE": framework.exp.
-* local site.exp: Local Config File.
-* log files, where to write: Invoking runtest.
-* Lupton, Robert: Adding Tools.
-* make builds part of tests: Configuring DejaGnu.
-* make check: Running Tests.
-* master site.exp: Master Config File.
-* Menapace, Julia: Design Goals.
-* mondfe: Cross Targets.
-* mondfe, remote testing via: Invoking runtest.
-* name "DejaGnu": Design Goals.
-* name for remote test machine: Invoking runtest.
-* name transformations: framework.exp.
-* name, initialization module: Init Module.
-* naming conventions: Names.
-* naming tests to run: Invoking runtest.
-* native configuration: Running Tests.
-* native configuration test: framework.exp.
-* network (IP) procedures: remote.exp.
-* NOTE <1>: framework.exp.
-* NOTE: Invoking runtest.
-* note "STRING": framework.exp.
-* objdir: Config Values.
-* object directory: Invoking runtest.
-* Opening a remote connection: remote.exp.
-* operating principles: Internals.
-* option defaults: Config Values.
-* option list, runtest: Invoking runtest.
-* options: Invoking runtest.
-* options for runtest, common: Running Tests.
-* options, Tcl variables for defaults: Config Values.
-* order of tests: Names.
-* Ousterhout, John K.: Tcl and Expect.
-* outdir: Config Values.
-* output directory: Invoking runtest.
-* output files: Output Files.
-* output, additional: Invoking runtest.
-* overriding site.exp: Customizing.
-* overview: Overview.
-* PASS <1>: Invoking runtest.
-* PASS: Posix.
-* pass "STRING": framework.exp.
-* path lookup: utils.exp.
-* pattern match, directory: utils.exp.
-* pattern match, filenames: utils.exp.
-* perror "STRING NUMBER": framework.exp.
-* personal config site.exp: Personal Config File.
-* pop_host: target.exp.
-* pop_target: target.exp.
-* porting to a new host: Porting.
-* POSIX conformance: Posix.
-* prefix, configure options: Configuring DejaGnu.
-* print *var*: debugger.exp.
-* Print a backtrace: debugger.exp.
-* Print global variable values: debugger.exp.
-* Print local variable value: debugger.exp.
-* Print procedure bodies: debugger.exp.
-* Print watchpoints: debugger.exp.
-* Printing variable values: debugger.exp.
-* PRMS bug number: Variables.
-* prms_id: Variables.
-* problem, detected by test case: Invoking runtest.
-* prune LIST PATTERN: utils.exp.
-* prune_system_crud SYSTEM TEXT: utils.exp.
-* pruning system output, examining program output: utils.exp.
-* psource FILENAME: utils.exp.
-* push_host *name*: target.exp.
-* push_target *name*: target.exp.
-* quit: debugger.exp.
-* Quiting DejaGnu: debugger.exp.
-* ranlib a file: target.exp.
-* reboot: Config Values.
-* rebooting remote targets: Invoking runtest.
-* regular expression, file contents: utils.exp.
-* remote connection procedures: remote.exp.
-* remote connection, ending: remote.exp.
-* remote test machine name: Invoking runtest.
-* remote testbed, connecting to: Invoking runtest.
-* remote testing: Cross Targets.
-* remote testing via kermit: Invoking runtest.
-* remote testing via mondfe: Invoking runtest.
-* remote testing via rlogin: Invoking runtest.
-* remote testing via rsh: Invoking runtest.
-* remote testing via telnet: Invoking runtest.
-* remote testing via tip: Invoking runtest.
-* remote.exp: remote.exp.
-* remote_close SHELLID: remote.exp.
-* remote_open TYPE: remote.exp.
-* rlogin HOSTNAME: remote.exp.
-* rlogin, remote testing via: Invoking runtest.
-* rsh HOSTNAME: remote.exp.
-* rsh, remote testing via: Invoking runtest.
-* running: Invoking runtest.
-* running tests: Running Tests.
-* runtest description: Invoking runtest.
-* runtest exit code: Invoking runtest.
-* runtest option defaults: Config Values.
-* runtest option list: Invoking runtest.
-* runtest, listing options: Invoking runtest.
-* runtest, most common options: Running Tests.
-* runtest, variable defns on cmdline: Invoking runtest.
-* runtest.exp: Internals.
-* runtest_file_p RUNTESTS TESTCASE: utils.exp.
-* runtests: Config Values.
-* searching file contents: utils.exp.
-* selecting a range of tests <1>: utils.exp.
-* selecting a range of tests: Invoking runtest.
-* selecting tests for a tool: Invoking runtest.
-* serial download, tip: remote.exp.
-* serial line connection, kermit: remote.exp.
-* serial line connection, tip: remote.exp.
-* set current host: target.exp.
-* set current target: target.exp.
-* set_warning_threshold THRESHOLD: framework.exp.
-* setenv VAR VAL: utils.exp.
-* setting defaults for DejaGnu variables: Config Values.
-* setting environment variables: utils.exp.
-* setting up targets: Init Module.
-* setup_xfail "CONFIG [BUGID]": framework.exp.
-* site.exp: Customizing.
-* site.exp for all of DejaGnu: Master Config File.
-* site.exp for each person: Personal Config File.
-* site.exp for each tool: Local Config File.
-* site.exp, multiple: Customizing.
-* slay NAME: utils.exp.
-* slaying processes: utils.exp.
-* source directory: Invoking runtest.
-* sourcing Tcl files: utils.exp.
-* special variables: Variables.
-* specifying target name: Invoking runtest.
-* specifying the build config name: Invoking runtest.
-* specifying the host config name: Invoking runtest.
-* specifying the target configuration: Invoking runtest.
-* srcdir: Config Values.
-* standard conformance: POSIX 1003.3: Posix.
-* start procedure, tested tools: Target Dependent.
-* starting interactive tools: Init Module.
-* starting the tcl debugger: Invoking runtest.
-* subdir: Variables.
-* success, POSIX definition: Posix.
-* successful test: Invoking runtest.
-* successful test, unexpected: Invoking runtest.
-* suffix, expect scripts: Overview.
-* summary log: Summary.
-* target configuration test: framework.exp.
-* target configuration, specifying: Invoking runtest.
-* target dependent procedures: Target Dependent.
-* target machine name: Invoking runtest.
-* target, explained: Installation.
-* target.exp: target.exp.
-* target_triplet: Config Values.
-* targetname: Config Values.
-* targets: Cross Targets.
-* tcl: Tcl and Expect.
-* tcl debugger: Invoking runtest.
-* Tcl variables for option defaults: Config Values.
-* Tcl variables, defining for runtest: Invoking runtest.
-* TCLVAR=VALUE: Invoking runtest.
-* telnet HOSTNAME PORT: remote.exp.
-* telnet, remote testing via: Invoking runtest.
-* terminating remote connection: remote.exp.
-* test case cannot run: Invoking runtest.
-* test case messages: Invoking runtest.
-* test case warnings: Invoking runtest.
-* test case, debugging: Debugging.
-* test case, declaring ambiguity: framework.exp.
-* test case, declaring failure: framework.exp.
-* test case, declaring no support: framework.exp.
-* test case, declaring no test: framework.exp.
-* test case, declaring success: framework.exp.
-* test case, ERROR in: framework.exp.
-* test case, expecting failure: framework.exp.
-* test case, informational messages: framework.exp.
-* test case, WARNING in: framework.exp.
-* test case, WARNING threshold: framework.exp.
-* test case, writing: Tests.
-* test cases, debug log: Invoking runtest.
-* test directories, naming: Names.
-* test filename: Names.
-* test output, displaying all: Invoking runtest.
-* test programs, auxiliary: Invoking runtest.
-* test suite distributions: Configuring DejaGnu.
-* test, failing: Invoking runtest.
-* test, successful: Invoking runtest.
-* test, unresolved outcome: Invoking runtest.
-* test, unsupported: Invoking runtest.
-* tests, running: Running Tests.
-* tests, running order: Names.
-* tests, running specifically <1>: utils.exp.
-* tests, running specifically: Invoking runtest.
-* TET: Posix.
-* tip PORT: remote.exp.
-* tip, remote testing via: Invoking runtest.
-* tip_download SPAWNID FILE: remote.exp.
-* tool: Config Values.
-* tool command language: Tcl and Expect.
-* tool initialization: Init Module.
-* tool name, as installed: framework.exp.
-* tool names and naming conventions: Names.
-* TOOL_exit: Target Dependent.
-* TOOL_load: Target Dependent.
-* TOOL_start: Target Dependent.
-* TOOL_version: Target Dependent.
-* tracelevel: Config Values.
-* tracing Tcl commands: Invoking runtest.
-* transform: Init Module.
-* transform "TOOLNAME": framework.exp.
-* transform tool name: framework.exp.
-* turning on output: Invoking runtest.
-* unexpected success: Invoking runtest.
-* UNRESOLVED <1>: Invoking runtest.
-* UNRESOLVED: Posix.
-* unresolved "STRING": framework.exp.
-* unset current host: target.exp.
-* unset current target: target.exp.
-* unsetenv VAR: utils.exp.
-* unsetting environment variables: utils.exp.
-* UNSUPPORTED <1>: Invoking runtest.
-* UNSUPPORTED: Posix.
-* unsupported "STRING": framework.exp.
-* unsupported test: Invoking runtest.
-* UNTESTED <1>: Invoking runtest.
-* UNTESTED: Posix.
-* untested "STRING": framework.exp.
-* untested properties: Invoking runtest.
-* utilities, loading from init file: Init Module.
-* utils.exp: utils.exp.
-* variables for all tests: Variables.
-* variables for option defaults: Config Values.
-* variables of DejaGnu, defaults: Customizing.
-* verbose: Config Values.
-* verbose [-log] [-n] [-] "STRING" NUMBER: framework.exp.
-* verbose builtin function: framework.exp.
-* version numbers: Invoking runtest.
-* version procedure, tested tools: Target Dependent.
-* VxWorks, link with -r: Cross Targets.
-* WARNING <1>: framework.exp.
-* WARNING: Invoking runtest.
-* warning "STRING NUMBER": framework.exp.
-* Watch when a variable is read: debugger.exp.
-* Watch when a variable is unset: debugger.exp.
-* Watch when a variable is written: debugger.exp.
-* watchdel *watch*: debugger.exp.
-* watchread *var*: debugger.exp.
-* watchunset *var*: debugger.exp.
-* watchwrite *var*: debugger.exp.
-* What is New: What is New.
-* which BINARY: utils.exp.
-* writing a test case: Tests.
-* XFAIL <1>: Invoking runtest.
-* XFAIL: Posix.
-* XFAIL, avoiding for POSIX: Posix.
-* XFAIL, producing: framework.exp.
-* XPASS: Invoking runtest.
-* XPASS, producing: framework.exp.
-
-