]> git.ipfire.org Git - thirdparty/elfutils.git/blame - tests/run-unstrip-test.sh
unstrip: Call adjust_relocs no more than once per section.
[thirdparty/elfutils.git] / tests / run-unstrip-test.sh
CommitLineData
9aa8ef7f 1#! /bin/sh
ec86e5fa 2# Copyright (C) 2007-2010 Red Hat, Inc.
de2ed97f 3# This file is part of elfutils.
9aa8ef7f 4#
de2ed97f
MW
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.
9aa8ef7f 9#
de2ed97f 10# elfutils is distributed in the hope that it will be useful, but
9aa8ef7f 11# WITHOUT ANY WARRANTY; without even the implied warranty of
de2ed97f
MW
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU General Public License for more details.
9aa8ef7f 14#
de2ed97f
MW
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/>.
9aa8ef7f
RM
17
18. $srcdir/test-subr.sh
19
20original=${original:-testfile12}
21stripped=${stripped:-testfile17}
22debugfile=${debugfile:-${stripped}.debug}
23
24testfiles $original $stripped $debugfile
ec86e5fa 25tempfiles testfile.unstrip testfile.inplace
9aa8ef7f
RM
26
27# These are old reference output from run-test-strip6.sh, when
28# strip left the .debug file with unchanged sh_size in
29# stripped sections that shrank in the stripped file. strip
30# no longer does that, but unstrip must still handle it.
31
86be792c 32testrun ${abs_top_builddir}/src/unstrip -o testfile.unstrip $stripped $debugfile
9aa8ef7f 33
86be792c 34testrun ${abs_top_builddir}/src/elfcmp --hash-inexact $original testfile.unstrip
ec86e5fa 35
2f9b180c
AM
36tempfiles syms-orig syms-testfile
37
38# Check whether relocated symbols changed.
39testrun ${abs_top_builddir}/tests/elf-print-reloc-syms $original > syms-orig
40testrun ${abs_top_builddir}/tests/elf-print-reloc-syms testfile.unstrip > syms-testfile
41
42testrun diff syms-orig syms-testfile
43
ec86e5fa
RM
44# Also test modifying the file in place.
45
46rm -f testfile.inplace
47cp $debugfile testfile.inplace
48chmod 644 testfile.inplace
86be792c 49testrun ${abs_top_builddir}/src/unstrip $stripped testfile.inplace
ec86e5fa 50
86be792c 51testrun ${abs_top_builddir}/src/elfcmp --hash-inexact $original testfile.inplace