-*- text -*- Changes since 1.6.2: 1. The internal proc 'is_remote' has been renamed to 'isremote' for consistency with the other similar procs (eg, istarget). Testsuites should use this proc. The 'is_remote' proc is deprecated. 2. runtest now accepts --local_init and --global_init options to override the default of reading "site.exp". See the manual for details. 3. runtest now responds consistently to all Tcl errors and generates an UNRESOLVED result when a test script aborts. Previously, calling an undefined procedure would cause the test run to abort while other Tcl errors produced only an easily-ignored message. 4. runtest now collects Tcl errors encountered during a test run and prints the collected errors a second time at the end of the test run after the summary. Separator lines containing more than 10 hyphens are included. 5. A utility procedure relative_filename has been added. This procedure computes a relative file name to a given destination from a given base. 6. The utility procedure 'grep' now accepts a '-n' option that includes line numbers in the output, consistent with GNU grep. 7. The target_compile procedure now accepts a "linker=" option that overrides the compiler selection when producing an executable. 8. The internal default_target_compile procedure now supports compiling sources in Go (using GCC Go) and Rust. 9. The host_execute procedure no longer insists that the executable be in the current directory if the file exists under the given name. 10. The host_execute procedure now reads input to end-of-file, to ensure that the child process will be able to complete instead of being cut short by a SIGPIPE under unpredictable unfavorable timing scenarios. 11. The match patterns in the host_execute procedure have been revised to fix timing issues causing test names to be truncated. 12. The host_execute procedure is no longer sensitive to the value of the "text" global variable. 13. A new multiplex procedure "testsuite" is added for commands retrieving or providing information about the current testsuite. 14. A command "testsuite file" is added to replace the use of the "*dir" variables in test scripts. 15. A command "testsuite can call" is added to report the availability of multiplexed API calls. 16. A new multiplex procedure "testcase" is added for commands examining or manipulating the dynamic state of ongoing testing. 17. A command "testcase group" is provided for reporting test groups to the DejaGnu core. Currently, the usage of this command is validated, but it will affect at least XML output in a future release of DejaGnu. 18. A shell command "dejagnu" is added as a place to hang various auxiliary commands not directly involved with running tests. The "runtest" command will remain for that purpose for the foreseeable future. 19. The first auxiliary command is added: "report card". The "dejagnu report card" command reads DejaGnu summary files and produces a compact tabular summary across multiple tools. 20. A Tcl namespace is now used for some internal procedures and variables. The Tcl namespace ::dejagnu and all child namespaces are entirely internal and should not be mentioned in testsuite code. Its contents are subject to change without notice, even on point releases. 21. The DejaGnu testsuite no longer searches for a nearby Expect executable in the location where it would have been located in the old Cygnus tree layout. If you want to use a special Expect other than the system Expect, specify EXPECT=/name/of/expect to "runtest" or "make check". Changes since 1.6.1: 1. runtest will abort if $DEJAGNU is defined but the file is not found. Changes since 1.6: Minor bug fixes, no major changes. Changes since 1.5.3: 1. Proper support for target communication via SSH has been added. 2. A large number of very old config and baseboard files have been removed. If you need to resurrect these, you can get them from version 1.5.3. If you can show that a board is still in use, it can be put back in the distribution. 3. The --status command line option is now the default. This means that any error in the testsuite Tcl scripts will cause runtest to abort with exit status code 2. The --status option has been removed from the documentation, but will continue to be accepted for backward compatibility. 4. runtest now exits with exit code 0 if the testsuite "passed", 1 if something unexpected happened (eg, FAIL, XPASS or UNRESOLVED), and 2 if an exception is raised by the Tcl interpreter. 5. runtest now exits with the standard exit codes of programs that are terminated by the SIGINT, SIGTERM and SIGQUIT signals. 6. The user-visible utility procedures `absolute', `psource' and `slay' have been removed. If a testsuite uses any of these procedures, a copy of the procedure should be made and placed in the lib directory of the testsuite. 7. Support was added for testing the D compiler. 8. ~/.dejagnurc is now loaded last, not first. This allows the user to have the ability to override anything in their environment (even the site.exp file specified by $DEJAGNU). 9. The user-visible utility procedure `unsetenv' is deprecated and will be removed in the next release. If a testsuite uses any of these procedures, a copy of the procedure should be made and placed in the lib directory of the testsuite. Changes since 1.4.4: 1. The runtest.1 man page has been brought up to date. 2. The Docbook/SGML documentation files were removed in favour of the Docbook/XML documentation. The Texinfo source for the Info pages is now automatically generated from the Docbook source. 3. The Makefile structure has been substantially simplified. There is now a single top-level Makefile.am. The use of recursive make has been eliminated. 4. lib/mondfe.exp and lib/xsh.exp have been removed. Users requiring these communication modes can still use the DejaGnu 1.4 branch or can contact dejagnu@gnu.org to discuss reinstating these files. 5. The configure script now ensures that Expect is installed and that it is linked against Tcl 8.3 or greater. 6. The runtest program now gracefully handles the possibility of the expect binary vanishing after DejaGnu has been installed (for example, by the user altering their PATH). 7. The user-visible utility procedures `absolute', `prune', `psource' and `slay' are deprecated and will be removed in the next release. If a testsuite uses any of these procedures, a copy of the procedure should be made and placed in the lib directory of the testsuite. Changes since 1.4.2: 1. New XML output option, so test results can be loaded into a database. 2. Support for the KFAIL/KPASS (known failures). 3. New "Hello World" example. 4. New tutorial chapter. 5. Test cases build with either GCC 2.x or 3.x. 6. BlueGnu has been removed from the contrib directory. 7. The contrib/test* scipts were bitrotten and have been removed. If you still want copies of these, they can be found in the previous DejaGnu release. 8. i960glue.c has been removed. Changes since 1.4.1: 1. Various patches for bugs reported from net users. 2. Test case builds with either libstdc++-v3 (as used by GCC 3.0.x) or the older v2 (as used by GCC 2.95.x). Changes since 1.4.0: 1. There is new support for a simple unit testing API, that is also useful for embedded testing. Changes since 1.3: 1. DejaGnu is now back under active maintainance. The initial work has been rewriting the manual to bring it up to date, and switching to SGML. 2. NT support has also been added. 3. DejaGnu now uses Automake. Changes since 1.1.1: 1. Works with (included in release) Tcl 7.3 and Expect 5.6. 2. Much better error trapping and handling, including the execution of sub scripts. 3. Re-worked configuration subsystem. 4. Default handling for testing unknown targets. 5. New testsuite for expect and runtest. 6. More debugging procedures. Changes since 1.0: 1. DejaGnu now conforms to POSIX 1003.3, a standard for testing frameworks. 2. A Tcl debugger written by Don Libes has been added. 3. Lots of bug fixes. Changes since 0.9: 1. DejaGnu now installs itself like other utilities. 2. 700 G++ tests are included. 3. The bugs in the GCC tests have been fixed. 4. Testsuites are released separately. 5. Testsuite sources now reside with the within each tool's source tree.