You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.8 KiB
103 lines
3.8 KiB
#! /bin/sh
|
|
# Copyright (C) 2015 Red Hat, Inc.
|
|
# This file is part of elfutils.
|
|
#
|
|
# This file is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# elfutils is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
. $srcdir/test-subr.sh
|
|
|
|
# uncompress -> gnucompress -> uncompress -> elfcompress -> uncompress
|
|
testrun_elfcompress_file()
|
|
{
|
|
infile="$1"
|
|
uncompressedfile="${infile}.uncompressed"
|
|
tempfiles "$uncompressedfile"
|
|
|
|
echo "uncompress $infile -> $uncompressedfile"
|
|
testrun ${abs_top_builddir}/src/elfcompress -v -t none -o ${uncompressedfile} ${infile}
|
|
testrun ${abs_top_builddir}/src/elflint --gnu-ld ${uncompressedfile}
|
|
|
|
SIZE_uncompressed=$(stat -c%s $uncompressedfile)
|
|
|
|
gnucompressedfile="${infile}.gnu"
|
|
tempfiles "$gnucompressedfile"
|
|
echo "compress gnu $uncompressedfile -> $gnucompressedfile"
|
|
testrun ${abs_top_builddir}/src/elfcompress -v -t gnu -o ${gnucompressedfile} ${uncompressedfile}
|
|
testrun ${abs_top_builddir}/src/elflint --gnu-ld ${gnucompressedfile}
|
|
|
|
SIZE_gnucompressed=$(stat -c%s $gnucompressedfile)
|
|
test $SIZE_gnucompressed -lt $SIZE_uncompressed ||
|
|
{ echo "*** failure $gnucompressedfile not smaller"; exit -1; }
|
|
|
|
gnuuncompressedfile="${infile}.gnu.uncompressed"
|
|
tempfiles "$gnuuncompressedfile"
|
|
echo "uncompress $gnucompressedfile -> $gnuuncompressedfile"
|
|
testrun ${abs_top_builddir}/src/elfcompress -v -t none -o ${gnuuncompressedfile} ${gnucompressedfile}
|
|
testrun ${abs_top_builddir}/src/elfcmp ${uncompressedfile} ${gnuuncompressedfile}
|
|
|
|
elfcompressedfile="${infile}.gabi"
|
|
tempfiles "$elfcompressedfile"
|
|
echo "compress gabi $uncompressedfile -> $elfcompressedfile"
|
|
testrun ${abs_top_builddir}/src/elfcompress -v -t zlib -o ${elfcompressedfile} ${uncompressedfile}
|
|
testrun ${abs_top_builddir}/src/elflint --gnu-ld ${elfcompressedfile}
|
|
|
|
SIZE_elfcompressed=$(stat -c%s $elfcompressedfile)
|
|
test $SIZE_elfcompressed -lt $SIZE_uncompressed ||
|
|
{ echo "*** failure $elfcompressedfile not smaller"; exit -1; }
|
|
|
|
elfuncompressedfile="${infile}.gabi.uncompressed"
|
|
tempfiles "$elfuncompressedfile"
|
|
echo "uncompress $elfcompressedfile -> $elfuncompressedfile"
|
|
testrun ${abs_top_builddir}/src/elfcompress -v -t none -o ${elfuncompressedfile} ${elfcompressedfile}
|
|
testrun ${abs_top_builddir}/src/elfcmp ${uncompressedfile} ${elfuncompressedfile}
|
|
}
|
|
|
|
testrun_elfcompress()
|
|
{
|
|
testfile="$1"
|
|
testfiles ${testfile}
|
|
testrun_elfcompress_file ${testfile}
|
|
|
|
# Merge the string tables to make things a little more interesting.
|
|
mergedfile="${testfile}.merged"
|
|
tempfiles ${mergedfile}
|
|
echo "merging string tables ${testfile} -> ${mergedfile}"
|
|
testrun ${abs_top_builddir}/tests/elfstrmerge -o ${mergedfile} ${testfile}
|
|
testrun_elfcompress_file ${mergedfile}
|
|
}
|
|
|
|
# Random ELF32 testfile
|
|
testrun_elfcompress testfile4
|
|
|
|
# Random ELF64 testfile
|
|
testrun_elfcompress testfile12
|
|
|
|
# Random ELF64BE testfile
|
|
testrun_elfcompress testfileppc64
|
|
|
|
# Random ELF32BE testfile
|
|
testrun_elfcompress testfileppc32
|
|
|
|
# Already compressed files
|
|
testrun_elfcompress testfile-zgnu64
|
|
testrun_elfcompress testfile-zgnu64be
|
|
testrun_elfcompress testfile-zgabi64
|
|
testrun_elfcompress testfile-zgabi64be
|
|
testrun_elfcompress testfile-zgnu32
|
|
testrun_elfcompress testfile-zgnu32be
|
|
testrun_elfcompress testfile-zgabi32
|
|
testrun_elfcompress testfile-zgabi32be
|
|
|
|
exit 0
|