diff options
Diffstat (limited to 'contrib/bluegnu2.0.3/doc/dejagnu.info-3')
-rw-r--r-- | contrib/bluegnu2.0.3/doc/dejagnu.info-3 | 1016 |
1 files changed, 1016 insertions, 0 deletions
diff --git a/contrib/bluegnu2.0.3/doc/dejagnu.info-3 b/contrib/bluegnu2.0.3/doc/dejagnu.info-3 new file mode 100644 index 0000000..3e91476 --- /dev/null +++ b/contrib/bluegnu2.0.3/doc/dejagnu.info-3 @@ -0,0 +1,1016 @@ +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. + + |