]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Simplify handling of autotest tracing
authorPaolo Bonzini <bonzini@gnu.org>
Sun, 12 Jul 2009 10:58:36 +0000 (12:58 +0200)
committerPaolo Bonzini <bonzini@gnu.org>
Mon, 13 Jul 2009 12:16:15 +0000 (14:16 +0200)
* 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.

ChangeLog
lib/autotest/general.m4

index 2e5822decd9a86385821f25d67ee8e6da212a992..440e936207bd18fdbc6f082438e47af0ea241bd1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
index a032462b7e84fe964e38403686a4d807fa4c37a2..59cce958e6c86cdef2b6e09dc2d6914c1d8183de 100644 (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]