summaryrefslogtreecommitdiff
path: root/tests/shell-or-perl
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2013-02-16 14:42:43 +0000
committerIgor Pashev <pashev.igor@gmail.com>2013-02-16 14:42:43 +0000
commit7548e75065063dae256d94e6c7f4f9f43bd7f210 (patch)
treef23b000f8822f6eb70249c1106a3275deaa03bac /tests/shell-or-perl
parentddefcddae2e97579f82320f4fd70d0ba14a52392 (diff)
parent974ab3dd887985e3aa347f3c6521f819296396a0 (diff)
downloadcoreutils-7548e75065063dae256d94e6c7f4f9f43bd7f210.tar.gz
Merge tag 'upstream/8.21'
Upstream version 8.21
Diffstat (limited to 'tests/shell-or-perl')
-rw-r--r--tests/shell-or-perl121
1 files changed, 0 insertions, 121 deletions
diff --git a/tests/shell-or-perl b/tests/shell-or-perl
deleted file mode 100644
index 58c80e36..00000000
--- a/tests/shell-or-perl
+++ /dev/null
@@ -1,121 +0,0 @@
-#! /bin/sh
-# Run a test script of the coreutils test scripts, picking up the right
-# interpreter (i.e., perl or the shell) and the right flags for it (e.g.,
-# perl '-T' flag for perl scripts that must run in tainted mode).
-#
-# Copyright (C) 2011-2012 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/>.
-#
-
-# ---------------------------------- #
-# Readonly variables and functions #
-# ---------------------------------- #
-
-# Help to avoid typo-related bugs.
-set -u
-
-me=shell-or-perl
-
-fatal_ ()
-{
- echo "$me: $*" >&2
- # Exit with status '99' to inform the testsuite harness that an
- # hard error occurred.
- exit 99
-}
-
-print_help_ ()
-{
- cat <<EOH
-Usage: $me [--help] [--srcdir DIR] [--shell SHELL-CMD] [--perl PERL-CMD]
- [--test-name NAME-WITHOUT-VPATH] TEST-SCRIPT [ARGS..]
-EOH
-}
-
-# ---------------- #
-# Option parsing #
-# ---------------- #
-
-assign_optarg_to_var='
- test $# -gt 1 || fatal_ "option '\''$1'\'' requires an argument"
- eval "$var=\$2"
- shift'
-
-srcdir=${srcdir-.}
-cu_PERL=${PERL-perl}
-cu_SHELL=/bin/sh # Getting $SHELL from the environment is dangerous.
-test_name=
-while test $# -gt 0; do
- var=
- case $1 in
- --help) print_help_; exit $?;;
- --shell) var=cu_SHELL;;
- --perl) var=cu_PERL;;
- --srcdir) var=srcdir;;
- --test-name) var=test_name;;
- --) shift; break;;
- -*) fatal_ "unknown option '$1'";;
- *) break;;
- esac
- test -z "$var" || eval "$assign_optarg_to_var"
- shift
-done
-
-unset assign_optarg_to_var var
-
-case $# in
- 0) fatal_ "missing argument";;
- *) test_script=$1; shift;;
-esac
-
-test -z "$test_name" && test_name=$test_script
-
-# --------------------- #
-# Run the test script #
-# --------------------- #
-
-test -f "$test_script" && test -r "$test_script" \
- || fatal_ "test script '$test_script' does not exist, or isn't readable"
-
-read shebang_line < "$test_script" \
- || fatal_ "cannot read from the test script '$test_script'"
-
-case $shebang_line in
-'#!/usr/bin/perl'*)
- # The test is a perl script.
- if $cu_PERL -e 'use warnings' > /dev/null 2>&1; then
- # Perl is available, see if we must run the test with taint
- # mode on or not.
- case $shebang_line in *\ -T*) T_=T;; *) T_=;; esac
- # Now run it.
- exec $cu_PERL -w$T_ -I"$srcdir" -MCoreutils -MCuSkip \
- -M"CuTmpdir qw($test_name)" \
- -- "$test_script" ${1+"$@"}
- else
- # Perl is not available, skip the test.
- echo "$test_name: skip: no usable version of Perl found"
- exit 77
- fi
- ;;
-*)
- # Assume the test is a shell script.
- exec $cu_SHELL "$test_script" ${1+"$@"}
-esac
-
-# ------------- #
-# Not reached #
-# ------------- #
-
-fatal_ "dead code reached"