* dejagnu: Improve command parsing to fix bug. Previously, the
documented equivalence between "multi word command" and
"multi-word-command" did not hold if no arguments were given.
* testsuite/launcher.all/command.exp: Add tests.
Signed-off-by: Ben Elliston <bje@gnu.org>
contents of $(commands_DATA).
(bin_SCRIPTS): Add "dejagnu" launcher script.
(commandsdir): Installation directory for "dejagnu" subcommands is
$(pkgdatadir)/commands.
(commands_DATA): New, contains "commands/help.sh" as initial item.
(TESTSUITE_FILES): Add testsuite for same.
(DEJATOOL): Add "launcher" to list of tools to test.
(dist_man_MANS): Add man pages for "dejagnu" and "dejagnu help".
* doc/dejagnu.texi (Running other DejaGnu commands): New chapter.
(Invoking dejagnu): New node for dejagnu(1) launcher script.
(Invoking dejagnu help): New node.
* doc/dejagnu.1: New man page.
* doc/dejagnu-help.1: New man page.
* dejagnu: New script.
* commands/help.sh: New dejagnu subcommand for reading manpages.
* testsuite/launcher.all/command.exp: New file.
* testsuite/launcher.all/command/commands/bar-baz.awk: New file.
* testsuite/launcher.all/command/commands/bar.awk: New file.
* testsuite/launcher.all/command/commands/bar.sh: New file.
* testsuite/launcher.all/command/commands/baz-quux.gawk: New file.
* testsuite/launcher.all/command/commands/foo.sh: New file.
* testsuite/launcher.all/command/commands/foo.tcl: New file.
* testsuite/launcher.all/help.exp: New file.
* testsuite/launcher.all/interp.exp: New file.
* testsuite/launcher.all/verbose.exp: New file.
* testsuite/lib/launcher.exp: New file.
Signed-off-by: Ben Elliston <bje@gnu.org>
(send_user): Likewise.
* testsuite/runtest.libs/clone_output.test: Remove unneeded global
variable link at top-level.
* testsuite/runtest.libs/utils.test: Adjust absolute path to
config.status.
* testsuite/runtest.libs/clone_output.test: Use preset srcdir,
subdir, and objdir variables instead of extracting them from argv.
Remove setval.tmp, which is now obsolete.
* testsuite/runtest.libs/config.test: Likewise.
* testsuite/runtest.libs/remote.test: Likewise.
* testsuite/runtest.libs/target.test: Likewise.
* testsuite/runtest.libs/testsuite_file.test: Likewise.
* testsuite/runtest.libs/utils.test: Likewise.
* testsuite/lib/libsup.exp (make_defaults_file): Replace this ..
(send_defaults): .. with this.
(start_expect): Remove redundant code.
* testsuite/runtest.libs/libs.exp: Eliminate setval.tmp file.
Remove unneeded test for EXPECT global variable.
Use one Expect subprocess to run all test cases.
(process_test): Redesign to use Expect subprocess and to use
throwaway slave interpreters for running test cases.
Signed-off-by: Ben Elliston <bje@gnu.org>
Move the sanity check in runtest_start to top-level and similarly
check to ensure that $EXPECT can be found. Make failure of either
sanity check an immediate fatal error.
Improve error messages for sanity checks to indicate which
critical tool was not found. Remove useless 'global RUNTEST'
command at top-level.
(runtest_version): Brace 'if' expression.
Signed-off-by: Ben Elliston <bje@gnu.org>
lib/dg.exp, lib/ftp.exp, lib/kermit.exp, lib/rlogin.exp,
lib/telnet.exp, runtest.exp, testsuite/lib/libsup.exp: Simplify
some regular expressions in constant strings by placing them
inside braces instead of quotes. This allows one level of
backslash quoting to be removed.
* testsuite/runtest.all/load_lib.exp: Likewise.
* testsuite/runtest.all/stats.exp: Likewise.
* testsuite/runtest.all/stats.exp: Write local init file as
"stats-init.exp" for status summary tests. Use --local_init
option to runtest to load that file instead of site.exp and move
the inner test module to a nested testsuite.
* testsuite/runtest.all/stats-sub.exp: Move file from here ..
* testsuite/runtest.all/stats/testsuite/stat.test/stats-sub.exp:
.. to here.
* testsuite/runtest.all/options.exp: Clean up whitespace in file.
Wrap lines in test list and move short items to beginning of list.
Write local init file as "options-init.exp" for options tests.
Use --local_init option with nested runtest to load that file
instead of site.exp; also create an empty nested testsuite. Local
init file arranges for inner runtest processes to run in a
subdirectory in the object tree to eliminate filename clashes.
Set tmpdir if not already set and remove entire temporary
directory after running options tests.
* testsuite/runtest.all/options/testsuite/null.test/null.exp: New.
* testsuite/runtest.all/clone_output.test: Move from here ..
* testsuite/runtest.libs/clone_output.test: .. to here.
* testsuite/runtest.all/config.test: Move from here ..
* testsuite/runtest.libs/config.test: .. to here.
* testsuite/runtest.all/default_procs.tcl: Move from here ..
* testsuite/runtest.libs/default_procs.tcl: .. to here.
* testsuite/runtest.all/libs.exp: Move from here ..
* testsuite/runtest.libs/libs.exp: .. to here.
* testsuite/runtest.all/load_lib.exp: Move from here ..
* testsuite/runtest.libs/load_lib.exp: .. to here.
* testsuite/runtest.all/remote.test: Move from here ..
* testsuite/runtest.libs/remote.test: .. to here.
* testsuite/runtest.all/target.test: Move from here ..
* testsuite/runtest.libs/target.test: .. to here.
* testsuite/runtest.all/testsuite_file.test: Move from here ..
* testsuite/runtest.libs/testsuite_file.test: .. to here.
* testsuite/runtest.all/topdir/subdir1/subfile1: Move from here ..
* testsuite/runtest.libs/topdir/subdir1/subfile1: .. to here.
* testsuite/runtest.all/topdir/subdir1/subfile2: Move from here ..
* testsuite/runtest.libs/topdir/subdir1/subfile2: .. to here.
* testsuite/runtest.all/topdir/subdir1/subsubdir1/subsubfile1:
Move from here ..
* testsuite/runtest.libs/topdir/subdir1/subsubdir1/subsubfile1:
.. to here.
* testsuite/runtest.all/topdir/subdir2/subfile2: Move from here ..
* testsuite/runtest.libs/topdir/subdir2/subfile2: .. to here.
* testsuite/runtest.all/utils.test: Move from here ..
* testsuite/runtest.libs/utils.test: .. to here.
* testsuite/runtest.libs/utils.test: Update references to
"runtest.all".
* testsuite/runtest.all/options.exp: Move from here ..
* testsuite/runtest.main/options.exp: .. to here.
* testsuite/runtest.all/options/testsuite/null.test/null.exp: Move
from here ..
* testsuite/runtest.main/options/testsuite/null.test/null.exp:
.. to here.
* testsuite/runtest.all/stats.exp: Move from here ..
* testsuite/runtest.main/stats.exp: .. to here.
* testsuite/runtest.all/stats/testsuite/stat.test/stats-sub.exp:
Move from here ..
* testsuite/runtest.main/stats/testsuite/stat.test/stats-sub.exp:
.. to here.
* Makefile.am (DISTCLEANFILES): Update for testsuite improvements.
(TESTSUITE_FILES): Update to reflect testsuite reorganization.
* Makefile.in: Regenerate.
Signed-off-by: Ben Elliston <bje@gnu.org>
were changed to use the Texinfo '@ ' command (yes, a space
character) to preserve correct indentation. The '@ ' command is
treated as a single space by Tex and makeinfo, but prevents Emacs
from complaining about indentation using spaces instead of tabs.
Signed-off-by: Ben Elliston <bje@gnu.org>
priority of Expect patterns, complete with example.
* testsuite/runtest.all/libs.exp (process_test): Fix bug that
caused test results other than "PASS" to be skipped if a "PASS" is
further along in the input buffer. Describe problem in manual.
(process_test): Ensure that the log file shows each test case run.
(process_test): Directly run the test cases instead of using
temporary files and "cat". All output is always available in the
log file, which is no longer overwritten by other tests.
(process_test): Expect END markers from test case scripts.
* testsuite/runtest.all/clone_output.test: Emit END markers.
* testsuite/runtest.all/config.test: Likewise.
* testsuite/runtest.all/remote.test: Likewise.
* testsuite/runtest.all/target.test: Likewise.
* testsuite/runtest.all/testsuite_file.test: Likewise.
* testsuite/runtest.all/utils.test: Likewise.
Signed-off-by: Ben Elliston <bje@gnu.org>
and catching the "no files matched glob pattern" error
message. Catching the error message was the wrong thing to do
because the foreach loop then iterates over each word in the error
message as if they were matches.
* doc/dejagnu.texi (testsuite procedure): Document multiplex entry
point and "testsuite file" command.
* lib/framework.exp (testsuite): New proc for multiplex commands.
(testsuite_file): New proc implementing "testsuite file".
* testsuite/runtest.all/testsuite_file.test: New file.
* runtest.exp: Expect to find testsuite in ${srcdir}/testsuite,
but also search $srcdir itself.
(load_lib): Add explicit search for testsuite-local libraries.
(load_tool_init): Use $testsuitedir in search.
(load_config): Use $testsuitedir instead of $srcdir.
(load_tool_target_config): Likewise.
Add variable "testsuitedir" for testsuite root directory.
Add internal global variables "testbuilddir" and "testdir" for use
by "testsuite file".
Ensure that $testsuitedir, $testbuilddir, and $objdir also avoid
duplicated path delimiters.
Add warning if no tests are found and fallback method of searching
$srcdir is used.
Signed-off-by: Ben Elliston <bje@gnu.org>