Simplify handling of autotest tracing

* lib/autotest/general.m4 (at_fn_check_prepare_notrace): Use
$at_trace_echo.  Add new REASON argument.
(at_fn_check_prepare_trace): Do not call at_fn_check_prepare_notrace.
Use $at_check_filter_trace.
(at_fn_check_prepare_dynamic): Use at_fn_check_prepare_notrace.
(at_traceon): Initialize to ':'.
(at_traceoff): Remove, use 'set +x' instead throughout.
(at_check_filter_trace, at_trace_echo): New shell variables.
Initialize them if tracing is requested.
(_AT_DECIDE_TRACEABLE): Adjust call to at_fn_check_prepare_notrace.
This commit is contained in:
Paolo Bonzini 2009-07-12 12:58:36 +02:00
parent 87a4d6ae61
commit b22c5fde55
2 changed files with 31 additions and 20 deletions

View File

@ -1,3 +1,16 @@
2009-07-13 Paolo Bonzini <bonzini@gnu.org>
* lib/autotest/general.m4 (at_fn_check_prepare_notrace): Use
$at_trace_echo. Add new REASON argument.
(at_fn_check_prepare_trace): Do not call at_fn_check_prepare_notrace.
Use $at_check_filter_trace.
(at_fn_check_prepare_dynamic): Use at_fn_check_prepare_notrace.
(at_traceon): Initialize to ':'.
(at_traceoff): Remove, use 'set +x' instead throughout.
(at_check_filter_trace, at_trace_echo): New shell variables.
Initialize them if tracing is requested.
(_AT_DECIDE_TRACEABLE): Adjust call to at_fn_check_prepare_notrace.
2009-07-12 Paolo Bonzini <bonzini@gnu.org>
Move atlocal feature tests to configure

View File

@ -263,12 +263,13 @@ at_fn_banner ()
AS_ECHO(["$as_nl$at_banner_text$as_nl"])
} # at_fn_banner
AS_FUNCTION_DESCRIBE([at_fn_check_prepare_notrace], [LINE],
AS_FUNCTION_DESCRIBE([at_fn_check_prepare_notrace], [REASON LINE],
[Perform AT_CHECK preparations for the command at LINE for an
untraceable command, or when tracing is disabled.])
untraceable command; REASON is the reason for disabling tracing.])
at_fn_check_prepare_notrace ()
{
AS_ECHO(["$[1]"]) >"$at_check_line_file"
$at_trace_echo "Not enabling shell tracing (command contains $1)"
AS_ECHO(["$[2]"]) >"$at_check_line_file"
at_check_trace=: at_check_filter=:
: >"$at_stdout"; : >"$at_stderr"
}
@ -278,13 +279,9 @@ AS_FUNCTION_DESCRIBE([at_fn_check_prepare_trace], [LINE],
command.])
at_fn_check_prepare_trace ()
{
if test -n "$at_traceon"; then
AS_ECHO(["$[1]"]) >"$at_check_line_file"
at_check_trace=$at_traceon at_check_filter=at_fn_filter_trace
: >"$at_stdout"; : >"$at_stderr"
else
at_fn_check_prepare_notrace "$[1]"
fi
AS_ECHO(["$[1]"]) >"$at_check_line_file"
at_check_trace=$at_traceon at_check_filter=$at_check_filter_trace
: >"$at_stdout"; : >"$at_stderr"
}
AS_FUNCTION_DESCRIBE([at_fn_check_prepare_dynamic], [COMMAND LINE],
@ -292,12 +289,9 @@ AS_FUNCTION_DESCRIBE([at_fn_check_prepare_dynamic], [COMMAND LINE],
appropriate preparation function.])
at_fn_check_prepare_dynamic ()
{
case "$at_traceon:$[1]" in
:*$as_nl*)
at_fn_check_prepare_notrace "$[2]" ;;
case $[1] in
*$as_nl*)
echo 'Not enabling shell tracing (command contains an embedded newline)'
at_fn_check_prepare_notrace "$[2]" ;;
at_fn_check_prepare_notrace 'an embedded newline' "$[2]" ;;
*)
at_fn_check_prepare_trace "$[2]" ;;
esac
@ -407,6 +401,9 @@ at_verbose=:
at_quiet=
# Running several jobs in parallel, 0 means as many as test groups.
at_jobs=1
at_traceon=:
at_trace_echo=:
at_check_filter_trace=:
# Shall we keep the debug scripts? Must be `:' when the suite is
# run by a debug script, so that the script doesn't remove itself.
@ -522,7 +519,9 @@ do
;;
--trace | -x )
at_traceon='set -x'; at_traceoff='set +x'
at_traceon='set -x'
at_trace_echo=echo
at_check_filter_trace=at_fn_filter_trace
;;
[[0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]])
@ -1828,7 +1827,7 @@ echo "# -*- compilation -*-" >> "$at_group_log"
AS_ECHO(["AT_ordinal. m4_defn([AT_line]): testing $1..."])
$at_traceon
m4_undivert([TEST_SCRIPT])dnl Insert the code here
$at_traceoff
set +x
$at_times_p && times >"$at_times_file"
) AS_MESSAGE_LOG_FD>&1 2>&1 | eval $at_tee_pipe
read at_status <"$at_status_file"
@ -2016,8 +2015,7 @@ m4_cond([m4_eval(m4_index([$1], [`]) >= 0)], [1],
[]))]dnl No reason.
[m4_if(m4_index(_m4_defn([at_reason]), [a]), [0],]dnl
dnl We know at build time that tracing COMMANDS is never safe.
[[echo 'Not enabling shell tracing (command contains ]m4_defn([at_reason])[)'
at_fn_check_prepare_notrace],
[[at_fn_check_prepare_notrace 'm4_defn([at_reason])'],dnl
m4_index([$1], [$]), [-1],]dnl
dnl We know at build time that tracing COMMANDS is always safe.
[[at_fn_check_prepare_trace],]dnl
@ -2090,7 +2088,7 @@ m4_define([AT_DIFF_STDOUT()],
# with parallel jobs.
m4_define([_AT_CHECK],
[m4_define([AT_ingroup])]dnl
[{ $at_traceoff
[{ set +x
AS_ECHO(["$at_srcdir/AT_LINE: AS_ESCAPE([[$1]])"])
_AT_DECIDE_TRACEABLE([$1]) "AS_ESCAPE(m4_dquote(AT_LINE))"
( $at_check_trace; [$1]