autoconf-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] GNU Autoconf source repository branch, master, updated. v2.61a-291


From: Ralf Wildenhues
Subject: [SCM] GNU Autoconf source repository branch, master, updated. v2.61a-291-g8c29e96
Date: Thu, 15 Nov 2007 21:24:15 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Autoconf source repository".

http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=8c29e96f9daaebc3cea2f04223c5da3622c37e5f

The branch, master has been updated
       via  8c29e96f9daaebc3cea2f04223c5da3622c37e5f (commit)
      from  c33d474779c0351224d340b419ea32e85a2ae9f0 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 8c29e96f9daaebc3cea2f04223c5da3622c37e5f
Author: Ralf Wildenhues <address@hidden>
Date:   Thu Nov 15 22:23:59 2007 +0100

    * 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.

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog               |    9 +++++++
 lib/autotest/general.m4 |   56 ++++++++++++++++++++++++++++++++--------------
 tests/autotest.at       |   15 ++++++++++++
 3 files changed, 63 insertions(+), 17 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 1d69799..306635b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-11-15  Paolo Bonzini  <address@hidden>
+       and Ralf Wildenhues  <address@hidden>
+
+       * 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  Ralf Wildenhues  <address@hidden>
 
        Shell functions and variables may share a namespace.
diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4
index 4d92e6d..fd39ae9 100644
--- a/lib/autotest/general.m4
+++ b/lib/autotest/general.m4
@@ -185,6 +185,7 @@ m4_define([_AT_NORMALIZE_TEST_GROUP_NUMBER],
 # Begin test suite.
 m4_define([AT_INIT],
 [m4_pattern_forbid([^_?AT_])
+m4_pattern_allow([^_AT_T_EOF$])
 m4_define([AT_TESTSUITE_NAME],
          m4_defn([AT_PACKAGE_STRING])[ test suite]m4_ifval([$1], [: $1]))
 m4_define([AT_ordinal], 0)
@@ -310,15 +311,6 @@ at_func_diff_devnull ()
   $at_diff "$at_devnull" "$[1]"
 }
 
-# at_func_test NUMBER
-# -------------------
-# Parse out test NUMBER from the tail of this file.
-at_func_test ()
-{
-  sed -n 
'/address@hidden:@AT_START_'$[1]'$/,/address@hidden:@AT_STOP_'$[1]'$/p' 
"$at_myself" \
-       > "$at_test_source"
-}
-
 # at_func_create_debugging_script
 # -------------------------------
 # Create the debugging script $at_group_dir/run which will reproduce the
@@ -431,7 +423,7 @@ at_status_file=$at_suite_dir/at-status
 at_stdout=$at_suite_dir/at-stdout
 at_stder1=$at_suite_dir/at-stder1
 at_stderr=$at_suite_dir/at-stderr
-# The file containing the function to run a test group.
+# The stem for files containing a test group.
 at_test_source=$at_suite_dir/at-test-source
 # The file containing dates.
 at_times_file=$at_suite_dir/at-times
@@ -871,6 +863,36 @@ else
   at_diff=diff
 fi
 
+{
+  echo 'BEGIN {'
+  for at_group in $at_groups; do
+    at_group_normalized=$at_group
+    _AT_NORMALIZE_TEST_GROUP_NUMBER(at_group_normalized)
+    echo "  outfile[[\"$at_group\"]] = 
\"$at_test_source-$at_group_normalized\""
+  done
+  AS_ECHO(['}
+emit == 0 && /address@hidden:@AT_START_/ {
+  test = substr($ 0, 11);
+  if (outfile[[test]]) {
+    emit = 1
+    print "cat >\"" outfile[[test]] "\" <<'\''_AT_T_EOF'\''"
+  }
+}
+emit != 0 && /address@hidden:@AT_STOP_/ {
+  print "_AT_T_EOF"
+  emit = 0
+}
+emit != 0 { print }
+'])
+} > "$at_test_source.awk"
+
+# Extract test group that will be run from the tail of this file
+if awk -f "$at_test_source.awk" "$at_myself" >"$at_test_source.sh" \
+   && . "$at_test_source.sh" \
+   && rm -f "$at_test_source.awk" "$at_test_source.sh"; then :; else
+  AS_ECHO(["$as_me: unable to parse test groups"]) >&2
+  exit 1
+fi
 
 m4_text_box([Driver loop.])
 for at_group in $at_groups
@@ -906,10 +928,7 @@ do
     at_tee_pipe='cat >> "$at_group_log"'
   fi
 
-  if at_func_test $at_group && . "$at_test_source"; then :; else
-    AS_ECHO(["$as_me: unable to parse test group: $at_group"]) >&2
-    at_failed=:
-  fi
+  . "$at_test_source-$at_group_normalized"
 
   # Be sure to come back to the suite directory, in particular
   # since below we might `rm' the group directory we are in currently.
@@ -973,9 +992,12 @@ _ATEOF
       # Cleanup the group directory, unless the user wants the files.
       if $at_debug_p ; then
        at_func_create_debugging_script
-      elif test -d "$at_group_dir"; then
-       find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
-       rm -fr "$at_group_dir"
+      else
+       if test -d "$at_group_dir"; then
+         find "$at_group_dir" -type d ! -perm -700 -exec chmod u+rwx \{\} \;
+         rm -fr "$at_group_dir"
+        fi
+       rm -f "$at_test_source-$at_group_normalized"
       fi
       ;;
     *)
diff --git a/tests/autotest.at b/tests/autotest.at
index 54e7464..fa7b7ea 100644
--- a/tests/autotest.at
+++ b/tests/autotest.at
@@ -335,6 +335,21 @@ AT_CHECK_AT_TITLE_CHAR([Longer test title],
                       [01234567890123456789012345678901234], [], [], [54])
 
 
+## ----------------------- ##
+## Long test source lines. ##
+## ----------------------- ##
+
+# Create a test file that has more than 99 words in a line, for Solaris awk.
+# While at that, try out the limit of 2000 bytes in a text file line.
+
+AT_CHECK_AT_TEST([Long test source lines],
+[m4_for([nnn], [1], [999], [], [: ])
+AT_CHECK([:])
+], [], [], [], [ignore],
+[AT_CHECK([$CONFIG_SHELL ./micro-suite -k skipalltests], [], [ignore], 
[ignore])
+])
+
+
 ## ----------------- ##
 ## Debugging a test. ##
 ## ----------------- ##


hooks/post-receive
--
GNU Autoconf source repository




reply via email to

[Prev in Thread] Current Thread [Next in Thread]