Commit Graph

331 Commits

Author SHA1 Message Date
Eric Blake
81e79b1cb4 Fix more autotest regressions.
* lib/autotest/general.m4 (AT_LINE): Fix regression from
2007-10-04 when file name is `dnl'.
(AT_INIT) <PREPARE_TESTS>: Move command-line assignments...
<TESTS_BEGIN>: ...to this new diversion, to fix regression from
yesterday in libtool's testsuite.
(_AT_ARG_OPTION): Detect write failure.
* doc/autoconf.texi (Diversion support): Document PREPARE_TESTS to
make libtool's use kosher.  Document m4_init.
(Programming in M4sh): Document AS_INIT.
(Writing Testsuites): Document limitation of AT_DATA file name.
* tests/autotest.at (unusual file names): New test.
(Banners, Keywords and ranges): Use correct shell.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-01-29 16:56:36 -07:00
Eric Blake
66b8003184 More corner cases in testsuite VAR=VALUE handling.
* lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS): Fix quoting
bug.
<PARSE_ARGS_END>: Also detect leading digits in assignments.
* tests/autotest.at (Using atlocal): Enhance test to catch last
bug.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-01-29 10:24:12 -07:00
Eric Blake
372769ca9e Fix regression in handling VAR=VALUE arguments to testsuite.
* lib/autotest/general.m4 (AT_INIT) <PARSE_ARGS_END>: Detect
leading = as invalid.  Defer use of command-line variable
assignments...
<PREPARE_TESTS>: ...here, after atconfig has been sourced.  Fix
regression in sourcing files.
* tests/autotest.at (Using atlocal): New test to catch this.
(Debugging a successful test, Choosing where testsuite is run):
Use correct shell.
Reported by Ralf Wildenhues.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-01-28 22:49:22 -07:00
Eric Blake
c6c22af0e7 Minor testsuite improvements.
* lib/autotest/general.m4 (AT_INIT) <PREPARE_TESTS>: Use fewer
forks when sanitizing PATH.  Always output machine information,
not just when atconfig was located.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-01-28 07:02:43 -07:00
Eric Blake
b91a600e7f Add 'testsuite -C dir'.
* lib/autotest/general.m4 (_AT_ARG_OPTION): Move missing argument
detection...
(AT_INIT) <PARSE_ARGS_END>: ...here, since -k always takes
argument.
<DEFAULTS>: Delay computation of variables based on $at_dir...
<PREPARE_TESTS>: ...to here, since -C can change $at_dir.
<TESTS>: Re-invoke via absolute name, since -C may be in effect.
<PARSE_ARGS>: Parse new option.
<HELP_TUNING>: Document it.
* tests/autotest.at (Choosing where testsuite is run): New test
for this feature.
(Keywords and ranges): Add test for missing -k argument.
* NEWS: Document this.
* doc/autoconf.texi (testsuite Invocation): Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-01-28 06:57:46 -07:00
Ralf Wildenhues
4c2c793ed5 Fix some write failure cases in Autotest.
* lib/autotest/general.m4 (AT_INIT): Do not exit successfully
upon write failures for --help, --version, --list.
Guard against write failures for intermediate created scripts.
<at_func_create_debugging_script>: Do not make the debugging
script executable if it is not complete.
2007-12-16 22:24:14 +01:00
Ralf Wildenhues
064ce0b6be Fix Autotest for whitespace in pwd.
* lib/autotest/general.m4 (AT_INIT)
<at_func_create_debugging_script, Driver Loop>:
Quote $at_group_dir.
* tests/autotest.at (whitespace in absolute testdir): New test.
2007-12-08 11:49:15 +01:00
Stepan Kasal
2fe86f6854 * lib/autotest/general.m4 (AT_INIT): Do not extract the
`#AT_STOP_...' line at the end of each test.
2007-11-24 00:35:16 +01:00
Ralf Wildenhues
ce4ff03763 Fix awk script optimization.
* lib/autotest/general.m4 (AT_INIT): For awk line number
extraction script, ensure `$at_group' has a defined value
even for the empty set, and properly quote its usage inside
the awk script.
2007-11-23 19:42:00 +01:00
Ralf Wildenhues
844f770885 * lib/autotest/general.m4 (AT_INIT): Exit awk script after
extracting the line numbers of the last needed test.
2007-11-22 08:09:03 +01:00
Ralf Wildenhues
33df9071f5 * lib/autotest/general.m4 (AT_INIT) <at_func_create_debugging_script>:
Fix quoting.
2007-11-20 22:11:47 +01:00
Ralf Wildenhues
4d8234a76c Fix IRIX testsuite debugging failures: $0 in functions.
* lib/autotest/general.m4 (AT_INIT) <at_func_create_debugging_script>:
Do not use $0 inside a function, as IRIX sh will set that to the
function name rather than the script invocation name.
2007-11-19 21:24:54 +01:00
Paolo Bonzini
22ced06229 * lib/autotest/general.m4 (at_func_test): Use cached line numbers
to extract test scripts.
(AT_INIT): Extract and cache test script line numbers.
2007-11-19 21:19:15 +01:00
Ralf Wildenhues
dad571f749 * lib/autotest/general.m4: Revert 2007-11-15 patch and
subsequent fixups; the awk -> here-document conversion trashes
performance too much with AIX sh.
2007-11-19 21:18:04 +01:00
Ralf Wildenhues
90661f5cd9 Avoid error with Tru64 awk and testsuite lines with many words.
* lib/autotest/general.m4 (AT_INIT): In the awk script that
reads the testsuite, set the field separator to an unusual value,
in order to not run over the limit of 199 fields.  Tru64 4.0D awk
even splits the input if $i, i>0, was never accessed in the script.
2007-11-17 09:36:17 +01:00
Ralf Wildenhues
c19717746b Indentation fixups.
* lib/autotest/general.m4 (AT_INIT) <at_func_log_failure>: Fix
indentation.
(_AT_CHECK): Use less indentation, to save space.
2007-11-16 07:48:55 +01:00
Ralf Wildenhues
8c29e96f9d * lib/autotest/general.m4 (at_func_test): Remove.
(AT_INIT): Pre-extract test groups into separate files.
(AT_CLEANUP): Source pre-extracted file instead of calling at_func_test.
Remove at-test-source files together with the $at_group_dir.
* tests/autotest.at (Long test source lines): New test.
2007-11-15 22:23:59 +01:00
Ralf Wildenhues
83bd220b0c Avoid expr for arithmetic evaluation if the shell accepts $((...)).
* lib/autotest/general.m4 (AT_INIT) <at_func_arith>: New
function, to parametrize arithmetic with expr vs. the shell.
Use it where possible.
Suggestion by Benoit Sigoure.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2007-11-09 07:49:29 +01:00
Jim Meyering
7ffc555888 Remove all generated files from version control.
* aclocal.m4: Remove.
* configure: Remove.
* Makefile.in: Remove, along with all other Makefile.in in subdirs.
* .gitignore: Add aclocal.m4, configure and Makefile.in.  Sort.
* README-hacking: New file: how to build from just-checked-out sources.
2007-10-27 12:44:59 +02:00
Ralf Wildenhues
92412a20d5 Validate testsuite range arguments.
* lib/autotest/general.m4 (Defaults): Validate input ranges ...
<at_func_validate_ranges>: ... using this new function.
* tests/autotest.at (Keywords and ranges): Test invalid ranges.
Test --list with ranges and keywords.
(Banners): Remove one now-failing test.
2007-10-21 17:34:44 +02:00
Eric Blake
9cd3a80e3c Fix testsuite --list subset.
* lib/autotest/general.m4 (AT_INIT) <at_list_p>: Swap newlines
back to spaces, before listing subset of tests.
Reported by Ralf Wildenhues.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-20 22:39:23 -06:00
Eric Blake
f034d89307 Improve AT_BANNER handling.
* lib/autotest/general.m4 (BANNERS): New named diversion.
(TESTS_END): Diversion no longer used.
(AT_INIT) <at_func_banner, BANNERS>: Factor all banners into a
shell function, which prints only as needed, using an associative
array of banner text from a special diversion.
<PARSE_ARGS_END>: No longer need awk to find banners.
<TESTS>: Banners are no longer processed by main driver loop, so
we no longer need case statement.
(AT_BANNER): Rewrite to populate new diversion.
(AT_SETUP): Each test invokes its own banner.  No output is needed
to the TESTS diversion.
* doc/autoconf.texi (Writing Testsuites): Document slight
semantics change.
* tests/autotest.at (AT_BANNERS): Enhance test.
* NEWS: Document AT_BANNER.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-19 06:29:10 -06:00
Eric Blake
32d3effc40 Ignore `make dist' changelogs in testsuite.log.
* lib/autotest/general.m4 (AT_INIT) <ChangeLogs>: Prune
directories matching AT_PACKAGE_TARNAME-*.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-18 18:38:34 -06:00
Eric Blake
5b6f53e441 Fix AT_TESTED, AT_KEYWORDS.
* lib/m4sugar/m4sugar.m4 (m4_append_uniq): Warn if separator
occurs in string, as duplicates may be added.
(_m4_append_uniq): New helper macro.
(m4_append_uniq_w): New macro.
* lib/autotest/general.m4 (AT_TESTED, AT_KEYWORDS): Fix
duplication bug by using new macro.
(AT_INIT) <at_tested>: Restore newline separators.  Invoke tested
programs with stdin redirected, so programs that don't
understand --version won't try to behave interactively.
* tests/autotest.at (Tested programs): Catch this bug.
* tests/m4sugar.at (m4@&t@_append): Test new macro.
* tests/local.at (AT_TESTED): Add m4, perl.
* doc/autoconf.texi (Text processing Macros): Document
m4_append_uniq_w, and update text on m4_append.
* NEWS: Document the addition.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-18 09:46:19 -06:00
Eric Blake
78fd34e4f7 Function cleanup.
* lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): Convert
from m4 macro...
(AT_INIT) <at_func_create_debugging_script>: ...to shell
function.
(AT_INIT): Defer function declarations until after --help,
--version.  Format functions consistently, trying to fit in 80
columns.
(TEST_FUNCTIONS): Based on recent changes, rename...
(TEST_GROUPS): ...to this.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-18 08:23:10 -06:00
Eric Blake
99be329141 Kill trailing whitespace.
Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-17 14:41:41 -06:00
Ralf Wildenhues
b3aa97c727 Autotest: do not use shell functions for individual tests.
* lib/autotest/general.m4 (AT_INIT) <at_func_test>: Merely
extract the source test source, do not invoke it.
(AT_SETUP, AT_CLEANUP): Source test code outside shell function.
* tests/autotest.at (Fallacy): Actually let the inner suite fail,
expect exit status of 1.
* tests/autotest.at (Skip): New test, for bogus zsh exit status.
2007-10-17 21:12:36 +02:00
Ralf Wildenhues
e492685ef7 * lib/autotest/general.m4 (at_func_test): Fix test extraction script. 2007-10-17 21:11:07 +02:00
Eric Blake
fd1344033b Fix 2007-10-03 regression with AT_SETUP([a, b]).
* lib/m4sugar/m4sugar.m4 (m4_expand): New macro.
* lib/autotest/general.m4 (AT_SETUP): Use it to preserve
whitespace after single-quoted comma.
* tests/autotest.at (AT_CHECK_AT_TITLE_CHAR): Test this.
* NEWS: Revert caveat about semantics change on comma.
* doc/autoconf.texi (Programming in M4): Lighten the warning on
using m4sugar; it is stabilizing.
(Redefined M4 Macros): Touch up wording on M4 builtins.
(Evaluation Macros): Document m4_expand.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-15 08:43:21 -06:00
Eric Blake
2857151c76 Speed up execution of subset of testsuite.
* lib/autotest/general.m4 (TEST_FUNCTIONS): New diversion.
(AT_INIT) <at_func_test>: New shell function.
(AT_INIT) <at_myself>: New variable, set to absolute $as_myself.
(AT_INIT) <at_test_source> New variable, names file that holds
current test function definition.
(AT_SETUP): Start the shell function at_func_test_#, into the
TEST_FUNCTIONS diversion.
(AT_CLEANUP): End the shell function.  Simplify the TESTS
diversion to invoke the function.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-12 09:29:10 -06:00
Ralf Wildenhues
392e227524 * lib/autotest/general.m4: Put function braces in separate line. 2007-10-11 01:49:50 +02:00
Eric Blake
94a9faded7 Fix regression in m4_text_wrap from 2007-10-05.
* lib/m4sugar/m4sugar.m4 (m4_max, m4_min): New macros.
(m4_sign): Sort.
(m4_text_wrap): Fix off-by-one error in rewrite from m4_for to
m4_format.
* lib/autotest/general.m4 (AT_SETUP): Avoid negative width.
* tests/autotest.at (Long test title, Longer test title): Test
this fix, beyond what AS_HELP_STRING already tests.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-08 14:09:22 -06:00
Eric Blake
a83ac461c6 Avoid m4 warnings on bad m4_format usage.
* lib/m4sugar/m4sugar.m4 (m4_text_wrap): Use %*s, in case width
evaulates to 0.
* lib/autotest/general.m4 (AT_ordinal): Likewise; also ensure that
enough arguments are provided.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-08 10:46:21 -06:00
Paolo Bonzini
1020cacbe3 autotest speed improvements
2007-10-06  Paolo Bonzini  <bonzini@gnu.org>

	* lib/autotest/general.m4 (AT_INIT): Add at_func_diff_devnull,
	at_func_check_skip, at_func_check_status, at_func_filter_trace,
	at_func_log_failure shell functions.  Use test -s to avoid
	useless diff invocations.
	(AT_SETUP): Define AT_captured_files to empty.
	(AT_DIFF_STDERR(*), AT_DIFF_STDOUT(*)): New, extracted from _AT_CHECK.
	(_AT_CHECK): Replace m4_case with m4_ifdef/m4_indir.  Use all
	the shell functions.

Signed-Off-By:  Paolo Bonzini  <bonzini@gnu.org>
2007-10-06 11:26:14 +02:00
Eric Blake
4e9078ba0b Provide better short-circuiting operation.
* lib/m4sugar/m4sugar.m4 (m4_cond, m4_newline): New macros.
(m4_text_wrap): Use it.  Also avoid useless m4_for.
* lib/m4sugar/m4sh.m4 (_AS_QUOTE_IFELSE, AS_LITERAL_IF): Use
new macro.
(_AS_IDENTIFIER_IF): Likewise, and fix bug when $1 is [,].
* lib/autotest/general.m4 (_AT_DECIDE_TRACEABLE): Use new macros
to avoid regexps.
* doc/autoconf.texi (Redefined M4 Macros): Expand m4_if
documentation.  Sort m4_mkstemp, m4_undefine.  Move m4_ifndef...
(Conditional constructs): ...here, to new section.  Also document
m4_cond, m4_ifval, m4_n, m4_ifvaln, m4_ifset, m4_case, m4_bmatch,
m4_bpatsubsts, and m4_default.
(Looping constructs): Document m4_shiftn, m4_shift2, m4_shift3,
m4_do.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-05 11:25:20 -06:00
Eric Blake
2152c1e75f Fix recent testsuite failures.
* lib/autotest/general.m4 (AT_INIT, AT_SETUP): Double-quote text
that must not be re-expanded after AS_ESCAPE.
* lib/m4sugar/m4sh.m4 (_AS_IDENTIFIER_IF): Don't expand $1 when
checking if it is an identifier.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-04 17:07:42 -06:00
Eric Blake
c85ce295a0 Whitespace cleanup.
* lib/autotest/general.m4 (_AT_CREATE_DEBUGGING_SCRIPT): Avoid
leading whitespace, as it caused space-tab in testsuite.
(AT_INIT): Avoid trailing newlines in testsuite.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-04 14:35:14 -06:00
Paolo Bonzini
4b10ac1293 use shell functions to speed up autotest and produce slimmer testsuites
2007-10-04  Paolo Bonzini  <bonzini@gnu.org>

	* general.m4 (AT_INIT): Add at_check_newline function.
	(_AT_DECIDE_TRACEABLE): Include at_traceon test, use shell function.
	(_AT_CHECK): Don't use at_trace_this.

Signed-off-by:  Paolo Bonzini  <bonzini@gnu.org>
2007-10-04 21:49:16 +02:00
Paolo Bonzini
e6cf284ade Fix previous commit.
* lib/autotest/general.m4 (AT_LINE): Fix regex.

Signed-off-by:  Paolo Bonzini  <bonzini@gnu.org>
2007-10-04 17:15:21 +02:00
Eric Blake
4c7d289c7d Speed up building testsuites.
* lib/autotest/general.m4 (AT_LINE): Only use regex when file
changed since last time.  Use simpler regex.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-04 07:13:50 -06:00
Eric Blake
8b299b6d82 Remove some XFAILs, and make AT_SETUP output line up.
* lib/autotest/general.m4 (AT_SETUP): Only expand description
once; thereafter, use its expansion, properly quoted.
* tests/autotest.at (AT_CHECK_AT_TITLE): Also check macro
expansion with arguments, and check for aligned output.
(AT_CHECK_AT_TITLE_CHAR): Remove XFAILs for tests that now pass.
Add a test for macros with parameters.
* NEWS: Document the semantics change.
* tests/base.at: Fix test titles containing commas.
* tests/compile.at: Likewise.
* tests/tools.at: Likewise.
* tests/torture.at: Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-10-03 16:20:45 -06:00
Stepan Kasal
755596a7ae Autotest no longer caters to Ultrix redirection limitation.
* doc/autoconf.texi (Writing testsuite.at): Remove the
limitation that the first parameter of AT_CHECK cannot
contain redirection.
(File Descriptors): Mention that Ultrix limitation is no longer a
show-stopper in modern code.
* tests/local.at (AT_CHECK_M4): Fix for cases when the fourth
parameter is `stderr' or `experr'.  Optimize if it was `ignore'.
* lib/autotest/general.m4 (AT_CHECK): Update comment.
2007-09-27 21:09:18 -06:00
Eric Blake
3b121ee688 Autotest formatting touchups.
* lib/autotest/general.m4 (HELP_TUNING): Avoid TAB in terminal
output.
(PATH): Simplify computation of new PATH.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-09-27 09:32:55 -06:00
Jim Meyering
06f2cb9db6 Whenever possible, use the vertical bar as sed delimiter.
* lib/autoconf/functions.m4 (GETLOADAVG_LIBS) [AC_FUNC_GETLOADAVG]:
Use "|", not "!".
* lib/autoconf/status.m4 (_AC_SRCDIRS) [ac_top_builddir_sub]:
[ac_dir_suffix]: Use "|", not "," as sed delimiter.
* tests/mktests.sh (as_me): Likewise.
* lib/freeze.mk (check-forbidden-patterns): Likewise.
* lib/autoconf/fortran.m4 (_AC_PROG_FC_V_OUTPUT): Likewise.
* configure: Regenerate.
* doc/autoconf.texi (Shell Substitutions): Use "|", not "," in examples.
* lib/autotest/general.m4 (AT_INIT): Use "|", not "&" as sed delimiter
in the : -> $PATH_SEPARATOR transformation of $AUTOTEST_PATH.  This is fine,
as long as $PATH_SEPARATOR doesn't contain "|".
2007-09-24 21:57:21 +02:00
Eric Blake
bf1af030e2 Prepare for conversion to git.
* doc/.cvsignore: Avoid multiple listings on one line.
* bin/.cvsignore: Likewise.
* .gitignore, bin/.gitignore, config/.gitignore, doc/.gitignore,
lib/.gitignore, lib/Autom4te/.gitignore, lib/autoconf/.gitignore,
lib/autoscan/.gitignore, lib/autotest/.gitignore,
lib/emacs/.gitignore, lib/m4sugar/.gitignore, man/.gitignore,
tests/.gitignore: New files, identical to .cvsignore counterpart.
2007-09-14 22:25:56 +00:00
Paul Eggert
b411b77358 Reword the copyright notices to match what's suggested in GPLv3. 2007-07-20 23:11:49 +00:00
Paul Eggert
f448ac9647 Update to GPLv3. 2007-07-03 20:28:58 +00:00
Noah Misch
aa643c7ef8 * lib/autotest/general.m4 (AT_INIT): Handle absolute `srcdir'.
* tests/autotest.at (srcdir propagation): Test absolute `srcdir' and
`srcdir' as subdirectory of `builddir'.
2007-06-19 19:49:05 +00:00
Noah Misch
fdb749cd8a * lib/autotest/general.m4 (AT_INIT): Compute $srcdir correctly.
* tests/autotest.at (srcdir propagation): New test.
* THANKS: Update.
Reported by Mike Frysinger.
2007-06-14 01:32:28 +00:00
Paul Eggert
48656aea07 * lib/m4sugar/m4sh.m4 (_AS_PATH_SEPARATOR_PREPARE): Set FPATH too.
Problem reported by Fred Kreek in
<http://lists.gnu.org/archive/html/bug-autoconf/2007-06/msg00009.html>.
* doc/autoconf.texi (Special Shell Variables): Warn about FPATH.
(Macro Names, Defining Directories): Don't mention PATH as a name
for a fully qualified file name, as this usage violates the GNU
coding standards and we shouldn't recommend it.

* lib/autotest/general.m4 (AT_INIT): Don't set PATH to the empty
string and then assume shell builtins like "test" will work.
2007-06-13 16:52:24 +00:00