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