summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@fb.com>2016-05-13 08:43:53 -0700
committerJim Meyering <meyering@fb.com>2016-05-13 09:02:32 -0700
commitc7526623f458084cbe947f0e1b43f328481b2ca3 (patch)
tree805f7fe1903060efd08dd60d009e459eaae087bf
parentb6e5c5f50037bf97c81b95d95c51f3f34fee2ec7 (diff)
downloadgrep-c7526623f458084cbe947f0e1b43f328481b2ca3.tar.gz
maint: do not let a LANGUAGE envvar setting perturb tests
E.g., running "LANGUAGE=eo make check" would provoke a failure of the encoding-error test, on systems that mistakenly let that envvar trump the setting of LC_ALL. * tests/envvar-check: New file, copied from coreutils. * tests/Makefile.am (EXTRA_DIST): Add it. (TESTS_ENVIRONMENT): Source it. Also select TMPDIR as we do for coreutils tests. Reported by Benno Schulenberg in http://bugs.gnu.org/23527.
-rw-r--r--tests/Makefile.am5
-rw-r--r--tests/envvar-check63
2 files changed, 67 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 7effa571..38b0e321 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -151,6 +151,7 @@ EXTRA_DIST = \
$(TESTS) \
bre.awk \
bre.tests \
+ envvar-check \
ere.awk \
ere.tests \
init.cfg \
@@ -166,7 +167,9 @@ EXTRA_DIST = \
MALLOC_PERTURB_ = 1
TESTS_ENVIRONMENT = \
- tmp__=$$TMPDIR; test -d "$$tmp__" || tmp__=.; \
+ tmp__=$${TMPDIR-/tmp}; \
+ test -d "$$tmp__" && test -w "$$tmp__" || tmp__=.; \
+ . $(srcdir)/envvar-check; \
TMPDIR=$$tmp__; export TMPDIR; \
\
if test -n "$$BASH_VERSION" || (eval "export v=x") 2>/dev/null; then \
diff --git a/tests/envvar-check b/tests/envvar-check
new file mode 100644
index 00000000..16d70695
--- /dev/null
+++ b/tests/envvar-check
@@ -0,0 +1,63 @@
+# -*- sh -*-
+# Check environment variables for sane values while testing.
+
+# Copyright (C) 2000-2016 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 3 of the License, 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/>.
+
+if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+ as_unset=unset
+else
+ as_unset=false
+fi
+
+envvar_check_fail=0
+vars='
+ _POSIX2_VERSION
+ _STDBUF_E
+ _STDBUF_I
+ _STDBUF_O
+ BASH_ENV
+ BLOCKSIZE
+ BLOCK_SIZE
+ CDPATH
+ COLUMNS
+ DF_BLOCK_SIZE
+ DU_BLOCK_SIZE
+ ENV
+ LANGUAGE
+ LS_BLOCK_SIZE
+ LS_COLORS
+ OMP_NUM_THREADS
+ POSIXLY_CORRECT
+ QUOTING_STYLE
+ SIMPLE_BACKUP_SUFFIX
+ TABSIZE
+ TERM
+ COLORTERM
+ TIME_STYLE
+ TMPDIR
+ VERSION_CONTROL
+'
+for var in $vars
+do
+ $as_unset $var
+ if eval test \"\${$var+set}\" = set; then
+ echo "$0: the $var environment variable is set --" \
+ ' unset it and rerun this test' >&2
+ envvar_check_fail=1
+ fi
+done
+
+test "$envvar_check_fail" = 1 && exit 1