1df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard#! /bin/sh
2df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# Copyright (C) 2015 Red Hat, Inc.
3df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# This file is part of elfutils.
4df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard#
5df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# This file is free software; you can redistribute it and/or modify
6df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# it under the terms of the GNU General Public License as published by
7df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# the Free Software Foundation; either version 3 of the License, or
8df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# (at your option) any later version.
9df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard#
10df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# elfutils is distributed in the hope that it will be useful, but
11df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# WITHOUT ANY WARRANTY; without even the implied warranty of
12df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# GNU General Public License for more details.
14df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard#
15df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# You should have received a copy of the GNU General Public License
16df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# along with this program.  If not, see <http://www.gnu.org/licenses/>.
17df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard
18df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard. $srcdir/test-subr.sh
19df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard
20df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# Generate a file with merged .shstrtab/.strtab table.
21df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# strip and unstrip it. Check all files with elflint.
22df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard
23df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# A random ET_EXEC file
24df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardinput=${abs_top_builddir}/tests/elfstrmerge
25df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardmerged=merged.elf
26df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardstripped=${merged}.stripped
27df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaarddebugfile=${merged}.debug
28df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardremerged=remerged.elf
29df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard
30df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtempfiles $merged $stripped $debugfile $remerged
31df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard
32df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $input
33df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu $input
34df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elfstrmerge
35df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/tests/elfstrmerge -o $merged $input
36df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $merged
37df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu $merged
38df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho strip
39df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/strip -o $stripped -f $debugfile $merged
40df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $stripped
41df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu $stripped
42df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $debugfile
43df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu -d $debugfile
44df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho unstrip
45df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/unstrip -o $remerged $stripped $debugfile
46df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $remerged
47df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu $remerged
48df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elfcmp
49df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elfcmp $merged $remerged
50df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard
51df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard# A random ET_REL file
52df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardinput=${abs_top_builddir}/tests/elfstrmerge.o
53df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardmerged=merged.elf
54df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardstripped=${merged}.stripped
55df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaarddebugfile=${merged}.debug
56df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardremerged=remerged.elf
57df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard
58df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtempfiles $merged $stripped $debugfile $remerged
59df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard
60df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $input
61df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu $input
62df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elfstrmerge
63df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/tests/elfstrmerge -o $merged $input
64df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $merged
65df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu $merged
66df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho strip
67df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/strip -o $stripped -f $debugfile $merged
68df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $stripped
69df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu $stripped
70df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $debugfile
71df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu -d $debugfile
72df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho unstrip
73df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/unstrip -o $remerged $stripped $debugfile
74df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elflint $remerged
75df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elflint --gnu $remerged
76df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardecho elfcmp
77df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardtestrun ${abs_top_builddir}/src/elfcmp $merged $remerged
78df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaard
79df7dfab451246e8b088040e052ca01f9d6aba774Mark Wielaardexit 0
80