diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2013-02-16 14:42:43 +0000 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2013-02-16 14:42:43 +0000 |
commit | 7548e75065063dae256d94e6c7f4f9f43bd7f210 (patch) | |
tree | f23b000f8822f6eb70249c1106a3275deaa03bac /tests/shell-or-perl | |
parent | ddefcddae2e97579f82320f4fd70d0ba14a52392 (diff) | |
parent | 974ab3dd887985e3aa347f3c6521f819296396a0 (diff) | |
download | coreutils-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-perl | 121 |
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" |