#! /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 . # # ---------------------------------- # # 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 < /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"