xref: /aosp_15_r20/external/elfutils/tests/run-unstrip-test.sh (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1#! /bin/sh
2# Copyright (C) 2007-2010 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
20original=${original:-testfile12}
21stripped=${stripped:-testfile17}
22debugfile=${debugfile:-${stripped}.debug}
23
24testfiles $original $stripped $debugfile
25tempfiles testfile.unstrip testfile.inplace
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
32testrun ${abs_top_builddir}/src/unstrip -o testfile.unstrip $stripped $debugfile
33
34testrun ${abs_top_builddir}/src/elfcmp --hash-inexact $original testfile.unstrip
35
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
44# Also test modifying the file in place.
45
46rm -f testfile.inplace
47cp $debugfile testfile.inplace
48chmod 644 testfile.inplace
49testrun ${abs_top_builddir}/src/unstrip $stripped testfile.inplace
50
51testrun ${abs_top_builddir}/src/elfcmp --hash-inexact $original testfile.inplace
52