diff options
author | Jim Meyering <meyering@redhat.com> | 2010-05-19 12:34:15 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2010-05-26 07:58:06 +0200 |
commit | ffd9adf0715436c94d2a1a95070e3688e047328b (patch) | |
tree | 2f3020f25971717e235d97ec9b6be64557bad30a | |
parent | 813a03992cfbb90384e1893f1239d93ec387541b (diff) | |
download | grep-ffd9adf0715436c94d2a1a95070e3688e047328b.tar.gz |
maint: update helper scripts from gnulib
* tests/init.sh: Update from gnulib.
* bootstrap: Likewise.
-rwxr-xr-x | bootstrap | 10 | ||||
-rw-r--r-- | tests/init.sh | 51 |
2 files changed, 39 insertions, 22 deletions
@@ -1,6 +1,6 @@ #! /bin/sh # Print a version string. -scriptversion=2010-02-24.17; # UTC +scriptversion=2010-04-30.16; # UTC # Bootstrap this package from checked-out sources. @@ -424,7 +424,7 @@ case ${GNULIB_SRCDIR--} in trap cleanup_gnulib 1 2 13 15 - git clone --help|grep depth > /dev/null && shallow='--depth 2' || shallow= + git clone -h|grep -- --depth > /dev/null && shallow='--depth 2' || shallow= git clone $shallow git://git.sv.gnu.org/gnulib "$gnulib_path" || cleanup_gnulib @@ -437,7 +437,7 @@ case ${GNULIB_SRCDIR--} in if test -d "$GNULIB_SRCDIR"/.git && \ git_modules_config submodule.gnulib.url >/dev/null; then echo "$0: getting gnulib files..." - if git submodule --help|grep reference > /dev/null; then + if git submodule -h|grep -- --reference > /dev/null; then # Prefer the one-liner available in git 1.6.4 or newer. git submodule update --init --reference "$GNULIB_SRCDIR" \ "$gnulib_path" || exit $? @@ -819,7 +819,7 @@ if test $with_gettext = yes; then a\ '"$XGETTEXT_OPTIONS"' $${end_of_xgettext_options+} } - ' po/Makevars.template >po/Makevars + ' po/Makevars.template >po/Makevars || exit 1 if test -d runtime-po; then # Similarly for runtime-po/Makevars, but not quite the same. @@ -833,7 +833,7 @@ if test $with_gettext = yes; then a\ '"$XGETTEXT_OPTIONS_RUNTIME"' $${end_of_xgettext_options+} } - ' <po/Makevars.template >runtime-po/Makevars + ' po/Makevars.template >runtime-po/Makevars || exit 1 # Copy identical files from po to runtime-po. (cd po && cp -p Makefile.in.in *-quot *.header *.sed *.sin ../runtime-po) diff --git a/tests/init.sh b/tests/init.sh index 1c0b4b4f..ef0957c1 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -63,33 +63,50 @@ # - hyphen-containing alias names # - we prefer to use ${var#...} substitution, rather than having # to work around lack of support for that feature. -# The following code attempts to find a shell with support for these features -# and re-exec's it. If not, it skips the current test. +# The following code attempts to find a shell with support for these features. +# If the current shell passes the test, we're done. Otherwise, test other +# shells until we find one that passes. If one is found, re-exec it. +# If no acceptable shell is found, skip the current test. +# +# Use "9" to indicate success (rather than 0), in case some shell acts +# like Solaris 10's /bin/sh but exits successfully instead of with status 2. gl_shell_test_script_=' test $(echo y) = y || exit 1 -test -z "$EXEEXT" && exit 0 +test -z "$EXEEXT" && exit 9 shopt -s expand_aliases alias a-b="echo zoo" v=abx test ${v%x} = ab \ && test ${v#a} = bx \ - && test $(a-b) = zoo + && test $(a-b) = zoo \ + && exit 9 ' if test "x$1" = "x--no-reexec"; then shift else - for re_shell_ in "${CONFIG_SHELL:-no_shell}" /bin/sh bash dash zsh pdksh fail - do - test "$re_shell_" = no_shell && continue - test "$re_shell_" = fail && skip_ failed to find an adequate shell - if "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null; then - exec "$re_shell_" "$0" --no-reexec "$@" - echo "$ME_: exec failed" 1>&2 - exit 127 - fi - done + # 'eval'ing the above code makes Solaris 10's /bin/sh exit with $? set to 2. + # It does not evaluate any of the code after the "unexpected" `('. Thus, + # we must run it in a subshell. + ( eval "$gl_shell_test_script_" ) > /dev/null 2>&1 + if test $? = 9; then + : # The current shell is adequate. No re-exec required. + else + # Search for a shell that meets our requirements. + for re_shell_ in "${CONFIG_SHELL:-no_shell}" /bin/sh bash dash zsh pdksh fail + do + test "$re_shell_" = no_shell && continue + test "$re_shell_" = fail && skip_ failed to find an adequate shell + "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null + if test $? = 9; then + # Found an acceptable shell. + exec "$re_shell_" "$0" --no-reexec "$@" + echo "$ME_: exec failed" 1>&2 + exit 127 + fi + done + fi fi test -n "$EXEEXT" && shopt -s expand_aliases @@ -98,7 +115,7 @@ test -n "$EXEEXT" && shopt -s expand_aliases # This is cheap and useful for exposing code that depends on the fact that # malloc-related functions often return memory that is mostly zeroed. # If you have the time and cycles, use valgrind to do an even better job. -${MALLOC_PERTURB_=87} +: ${MALLOC_PERTURB_=87} export MALLOC_PERTURB_ # We use a trap below for cleanup. This requires us to go through @@ -126,9 +143,9 @@ framework_failure_() { warn_ "$ME_: set-up failure: $@"; Exit 1; } # a partition, or to undo any other global state changes. cleanup_() { :; } -if ( diff --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then +if ( diff --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then compare() { diff -u "$@"; } -elif ( cmp --version < /dev/null 2>&1 | grep GNU ) 2>&1 > /dev/null; then +elif ( cmp --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then compare() { cmp -s "$@"; } else compare() { cmp "$@"; } |