1 #! /bin/sh 2 # Copyright (C) 2017 Red Hat, Inc. 3 # This file is part of elfutils. 4 # 5 # This file is free software; you can redistribute it and/or modify 6 # it under the terms of the GNU General Public License as published by 7 # the Free Software Foundation; either version 3 of the License, or 8 # (at your option) any later version. 9 # 10 # elfutils is distributed in the hope that it will be useful, but 11 # WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 # GNU General Public License for more details. 14 # 15 # You should have received a copy of the GNU General Public License 16 # along with this program. If not, see <http://www.gnu.org/licenses/>. 17 18 . $srcdir/test-subr.sh 19 20 # If there is nothing to strip then -o output should be identical to input. 21 # And there should not be an (empty) -f debug file. 22 23 tempfiles a.out strip.out debug.out 24 25 # Create no-debug a.out. 26 echo "int main() { return 1; }" | gcc -s -xc - 27 28 # strip to file 29 testrun ${abs_top_builddir}/src/strip -g -o strip.out || 30 { echo "*** failed to strip -g -o strip.out a.out"; exit -1; } 31 32 testrun ${abs_top_builddir}/src/elfcmp a.out strip.out || 33 { echo "*** failed strip.out different from a.out"; exit -1; } 34 35 # strip original 36 testrun ${abs_top_builddir}/src/strip -g || 37 { echo "*** failed to strip -g a.out"; exit -1; } 38 39 testrun ${abs_top_builddir}/src/elfcmp strip.out a.out || 40 { echo "*** failed a.out different from strip.out"; exit -1; } 41 42 # strip to file with debug file 43 testrun ${abs_top_builddir}/src/strip -g -o strip.out -f debug.out || 44 { echo "*** failed to strip -g -o strip.out -f debug.out a.out"; exit -1; } 45 46 testrun ${abs_top_builddir}/src/elfcmp a.out strip.out || 47 { echo "*** failed strip.out different from a.out (with debug)"; exit -1; } 48 49 test ! -f debug.out || 50 { echo "*** failed strip.out and debug.out exist"; exit -1; } 51 52 # strip original with debug file 53 testrun ${abs_top_builddir}/src/strip -g -f debug.out || 54 { echo "*** failed to strip -g -f debug.out a.out"; exit -1; } 55 56 testrun ${abs_top_builddir}/src/elfcmp strip.out a.out || 57 { echo "*** failed a.out different from strip.out (with debug)"; exit -1; } 58 59 test ! -f debug.out || 60 { echo "*** failed a.out and debug.out exist"; exit -1; } 61 62 exit 0 63