mirror of
git://git.sv.gnu.org/autoconf
synced 2024-11-27 01:49:56 +08:00
* lib/autotest/general.m4 (AT_INIT) <--help>: Catch up with reality.
No longer output the list of tests. <--list>: New option. <--full-help>: Remove. Complete the short/long options duality. Various small adjustments.
This commit is contained in:
parent
6f4642a30f
commit
d3cd8d95c2
@ -1,3 +1,12 @@
|
||||
2001-10-01 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* lib/autotest/general.m4 (AT_INIT) <--help>: Catch up with reality.
|
||||
No longer output the list of tests.
|
||||
<--list>: New option.
|
||||
<--full-help>: Remove.
|
||||
Complete the short/long options duality.
|
||||
Various small adjustments.
|
||||
|
||||
2001-10-01 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* doc/autoconf.texi: Use @kbd for user input.
|
||||
|
@ -92,7 +92,7 @@ m4_define([AT_INIT],
|
||||
m4_pattern_forbid([^_?AT_])
|
||||
m4_pattern_forbid([PACKAGE_(BUGREPORT|STRING)$])
|
||||
m4_define([AT_TESTSUITE_NAME],
|
||||
m4_defn([PACKAGE_STRING])[ test suite]m4_ifval([$1], [: $1])[.])
|
||||
m4_defn([PACKAGE_STRING])[ test suite]m4_ifval([$1], [: $1]))
|
||||
m4_define([AT_ordinal], 0)
|
||||
m4_define([AT_banner_ordinal], 0)
|
||||
m4_define([AT_data_files], [stdout expout at-* stderr experr])
|
||||
@ -122,15 +122,17 @@ at_times=:
|
||||
# CLI Arguments to pass to the debugging scripts.
|
||||
at_debug_args=
|
||||
# -e sets to true
|
||||
at_stop_on_error=false
|
||||
at_errexit_p=false
|
||||
# Shall we be verbose?
|
||||
at_verbose=:
|
||||
at_quiet=echo
|
||||
# Shall we keep the debug scripts? Must be `:' when test suite is
|
||||
# run by a debug script, so that the script doesn't remove itself.
|
||||
at_debug=false
|
||||
at_debug_p=false
|
||||
# Display help message?
|
||||
at_help=no
|
||||
at_help_p=false
|
||||
# List tests?
|
||||
at_list_p=false
|
||||
# Tests to run
|
||||
at_tests=
|
||||
m4_wrap([m4_divert_text([DEFAULT],
|
||||
@ -148,13 +150,15 @@ m4_divert([OPTIONS])
|
||||
|
||||
while test $[@%:@] -gt 0; do
|
||||
case $[1] in
|
||||
--help | -h) at_help=short
|
||||
--help | -h )
|
||||
at_help_p=:
|
||||
;;
|
||||
|
||||
--full-help | -H ) at_help=long
|
||||
--list | -l )
|
||||
at_list_p=:
|
||||
;;
|
||||
|
||||
--version)
|
||||
--version | -V )
|
||||
echo "$as_me (PACKAGE_STRING)"
|
||||
exit 0
|
||||
;;
|
||||
@ -166,17 +170,21 @@ while test $[@%:@] -gt 0; do
|
||||
exit 0
|
||||
;;
|
||||
|
||||
-d) at_debug=:
|
||||
--debug | -d )
|
||||
at_debug_p=:
|
||||
;;
|
||||
|
||||
-e) at_debug=:
|
||||
at_stop_on_error=:
|
||||
--errexit | -e )
|
||||
at_debug_p=:
|
||||
at_errexit_p=:
|
||||
;;
|
||||
|
||||
-v) at_verbose=echo; at_quiet=:
|
||||
--verbose | -v )
|
||||
at_verbose=echo; at_quiet=:
|
||||
;;
|
||||
|
||||
-x) at_traceon='set -vx'; at_traceoff='set +vx'
|
||||
--trace | -x )
|
||||
at_traceon='set -vx'; at_traceoff='set +vx'
|
||||
;;
|
||||
|
||||
[[0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]])
|
||||
@ -248,50 +256,69 @@ while test $[@%:@] -gt 0; do
|
||||
shift
|
||||
done
|
||||
|
||||
# Selected tests.
|
||||
test -z "$at_tests" && at_tests=$at_tests_all
|
||||
|
||||
# Help message.
|
||||
if test "$at_help" != no; then
|
||||
# If tests were specified, display only their title.
|
||||
if test -z "$at_tests"; then
|
||||
cat <<_ATEOF
|
||||
Usage: $[0] [[OPTION]]... [[TESTS]] [[VAR=VALUE]]
|
||||
if $at_help_p; then
|
||||
cat <<_ATEOF
|
||||
Usage: $[0] [[OPTION]... [VARIABLE=VALUE]... [TESTS]]
|
||||
|
||||
Run all the tests, or the selected TESTS.
|
||||
Run all the tests, or the selected TESTS, and save a detailed log file.
|
||||
Upon failure, create debugging scripts.
|
||||
|
||||
Options:
|
||||
-h Display this help message and the description of TESTS
|
||||
-c Remove all the files this test suite might create and exit
|
||||
-e Abort the test suite as soon as a test fails; implies -d
|
||||
-v Force more detailed output, default for debugging scripts
|
||||
-d Inhibit clean up and debug script creation, default for debugging scripts
|
||||
-x Have the shell trace command execution
|
||||
You should not change environment variables unless explicitly passed
|
||||
as command line arguments. Set \`AUTOTEST_PATH' to select the executables
|
||||
to exercise. Each relative directory is expanded as build and source
|
||||
directories relatively to the top level of this distribution. E.g.,
|
||||
|
||||
Tests:
|
||||
$ $[0] AUTOTEST_PATH=bin
|
||||
|
||||
possibly amounts into
|
||||
|
||||
PATH=/tmp/foo-1.0/bin:/src/foo-1.0/bin:\$PATH
|
||||
|
||||
Operation modes:
|
||||
-h, --help print the help message, then exit
|
||||
-V, --version print version number, then exit
|
||||
-c, --clean remove all the files this test suite might create and exit
|
||||
-l, --list describes all the tests, or the selected TESTS
|
||||
|
||||
Execution tuning:
|
||||
-k, --keywords=KEYWORDS
|
||||
select the tests matching all the comma separated KEYWORDS
|
||||
accumulates
|
||||
-e, --errexit abort as soon as a test fails; implies --debug
|
||||
-v, --verbose force more detailed output
|
||||
default for debugging scripts
|
||||
-d, --debug inhibit clean up and debug script creation
|
||||
default for debugging scripts
|
||||
-x, --trace enable tests shell tracing
|
||||
|
||||
Report bugs to <PACKAGE_BUGREPORT>.
|
||||
_ATEOF
|
||||
else
|
||||
# " 1 42 45 " => "^(1|42|45);"
|
||||
at_tests_pattern=`echo "$at_tests" | sed 's/^ *//;s/ *$//;s/ */|/g'`
|
||||
at_tests_pattern="^(${at_tests_pattern});"
|
||||
fi
|
||||
case $at_help in
|
||||
short)
|
||||
echo "$at_help_all" |
|
||||
egrep -e "$at_tests_pattern" |
|
||||
awk 'BEGIN { FS = ";" }
|
||||
{ if ($[1]) printf " %3d: %s\n", $[1], $[3] } ';;
|
||||
long)
|
||||
echo "$at_help_all" |
|
||||
egrep -e "$at_tests_pattern" |
|
||||
awk 'BEGIN { FS = ";" }
|
||||
{ if ($[1]) printf " %3d: %-18s %s\n", $[1], $[2], $[3]
|
||||
if ($[4]) printf " %s\n", $[4] } ';;
|
||||
esac
|
||||
echo
|
||||
echo "Report bugs to <PACKAGE_BUGREPORT>."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Tests to run.
|
||||
test -z "$at_tests" && at_tests=$at_tests_all
|
||||
# List of tests.
|
||||
if $at_list_p; then
|
||||
cat <<_ATEOF
|
||||
AT_TESTSUITE_NAME tests:
|
||||
|
||||
NUM: FILENAME:LINE TEST-GROUP-NAME
|
||||
KEYWORDS
|
||||
|
||||
_ATEOF
|
||||
# " 1 42 45 " => "^(1|42|45);"
|
||||
at_tests_pattern=`echo "$at_tests" | sed 's/^ *//;s/ *$//;s/ */|/g'`
|
||||
at_tests_pattern="^(${at_tests_pattern});"
|
||||
echo "$at_help_all" |
|
||||
egrep -e "$at_tests_pattern" |
|
||||
awk 'BEGIN { FS = ";" }
|
||||
{ if ($[1]) printf " %3d: %-18s %s\n", $[1], $[2], $[3]
|
||||
if ($[4]) printf " %s\n", $[4] } '
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Don't take risks: use only absolute directories in PATH.
|
||||
#
|
||||
@ -362,16 +389,16 @@ fi
|
||||
|
||||
# 6 is the log file. To be preserved if `-d'.
|
||||
m4_define([AS_MESSAGE_LOG_FD], [6])
|
||||
if $at_debug; then
|
||||
if $at_debug_p; then
|
||||
exec AS_MESSAGE_LOG_FD>/dev/null
|
||||
else
|
||||
exec AS_MESSAGE_LOG_FD>$as_me.log
|
||||
fi
|
||||
|
||||
# Banners and logs.
|
||||
AS_BOX(m4_defn([AT_TESTSUITE_NAME]))
|
||||
AS_BOX(m4_defn([AT_TESTSUITE_NAME])[.])
|
||||
{
|
||||
AS_BOX(m4_defn([AT_TESTSUITE_NAME]))
|
||||
AS_BOX(m4_defn([AT_TESTSUITE_NAME])[.])
|
||||
echo
|
||||
|
||||
echo "$as_me: command line was:"
|
||||
@ -448,7 +475,7 @@ dnl Tests inserted here (TESTS).
|
||||
m4_divert([TAIL])[]dnl
|
||||
|
||||
* )
|
||||
echo $as_me: no such test: $at_test
|
||||
echo "$as_me: no such test: $at_test" >&2
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
@ -480,7 +507,7 @@ _ATEOF
|
||||
# If the test failed, at-times is not available.
|
||||
test -f at-times && at_log_msg="$at_log_msg (`sed 1d at-times`)"
|
||||
echo "$at_log_msg" >&AS_MESSAGE_LOG_FD
|
||||
$at_stop_on_error && test -n "$at_fail_list" && break
|
||||
$at_errexit_p && test -n "$at_fail_list" && break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
@ -499,7 +526,7 @@ if test "$at_duration" != "h m s"; then
|
||||
fi
|
||||
|
||||
# Cleanup everything unless the user wants the files.
|
||||
$at_debug || rm -rf $at_data_files
|
||||
$at_debug_p || rm -rf $at_data_files
|
||||
|
||||
# Wrap up the test suite with summary statistics.
|
||||
at_skip_count=`set dummy $at_skip_list; shift; echo $[@%:@]`
|
||||
@ -510,8 +537,8 @@ if test $at_fail_count = 0; then
|
||||
else
|
||||
AS_BOX([All $at_test_count tests were successful ($at_skip_count skipped).])
|
||||
fi
|
||||
elif test $at_debug = false; then
|
||||
if $at_stop_on_error; then
|
||||
elif test $at_debug_p = false; then
|
||||
if $at_errexit_p; then
|
||||
AS_BOX([ERROR: One of the tests failed, inhibiting subsequent tests.])
|
||||
else
|
||||
AS_BOX([ERROR: Suite unsuccessful, $at_fail_count of $at_test_count tests failed.])
|
||||
@ -520,22 +547,24 @@ elif test $at_debug = false; then
|
||||
# Remove any debugging script resulting from a previous run.
|
||||
rm -f $as_me.[[0-9]] $as_me.[[0-9][0-9]] $as_me.[[0-9][0-9][0-9]]
|
||||
|
||||
# Normalize the names so that `ls' lists them in order.
|
||||
at_format=`echo $at_last_test | sed 's/././g'`
|
||||
at_NNN=`expr "NNN$at_group" : ".*\($at_format\)"`
|
||||
echo
|
||||
echo $ECHO_N "Writing \`$as_me.NN' scripts, with NN =$ECHO_C"
|
||||
echo $ECHO_N "Writing \`$as_me.$at_NNN' scripts, with $at_NNN =$ECHO_C"
|
||||
for at_group in $at_fail_list
|
||||
do
|
||||
# Normalize the names so that `ls' lists them in order.
|
||||
at_format=`echo $at_last_test | sed 's/././g'`
|
||||
at_number=`expr "000$at_group" : ".*\($at_format\)"`
|
||||
echo $ECHO_N " $at_number$ECHO_C"
|
||||
( echo "#! /bin/sh"
|
||||
{
|
||||
echo "#! /bin/sh"
|
||||
echo 'exec ${CONFIG_SHELL-'"$SHELL"'}' "$[0]" \
|
||||
'-v -d' "$at_debug_args" "$at_group" '${1+"$[@]"}'
|
||||
echo 'exit 1'
|
||||
) >$as_me.$at_number
|
||||
} >$as_me.$at_number
|
||||
chmod +x $as_me.$at_number
|
||||
done
|
||||
echo ', done'
|
||||
echo ', done.'
|
||||
echo
|
||||
echo 'You may investigate any problem if you feel able to do so, in which'
|
||||
echo 'case the test suite provides a good starting point.'
|
||||
@ -551,17 +580,17 @@ elif test $at_debug = false; then
|
||||
# Summary of failed and skipped tests.
|
||||
if test $at_fail_count != 0; then
|
||||
echo "Failed tests:"
|
||||
$SHELL $[0] $at_fail_list --help
|
||||
$SHELL $[0] $at_fail_list --list
|
||||
echo
|
||||
fi
|
||||
if test $at_skip_count != 0; then
|
||||
echo "Skipped tests:"
|
||||
$SHELL $[0] $at_skip_list --help
|
||||
$SHELL $[0] $at_skip_list --list
|
||||
echo
|
||||
fi
|
||||
echo
|
||||
|
||||
AS_BOX([Verbosely re-running the failing tests])
|
||||
AS_BOX([Verbosely re-running the failing tests.])
|
||||
echo
|
||||
} >&AS_MESSAGE_LOG_FD
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user