1#! /bin/sh 2# Copyright (C) 2005, 2007, 2008 Red Hat, Inc. 3# This file is part of Red Hat elfutils. 4# 5# Red Hat elfutils is free software; you can redistribute it and/or modify 6# it under the terms of the GNU General Public License as published by the 7# Free Software Foundation; version 2 of the License. 8# 9# Red Hat elfutils is distributed in the hope that it will be useful, but 10# WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12# General Public License for more details. 13# 14# You should have received a copy of the GNU General Public License along 15# with Red Hat elfutils; if not, write to the Free Software Foundation, 16# Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. 17# 18# Red Hat elfutils is an included package of the Open Invention Network. 19# An included package of the Open Invention Network is a package for which 20# Open Invention Network licensees cross-license their patents. No patent 21# license is granted, either expressly or impliedly, by designation as an 22# included package. Should you wish to participate in the Open Invention 23# Network licensing program, please visit www.openinventionnetwork.com 24# <http://www.openinventionnetwork.com>. 25 26 27# This file is sourced by ". $srcdir/test-subr.sh" at the start of 28# each test script. It defines some functions they use and sets up 29# canonical sh state for test runs. 30 31set -e 32 33#LC_ALL=C 34#export LC_ALL 35 36remove_files= 37trap 'rm -f $remove_files' 0 38 39tempfiles() 40{ 41 remove_files="$remove_files $*" 42} 43 44testfiles() 45{ 46 for file; do 47 bunzip2 -c $srcdir/${file}.bz2 > ${file} 2>/dev/null || exit 77 48 remove_files="$remove_files $file" 49 done 50} 51 52testrun_out() 53{ 54 outfile="$1" 55 shift 56 remove_files="$remove_files $outfile" 57 testrun "$@" > $outfile 2>&1 || : 58} 59 60testrun_compare() 61{ 62 outfile="${1##*/}.out" 63 testrun_out $outfile "$@" 64 diff -u $outfile - 65 # diff's exit status will kill the script. 66} 67 68test_cleanup() 69{ 70 rm -f $remove_files 71 remove_files= 72} 73 74# See test-wrapper.sh, which sets the environment for this. 75testrun() 76{ 77 ${elfutils_testrun}_testrun "$@" 78} 79 80built_testrun() 81{ 82 LD_LIBRARY_PATH="${built_library_path}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"\ 83 "$@" 84} 85 86installed_testrun() 87{ 88 program="$1" 89 shift 90 case "$program" in 91 ./*) 92 if [ "x$elfutils_tests_rpath" != xno ]; then 93 echo >&2 installcheck not possible with --enable-tests-rpath 94 exit 77 95 fi 96 ;; 97 ../*) 98 program=${bindir}/`program_transform ${program##*/}` 99 ;; 100 esac 101 if [ "${libdir}" != /usr/lib ] && [ "${libdir}" != /usr/lib64 ]; then 102 LD_LIBRARY_PATH="${libdir}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" \ 103 $program ${1+"$@"} 104 else 105 $program ${1+"$@"} 106 fi 107} 108 109program_transform() 110{ 111 echo "$*" | sed "${program_transform_name}" 112} 113