automake-commit
[Top][All Lists]
Advanced

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

[Automake-commit] [SCM] GNU Automake branch, testsuite-work, updated. v1


From: Stefano Lattarini
Subject: [Automake-commit] [SCM] GNU Automake branch, testsuite-work, updated. v1.11-1298-gf7f1a89
Date: Wed, 07 Sep 2011 12:39:58 +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 Automake".

http://git.sv.gnu.org/gitweb/?p=automake.git;a=commitdiff;h=f7f1a89ca12e1218a44db743f9c5c0852dde1b05

The branch, testsuite-work has been updated
       via  f7f1a89ca12e1218a44db743f9c5c0852dde1b05 (commit)
       via  56aaac9b4e619daaceedfe9f1ca0bbb36937be05 (commit)
      from  d1fc9fcd554fccdac65a0e57c067d1fe55ad5cf7 (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 f7f1a89ca12e1218a44db743f9c5c0852dde1b05
Author: Stefano Lattarini <address@hidden>
Date:   Wed Sep 7 14:05:01 2011 +0200

    self tests: more use of TAP
    
    * tests/self-check-reexec.test: Renamed ...
    * tests/self-check-reexec.tap: ... to this, converted to the
    use of TAP protocol, and extended a bit.
    * tests/self-check-seq.test: Renamed ...
    * tests/self-check-seq.tap: ... to this, and converted to the
    use of TAP protocol.
    * tests/list-of-tests.mk: Update.

commit 56aaac9b4e619daaceedfe9f1ca0bbb36937be05
Author: Stefano Lattarini <address@hidden>
Date:   Wed Sep 7 11:16:02 2011 +0200

    self tests: fix spurious failures when /bin/ksh do not exists
    
    * tests/self-check-reexec.test: Ensure that the non-bash shells
    we look do really exists.  Since we are at it, also try the name
    `ash', non `dash', for the Almquist Shell, for Cygwin 1.5.

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

Summary of changes:
 ChangeLog                    |   18 ++++
 tests/Makefile.in            |    4 +-
 tests/list-of-tests.mk       |    4 +-
 tests/self-check-reexec.tap  |  205 ++++++++++++++++++++++++++++++++++++++++++
 tests/self-check-reexec.test |  126 --------------------------
 tests/self-check-seq.tap     |   75 +++++++++++++++
 tests/self-check-seq.test    |   75 ---------------
 7 files changed, 302 insertions(+), 205 deletions(-)
 create mode 100755 tests/self-check-reexec.tap
 delete mode 100755 tests/self-check-reexec.test
 create mode 100755 tests/self-check-seq.tap
 delete mode 100755 tests/self-check-seq.test

diff --git a/ChangeLog b/ChangeLog
index c1d9365..8c1e1cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2011-09-07  Stefano Lattarini  <address@hidden>
+
+       self tests: more use of TAP
+       * tests/self-check-reexec.test: Renamed ...
+       * tests/self-check-reexec.tap: ... to this, converted to the
+       use of TAP protocol, and extended a bit.
+       * tests/self-check-seq.test: Renamed ...
+       * tests/self-check-seq.tap: ... to this, and converted to the
+       use of TAP protocol.
+       * tests/list-of-tests.mk: Update.
+
+2011-09-07  Stefano Lattarini  <address@hidden>
+
+       self tests: fix spurious failures when /bin/ksh do not exists
+       * tests/self-check-reexec.test: Ensure that the non-bash shells
+       we look do really exists.  Since we are at it, also try the name
+       `ash', non `dash', for the Almquist Shell, for Cygwin 1.5.
+
 2011-09-06  Stefano Lattarini  <address@hidden>
 
        tests: more use of TAP in our own testsuite
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 556bf86..b2df0e7 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1130,10 +1130,10 @@ self-check-exit.tap \
 self-check-explicit-skips.test \
 self-check-is_newest.tap \
 self-check-me.tap \
-self-check-reexec.test \
+self-check-reexec.tap \
 self-check-report.test \
 self-check-sanity.test \
-self-check-seq.test \
+self-check-seq.tap \
 self-check-is-blocked-signal.tap \
 self-check-tap.test \
 self-check-unindent.tap \
diff --git a/tests/list-of-tests.mk b/tests/list-of-tests.mk
index 4783b09..988b4f0 100644
--- a/tests/list-of-tests.mk
+++ b/tests/list-of-tests.mk
@@ -805,10 +805,10 @@ self-check-exit.tap \
 self-check-explicit-skips.test \
 self-check-is_newest.tap \
 self-check-me.tap \
-self-check-reexec.test \
+self-check-reexec.tap \
 self-check-report.test \
 self-check-sanity.test \
-self-check-seq.test \
+self-check-seq.tap \
 self-check-is-blocked-signal.tap \
 self-check-tap.test \
 self-check-unindent.tap \
diff --git a/tests/self-check-reexec.tap b/tests/self-check-reexec.tap
new file mode 100755
index 0000000..0982719
--- /dev/null
+++ b/tests/self-check-reexec.tap
@@ -0,0 +1,205 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Sanity check for the automake testsuite.
+# Check that automatic re-execution of test script with the
+# configure-time $SHELL.
+
+am_create_testdir=empty
+. ./defs || Exit 1
+
+plan_ 32
+
+unset AM_TESTS_REEXEC BASH_VERSION || :
+
+cwd=`pwd` || fatal_ "cannot get current working directory"
+cp ../defs .
+
+#
+# Search for required bash and non-bash shells.
+#
+
+for bash_shell in "$SHELL" bash bash3 bash4 :; do
+  test "$bash_shell" = : && break
+  $bash_shell --version || continue
+  $bash_shell -c 'test -n "$BASH_VERSION"' || continue
+  break
+done
+
+# This might not be optimal, but it's much better than writing wrapper
+# scripts acting as "fake" shells.
+for non_bash_shell in /bin/sh /bin/ksh "$SHELL" sh ksh ash dash pdksh :; do
+  test "$non_bash_shell" = : && break
+  $non_bash_shell -c 'exit 0' || continue
+  $non_bash_shell -c 'test -n "$BASH_VERSION"' && continue
+  break
+done
+
+echo "bash_shell='$bash_shell'"
+echo "non_bash_shell='$non_bash_shell'"
+
+# This would denote an internal error.
+if test "$bash_shell" = : && test "$non_bash_shell" = :; then
+  fatal_ "we couldn't find a bash shell nor a non-bash one"
+fi
+
+#
+# Functions used throughout the test.
+#
+
+get_ddata ()
+{
+  case $1 in
+    ""|*/) dsep=;;
+        *) dsep=/;;
+  esac
+  case $1 in
+    "") dname="no dir";;
+    /*) dname="absolute dir";;
+     *) dname="dir '$1'";;
+  esac
+}
+
+get_sh ()
+{
+  case $1 in
+    bash) sh=$bash_shell;;
+    non-bash) sh=$non_bash_shell;;
+    *) fatal_ "get_sh: invalid shell type '$1'";;
+  esac
+}
+
+#
+# Check how to default, force or prevent a re-execution.
+#
+
+cat > need-bash.test <<'END'
+#!/bin/false
+. ./defs
+# Ensure that the script gets re-executed with bash.  Also ensure that
+# non-standard syntax used after the inclusion of `./defs' doesn't cause
+# non-bash shells to fail.
+# Subshell required to prevent some shells (e.g., Solaris 10 /bin/sh)
+# from only complaining on stderr but then exiting with exit status 0.
+(foo=abac && test xbxc = ${foo//a/x} && test -n "$BASH_VERSION")
+END
+
+sed -e "s|^testbuilddir=.*|testbuilddir='$cwd'|" \
+    -e 's|^SHELL=.*$|SHELL=bash; export SHELL|' \
+    < ../defs-static >defs-static
+
+do_reexec ()
+{
+  command_ok_ "re-exec if AM_TESTS_REEXEC=$1" \
+              env AM_TESTS_REEXEC="$1" $non_bash_shell need-bash.test
+}
+
+dont_reexec ()
+{
+  command_ok_ "don't re-exec if AM_TESTS_REEXEC=$1" \
+              not env AM_TESTS_REEXEC="$1" $non_bash_shell need-bash.test
+}
+
+if test "$bash_shell" = :; then
+  skip_row_ 10 -r "no bash shell found" AM_TESTS_REEXEC
+elif test "$non_bash_shell" = :; then
+  skip_row_ 10 -r "no non-bash shell found" AM_TESTS_REEXEC
+else
+  command_ok_ "re-exec if AM_TESTS_REEXEC unset" \
+              $non_bash_shell need-bash.test
+  do_reexec ''
+  do_reexec yes
+  do_reexec y
+  do_reexec true
+  do_reexec 1
+  dont_reexec no
+  dont_reexec n
+  dont_reexec false
+  dont_reexec 0
+fi
+
+#
+# Check message about the re-execution.  Also check that arguments passed
+# to a test script are preserved by a re-exec, even in "corner" cases.
+#
+
+cat > dummy.test <<'END'
+#!/bin/sh
+. ./defs
+:
+END
+
+cat > checkargs.test <<'END'
+. ./defs
+test $# -eq 3 && test x"$1" = x'a' && test x"$2" = x && test x"$3" = x"-e"
+END
+
+chmod a+x dummy.test checkargs.test
+
+mkdir sub
+cp dummy.test checkargs.test defs sub
+sed -e "s|^testbuilddir=.*|testbuilddir='$cwd'|" \
+    < ../defs-static > defs-static
+sed -e "s|^testbuilddir=.*|testbuilddir='$cwd/sub'|" \
+    < ../defs-static > sub/defs-static
+
+check_preserve_args ()
+{
+  dir=$1; shift
+  get_ddata "$dir"
+  $sh "${dir}${dsep}checkargs.test" a '' -e && r='ok' || r='not ok'
+  result_ "$r" "$sh re-exec preserving args [$dname]"
+}
+
+check_reexec_message ()
+{
+  dir=$1; shift
+  get_ddata "$dir"
+  $sh "${dir}${dsep}dummy.test" "$@" \
+    | grep "^dummy: exec $SHELL ${dir}${dsep}dummy\\.test $*\$" \
+    && r='ok' || r='not ok'
+  result_ "$r" "$sh display re-exec message [$dname] [args: $*]"
+}
+
+./dummy.test a b | grep "^dummy: exec $SHELL \\./dummy\\.test a b$" \
+  && r='ok' || r='not ok'
+result_ "$r" "direct run display re-exec message [args: a b]"
+
+./checkargs.test a '' -e && r='ok' || r='not ok'
+result_ "$r" "direct re-exec preserving args"
+
+for sh_type in non-bash bash; do
+  get_sh $sh_type
+  if test "$sh" = :; then
+    skip_row_ 5 -r "no $sh_type shell available" "re-exec message"
+    skip_row_ 5 -r "no $sh_type shell available" "re-exec preserving args"
+    continue
+  fi
+  check_preserve_args ''
+  check_reexec_message '' a b c
+  check_preserve_args .
+  check_reexec_message .  a b c
+  cd sub
+  check_preserve_args ..
+  check_reexec_message .. a b c
+  cd ..
+  check_preserve_args "$cwd"
+  check_reexec_message "$cwd" a -b c-
+  check_preserve_args sub
+  check_reexec_message sub 1 2 3 4
+done
+
+:
diff --git a/tests/self-check-reexec.test b/tests/self-check-reexec.test
deleted file mode 100755
index 2a0fb33..0000000
--- a/tests/self-check-reexec.test
+++ /dev/null
@@ -1,126 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2011 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Sanity check for the automake testsuite.
-# Check that automatic re-execution of test script with the
-# configure-time $SHELL.
-
-required=bash
-. ./defs || Exit 1
-
-unset AM_TESTS_REEXEC BASH_VERSION || :
-
-# This is not optimal, but it's much better than writing wrapper
-# scripts acting as "fake" shells.
-
-bash -c 'test -n "$BASH_VERSION"' || skip_ "bash shell not found"
-
-for shell in /bin/sh /bin/ksh sh ksh dash pdksh __no_shell__; do
-  test $shell = __no_shell__ && skip_ "can't find any non-bash shell"
-  $shell -c 'test -n "$BASH_VERSION"' && continue
-  break
-done
-echo "shell='$shell'"
-
-cwd=`pwd` || Exit 99
-
-cp ../defs .
-
-#
-# Check how to default, force or prevent a re-execution.
-#
-
-cat > run-with-bash.test <<'END'
-#!/bin/false
-. ./defs
-# Ensure that the script gets re-executed with bash.  Also ensure that
-# non-standard syntax used after the inclusion of `./defs' doesn't cause
-# non-bash shells to fail.
-# Subshell required to prevent some shells (e.g., Solaris 10 /bin/sh)
-# from only complaining on stderr but then exiting with exit status 0.
-(foo=abac && test xbxc = ${foo//a/x} && test -n "$BASH_VERSION")
-END
-
-sed -e "s|^testbuilddir=.*|testbuilddir='$cwd'|" \
-    -e 's|^SHELL=.*$|SHELL=bash; export SHELL|' \
-    < ../defs-static >defs-static
-
-$shell -x run-with-bash.test
-
-AM_TESTS_REEXEC=''    $shell run-with-bash.test
-AM_TESTS_REEXEC=yes   $shell run-with-bash.test
-AM_TESTS_REEXEC=y     $shell run-with-bash.test
-AM_TESTS_REEXEC=true  $shell run-with-bash.test
-AM_TESTS_REEXEC=1     $shell run-with-bash.test
-AM_TESTS_REEXEC=no    $shell run-with-bash.test && Exit 1
-AM_TESTS_REEXEC=n     $shell run-with-bash.test && Exit 1
-AM_TESTS_REEXEC=false $shell run-with-bash.test && Exit 1
-AM_TESTS_REEXEC=0     $shell run-with-bash.test && Exit 1
-
-#
-# Check message about the re-execution.
-#
-
-cat > dummy.test <<'END'
-#!/bin/sh
-. ./defs
-:
-END
-chmod a+x dummy.test
-
-mkdir sub
-cp dummy.test defs sub
-sed -e "s|^testbuilddir=.*|testbuilddir='$cwd'|" \
-    < ../defs-static > defs-static
-sed -e "s|^testbuilddir=.*|testbuilddir='$cwd/sub'|" \
-    < ../defs-static > sub/defs-static
-
-./dummy.test a b | grep "^dummy: exec $SHELL \\./dummy\\.test a b$"
-
-for am_sh in $shell bash; do
-  $am_sh dummy.test a b c \
-    | grep "^dummy: exec $SHELL dummy\\.test a b c$"
-  $am_sh ./dummy.test a b c \
-    | grep "^dummy: exec $SHELL \\./dummy\\.test a b c$"
-  cd sub
-  $am_sh ../dummy.test a b \
-    | grep "dummy: exec $SHELL \\.\\./dummy\\.test a b$"
-  cd ..
-  $am_sh "$cwd/dummy.test" a -b c- \
-    | grep "^dummy: exec $SHELL $cwd/dummy\\.test a -b c-$"
-  $am_sh sub/dummy.test 1 2 3 4 \
-    | grep "^dummy: exec $SHELL sub/dummy\\.test 1 2 3 4$"
-done
-
-#
-# Check that arguments passed to a test script are preserved by a re-exec.
-#
-
-cat > checkargs.test <<'END'
-. ./defs
-test $# -eq 3 && test x"$1" = x'a' && test x"$2" = x && test x"$3" = x"-e"
-END
-
-$SHELL checkargs.test a '' -e
-$SHELL ./checkargs.test a '' -e
-$SHELL "$cwd/checkargs.test" a '' -e
-cd sub
-$SHELL ../checkargs.test a '' -e
-cd ..
-cp checkargs.test sub
-$SHELL sub/checkargs.test a '' -e
-
-:
diff --git a/tests/self-check-seq.tap b/tests/self-check-seq.tap
new file mode 100755
index 0000000..e643c34
--- /dev/null
+++ b/tests/self-check-seq.tap
@@ -0,0 +1,75 @@
+#! /bin/sh
+# Copyright (C) 2011 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+# Sanity check for the automake testsuite.
+# Check the `seq_' subroutine.
+
+. ./defs || Exit 1
+
+plan_ 14
+
+unset stderr_fileno_ || :
+
+check_work ()
+{
+  desc=$1 args=$2 exp=$3
+  st=0; got=`seq_ $args` || st=$?
+  command_ok_ "$desc [exit status = 0]" test $st -eq 0
+  command_ok_ "$desc [output]" test x"$exp" = x"$got"
+}
+
+check_work 'one-argument form' '5' "\
+1
+2
+3
+4
+5"
+
+check_work 'two-arguments form' '7 11' "\
+7
+8
+9
+10
+11"
+
+check_work 'three-arguments form (1)' '120 5 135' "\
+120
+125
+130
+135"
+
+check_work 'three-arguments form (1)' '13 4 23' "\
+13
+17
+21"
+
+check_err ()
+{
+  desc=$1 args=$2 err=$3
+  (seq_ $args) >output || st=$?
+  # Protect content emitted on stdout/stderr, to avoid sending to the
+  # TAP driver possible "Bail out!" directives generated by `seq_'.
+  # Use `grep -c' below for the same reason.
+  sed 's/^/: /' output
+  command_ok_ "$desc [exit status = 99]" test $st -eq 99
+  command_ok_ "$desc [error message]" grep -c "seq_: $err" output
+}
+
+check_err 'no argument is an error' '' 'missing argument'
+check_err 'four arguments is an error' '1 1 2 1' 'too many arguments'
+check_err 'six arguments is an error' '1 1 1 1 1 1' 'too many arguments'
+
+:
diff --git a/tests/self-check-seq.test b/tests/self-check-seq.test
deleted file mode 100755
index 7e0fdf4..0000000
--- a/tests/self-check-seq.test
+++ /dev/null
@@ -1,75 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2011 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-# Sanity check for the automake testsuite.
-# Check the `seq_' subroutine.
-
-. ./defs || Exit 1
-
-unset stderr_fileno_ || :
-
-: One-argument form.
-exp="\
-1
-2
-3
-4
-5"
-got=`seq_ 5` || Exit 1
-test x"$exp" = x"$got" || Exit 1
-
-: Two-arguments form.
-exp="\
-7
-8
-9
-10
-11"
-got=`seq_ 7 11` || Exit 1
-test x"$exp" = x"$got" || Exit 1
-
-: Three-arguments form [1].
-exp="\
-120
-125
-130
-135"
-got=`seq_ 120 5 135` || Exit 1
-test x"$exp" = x"$got" || Exit 1
-
-: Three-arguments form [2].
-exp="\
-13
-17
-21"
-got=`seq_ 13 4 23` || Exit 1
-test x"$exp" = x"$got" || Exit 1
-
-: No argument is an error.
-st=0
-(seq_) 2>stderr || st=$?
-test $st -eq 99
-grep 'seq_: missing argument' stderr
-
-: Four or more arguments is an error.
-for args in '1 1 2 1' '1 1 1 1 1 1'; do
-  st=0
-  (seq_ $args) 2>stderr || st=$?
-  test $st -eq 99
-  grep 'seq_: too many arguments' stderr
-done
-
-:


hooks/post-receive
-- 
GNU Automake



reply via email to

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