| #! /bin/sh |
| # Copyright (C) 2005, 2007, 2008 Red Hat, Inc. |
| # This file is part of Red Hat elfutils. |
| # |
| # Red Hat elfutils 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; version 2 of the License. |
| # |
| # Red Hat elfutils 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 Red Hat elfutils; if not, write to the Free Software Foundation, |
| # Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA. |
| # |
| # Red Hat elfutils is an included package of the Open Invention Network. |
| # An included package of the Open Invention Network is a package for which |
| # Open Invention Network licensees cross-license their patents. No patent |
| # license is granted, either expressly or impliedly, by designation as an |
| # included package. Should you wish to participate in the Open Invention |
| # Network licensing program, please visit www.openinventionnetwork.com |
| # <http://www.openinventionnetwork.com>. |
| |
| |
| # This file is sourced by ". $srcdir/test-subr.sh" at the start of |
| # each test script. It defines some functions they use and sets up |
| # canonical sh state for test runs. |
| |
| set -e |
| |
| #LC_ALL=C |
| #export LC_ALL |
| |
| remove_files= |
| trap 'rm -f $remove_files' 0 |
| |
| tempfiles() |
| { |
| remove_files="$remove_files $*" |
| } |
| |
| testfiles() |
| { |
| for file; do |
| bunzip2 -c $srcdir/${file}.bz2 > ${file} 2>/dev/null || exit 77 |
| remove_files="$remove_files $file" |
| done |
| } |
| |
| testrun_out() |
| { |
| outfile="$1" |
| shift |
| remove_files="$remove_files $outfile" |
| testrun "$@" > $outfile 2>&1 || : |
| } |
| |
| testrun_compare() |
| { |
| outfile="${1##*/}.out" |
| testrun_out $outfile "$@" |
| diff -u $outfile - |
| # diff's exit status will kill the script. |
| } |
| |
| test_cleanup() |
| { |
| rm -f $remove_files |
| remove_files= |
| } |
| |
| # See test-wrapper.sh, which sets the environment for this. |
| testrun() |
| { |
| ${elfutils_testrun}_testrun "$@" |
| } |
| |
| built_testrun() |
| { |
| LD_LIBRARY_PATH="${built_library_path}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"\ |
| "$@" |
| } |
| |
| installed_testrun() |
| { |
| program="$1" |
| shift |
| case "$program" in |
| ./*) |
| if [ "x$elfutils_tests_rpath" != xno ]; then |
| echo >&2 installcheck not possible with --enable-tests-rpath |
| exit 77 |
| fi |
| ;; |
| ../*) |
| program=${bindir}/`program_transform ${program##*/}` |
| ;; |
| esac |
| if [ "${libdir}" != /usr/lib ] && [ "${libdir}" != /usr/lib64 ]; then |
| LD_LIBRARY_PATH="${libdir}${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" \ |
| $program ${1+"$@"} |
| else |
| $program ${1+"$@"} |
| fi |
| } |
| |
| program_transform() |
| { |
| echo "$*" | sed "${program_transform_name}" |
| } |