-TESTS = test_example.sh \
+TESTS = test_environment.sh \
+ test_example.sh \
test_exec.sh \
test_noforce.sh \
test_redirects.sh \
dist_check_SCRIPTS = $(TESTS) lib.sh
dist_check_DATA = example.expected \
+ example_environment.expected \
+ example_environment_empty.expected \
example_error.expected \
example_exec.expected \
example_noforce.sh \
LC_ALL=C
unset LANGUAGE
+# Set default COLORED_STDERR_FDS value.
+fds=2,
+
die() {
echo "$@" >&2
(
# Standard setup.
LD_PRELOAD="$library"
- COLORED_STDERR_FDS=2,
+ COLORED_STDERR_FDS="$fds"
export LD_PRELOAD
export COLORED_STDERR_FDS
test_script() {
testcase="$1"
- shift
- run_test "$srcdir/$testcase" "$srcdir/$testcase.expected" "$@"
+ expected="$2"
+ shift; shift || true
+
+ if test -z "$expected"; then
+ expected="$testcase"
+ fi
+ run_test "$srcdir/$testcase" "$srcdir/$expected.expected" "$@"
}
test_script_subshell() {
- test_script "$1" bash -c 'bash $1' ''
+ test_script "$1" "$2" bash -c 'bash $1' ''
}
test_program() {
testcase="$1"
- shift
- run_test "$builddir/$testcase" "$srcdir/$testcase.expected" "$@"
+ expected="$2"
+ shift; shift || true
+
+ if test -z "$expected"; then
+ expected="$testcase"
+ fi
+ run_test "$builddir/$testcase" "$srcdir/$expected.expected" "$@"
}
test_program_subshell() {
- test_program "$1" sh -c '$1' ''
+ test_program "$1" "$2" sh -c '$1' ''
}
--- /dev/null
+#!/bin/sh
+
+# Copyright (C) 2013 Simon Ruderich
+#
+# 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/>.
+
+test "x$srcdir" = x && srcdir=.
+. "$srcdir/lib.sh"
+
+# Test unexpected values for COLORED_STDERR_FDS environment variable.
+
+# Empty fields.
+fds=
+test_program example example_environment_empty
+test_program_subshell example example_environment_empty
+fds=,,,
+test_program example example_environment_empty
+test_program_subshell example example_environment_empty
+fds=,,,2
+test_program example example_environment_empty
+test_program_subshell example example_environment_empty
+fds=2,,,
+test_program example example_environment
+test_program_subshell example example_environment
+
+# Invalid fds.
+fds=-20,-30
+test_program example example_environment_empty
+test_program_subshell example example_environment_empty
+fds=-20,-30,2,
+test_program example example_environment
+test_program_subshell example example_environment
+fds=-20,-30,2,-1,
+test_program example example_environment
+test_program_subshell example example_environment