bug-diffutils
[Top][All Lists]
Advanced

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

[bug-diffutils] 2 maint/build patches


From: Jim Meyering
Subject: [bug-diffutils] 2 maint/build patches
Date: Tue, 06 Apr 2010 07:35:09 +0200

>From c5b10cdca91e438acc819b0cde4ea694ce52d3d2 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Mon, 5 Apr 2010 21:47:17 +0200
Subject: [PATCH 4/5] build: update gnulib submodule to latest; adapt

* cfg.mk (local-checks-to-skip): Add new sc_texinfo_acronym, to skip it.
---
 cfg.mk |    3 ++-
 gnulib |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/cfg.mk b/cfg.mk
index 81eaa5b..fcebfab 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -20,7 +20,8 @@ manual_title = Comparing and Merging Files
 # Tests not to run as part of "make distcheck".
 local-checks-to-skip =         \
   sc_error_message_period      \
-  sc_error_message_uppercase
+  sc_error_message_uppercase   \
+  sc_texinfo_acronym

 # Tools used to bootstrap this package, used for "announcement".
 bootstrap-tools = autoconf,automake,gnulib
diff --git a/gnulib b/gnulib
index de4d0a3..7b9c5e7 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit de4d0a383be20eb6cbeb09ecbd66a5514779b914
+Subproject commit 7b9c5e771671ab35d3aa9e73bc064595925f345d
--
1.7.0.4.552.gc303


>From adc5cf557b1f56c8ed1aff907ca3e9abf344ce86 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Mon, 5 Apr 2010 22:08:58 +0200
Subject: [PATCH 5/5] tests: get latest init.sh from gnulib

* tests/init.sh: Update from gnulib.
---
 tests/init.sh |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 104 insertions(+), 4 deletions(-)

diff --git a/tests/init.sh b/tests/init.sh
index 8ae81af..3e3ea44 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -1,6 +1,6 @@
 # source this file; set up for tests

-# Copyright (C) 2009-2010 Free Software Foundation, Inc.
+# Copyright (C) 2009, 2010 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
@@ -52,6 +52,43 @@
 #   4. Finally
 #   $ exit

+# We require $(...) support unconditionally.
+# We require a few additional shell features only when $EXEEXT is nonempty,
+# in order to support automatic $EXEEXT emulation:
+# - 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.
+
+gl_shell_test_script_='
+test $(echo y) = y || exit 1
+test -z "$EXEEXT" && exit 0
+shopt -s expand_aliases
+alias a-b="echo zoo"
+v=abx
+     test ${v%x} = ab \
+  && test ${v#a} = bx \
+  && test $(a-b) = zoo
+'
+
+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
+fi
+
+test -n "$EXEEXT" && shopt -s expand_aliases
+
 # We use a trap below for cleanup.  This requires us to go through
 # hoops to get the right exit status transported through the handler.
 # So use `Exit STATUS' instead of `exit STATUS' inside of the tests.
@@ -59,8 +96,18 @@
 # sh inside this function.
 Exit () { set +e; (exit $1); exit $1; }

-fail_() { echo "$ME_: failed test: $@" 1>&2; Exit 1; }
-skip_() { echo "$ME_: skipped test: $@" 1>&2; Exit 77; }
+# Print warnings (e.g., about skipped and failed tests) to this file number.
+# Override by defining to say, 9, in init.cfg, and putting say,
+# "export ...ENVVAR_SETTINGS...; exec 9>&2; $(SHELL)" in the definition
+# of TESTS_ENVIRONMENT in your tests/Makefile.am file.
+# This is useful when using automake's parallel tests mode, to print
+# the reason for skip/failure to console, rather than to the .log files.
+: ${stderr_fileno_=2}
+
+warn_() { echo "$@" 1>&$stderr_fileno_; }
+fail_() { warn_ "$ME_: failed test: $@"; Exit 1; }
+skip_() { warn_ "$ME_: skipped test: $@"; Exit 77; }
+framework_failure_() { warn_ "$ME_: set-up failure: $@"; Exit 1; }

 # This is a stub function that is run upon trap (upon regular exit and
 # interrupt).  Override it with a per-test function, e.g., to unmount
@@ -92,8 +139,57 @@ remove_tmp_()
   exit $__st
 }

+# Given a directory name, DIR, if every entry in it that matches *.exe
+# contains only the specified bytes (see the case stmt below), then print
+# a space-separated list of those names and return 0.  Otherwise, don't
+# print anything and return 1.  Naming constraints apply also to DIR.
+find_exe_basenames_()
+{
+  feb_dir_=$1
+  feb_fail_=0
+  feb_result_=
+  feb_sp_=
+  for feb_file_ in $feb_dir_/*.exe; do
+    case $feb_file_ in
+      *[!-a-zA-Z/0-9_.+]*) feb_fail_=1; break;;
+      *) # Remove leading file name components as well as the .exe suffix.
+         feb_file_=${feb_file_##*/}
+         feb_file_=${feb_file_%.exe}
+         feb_result_="$feb_result_$feb_sp_$feb_file_";;
+    esac
+    feb_sp_=' '
+  done
+  test $feb_fail_ = 0 && printf %s "$feb_result_"
+  return $feb_fail_
+}
+
+# Consider the files in directory, $1.
+# For each file name of the form PROG.exe, create an alias named
+# PROG that simply invokes PROG.exe, then return 0.  If any selected
+# file name or the directory name, $1, contains an unexpected character,
+# define no function and return 1.
+create_exe_shims_()
+{
+  case $EXEEXT in
+    '') return 0 ;;
+    .exe) ;;
+    *) echo "$0: unexpected \$EXEEXT value: $EXEEXT" 1>&2; return 1 ;;
+  esac
+
+  base_names_=`find_exe_basenames_ $1` \
+    || { echo "$0 (exe_shim): skipping directory: $1" 1>&2; return 1; }
+
+  if test -n "$base_names_"; then
+    for base_ in $base_names_; do
+      alias "$base_"="$base_$EXEEXT"
+    done
+  fi
+
+  return 0
+}
+
 # Use this function to prepend to PATH an absolute name for each
-# specified, possibly-$initial_cwd_relative, directory.
+# specified, possibly-$initial_cwd_-relative, directory.
 path_prepend_()
 {
   while test $# != 0; do
@@ -108,6 +204,10 @@ path_prepend_()
       *:*) fail_ "invalid path dir: '$abs_path_dir_'";;
     esac
     PATH="$abs_path_dir_:$PATH"
+
+    # Create an alias, FOO, for each FOO.exe in this directory.
+    create_exe_shims_ "$abs_path_dir_" \
+      || fail_ "something failed (above): $abs_path_dir_"
     shift
   done
   export PATH
--
1.7.0.4.552.gc303




reply via email to

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