Blame tests/run-elfclassify.sh

Packit Service 97d2fb
#!/bin/sh
Packit Service 97d2fb
# Copyright (C) 2019 Red Hat, Inc.
Packit Service 97d2fb
# This file is part of elfutils.
Packit Service 97d2fb
#
Packit Service 97d2fb
# This file is free software; you can redistribute it and/or modify
Packit Service 97d2fb
# it under the terms of the GNU General Public License as published by
Packit Service 97d2fb
# the Free Software Foundation; either version 3 of the License, or
Packit Service 97d2fb
# (at your option) any later version.
Packit Service 97d2fb
#
Packit Service 97d2fb
# elfutils is distributed in the hope that it will be useful, but
Packit Service 97d2fb
# WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 97d2fb
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 97d2fb
# GNU General Public License for more details.
Packit Service 97d2fb
#
Packit Service 97d2fb
# You should have received a copy of the GNU General Public License
Packit Service 97d2fb
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 97d2fb
Packit Service 97d2fb
. $srcdir/test-subr.sh
Packit Service 97d2fb
Packit Service 97d2fb
core_files=\
Packit Service 97d2fb
"testfile_aarch64_core \
Packit Service 97d2fb
 testfile-backtrace-demangle.core \
Packit Service 97d2fb
 testfiledwarfinlines.core \
Packit Service 97d2fb
 testfile_i686_core \
Packit Service 97d2fb
 testfile-m68k-core \
Packit Service 97d2fb
 testfile-riscv64-core \
Packit Service 97d2fb
 backtrace.aarch64.core \
Packit Service 97d2fb
 backtrace.i386.core \
Packit Service 97d2fb
 backtrace.ppc.core \
Packit Service 97d2fb
 backtrace.s390.core"
Packit Service 97d2fb
Packit Service 97d2fb
testfiles $core_files
Packit Service 97d2fb
Packit Service 97d2fb
echo "elfclassify --core"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --core $core_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --core --print $core_files <
Packit Service 97d2fb
$(echo $core_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "core files are not programs"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-program $core_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $core_files <
Packit Service 97d2fb
$(echo $core_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "core files are not shared"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-shared $core_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $core_files <
Packit Service 97d2fb
$(echo $core_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "core files are not kernel-modules"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $core_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $core_files <
Packit Service 97d2fb
$(echo $core_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "core files are not debug-only"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $core_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $core_files <
Packit Service 97d2fb
$(echo $core_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
object_files=\
Packit Service 97d2fb
"debug-ranges-no-lowpc.o \
Packit Service 97d2fb
 testfile-annobingroup-i386.o \
Packit Service 97d2fb
 testfile-bpf-dis1.o \
Packit Service 97d2fb
 testfile-debug-rel-g.o \
Packit Service 97d2fb
 testfile-gnu-property-note.o"
Packit Service 97d2fb
Packit Service 97d2fb
testfiles $object_files
Packit Service 97d2fb
Packit Service 97d2fb
echo "elfclassify --elf-file"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --elf-file $object_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --elf-file --print $object_files <
Packit Service 97d2fb
$(echo $object_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "object files are not archives"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-elf-archive $object_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-elf-archive --print $object_files <
Packit Service 97d2fb
$(echo $object_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "object files are not core files"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-core $object_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-core --print $object_files <
Packit Service 97d2fb
$(echo $object_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "object files are not program files"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-program $object_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $object_files <
Packit Service 97d2fb
$(echo $object_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "object files are not shared files"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-shared $object_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $object_files <
Packit Service 97d2fb
$(echo $object_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "object files are not kernel modules"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $object_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $object_files <
Packit Service 97d2fb
$(echo $object_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "object files are not debug-only files"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $object_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $object_files <
Packit Service 97d2fb
$(echo $object_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
ar_files="testarchive64.a"
Packit Service 97d2fb
Packit Service 97d2fb
testfiles $ar_files
Packit Service 97d2fb
Packit Service 97d2fb
echo "elfclassify --elf-archive"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --elf-archive $ar_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --elf-archive --print $ar_files <
Packit Service 97d2fb
$(echo $ar_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "archives are not elf-files"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-elf-file $ar_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-elf-file --print $ar_files <
Packit Service 97d2fb
$(echo $ar_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "archives are not core files"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-core $ar_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-core --print $ar_files <
Packit Service 97d2fb
$(echo $ar_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "archives are not program files"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-program $ar_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $ar_files <
Packit Service 97d2fb
$(echo $ar_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "archives are not shared files"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-shared $ar_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $ar_files <
Packit Service 97d2fb
$(echo $ar_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
lib_files=\
Packit Service 97d2fb
"testfile52-32.noshdrs.so \
Packit Service 97d2fb
 libtestfile_multi_shared.so \
Packit Service 97d2fb
 testfile52-32.prelink.so \
Packit Service 97d2fb
 testfile52-32.so
Packit Service 97d2fb
 testfile54-64.noshdrs.so \
Packit Service 97d2fb
 testfile54-64.prelink.so \
Packit Service 97d2fb
 testfile54-64.so \
Packit Service 97d2fb
 testlib_dynseg.so"
Packit Service 97d2fb
Packit Service 97d2fb
testfiles $lib_files
Packit Service 97d2fb
Packit Service 97d2fb
echo "elfclassify --shared"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --shared $lib_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --shared --print $lib_files <
Packit Service 97d2fb
$(echo $lib_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "shared files are loadable"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --loadable $lib_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --loadable --print $lib_files <
Packit Service 97d2fb
$(echo $lib_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "shared files are not executables"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-executable $lib_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-executable --print $lib_files <
Packit Service 97d2fb
$(echo $lib_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "shared files are not debug-only"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $lib_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $lib_files <
Packit Service 97d2fb
$(echo $lib_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "shared files are not kernel modules"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $lib_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $lib_files <
Packit Service 97d2fb
$(echo $lib_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
exe_files=\
Packit Service 97d2fb
"backtrace.aarch64.exec \
Packit Service 97d2fb
 backtrace.i386.exec \
Packit Service 97d2fb
 backtrace.ppc.exec \
Packit Service 97d2fb
 backtrace.s390x.exec \
Packit Service 97d2fb
 testfile70.exec \
Packit Service 97d2fb
 test-offset-loop \
Packit Service 97d2fb
 testfilebaztab \
Packit Service 97d2fb
 testfilebaztabppc64"
Packit Service 97d2fb
Packit Service 97d2fb
testfiles $exe_files
Packit Service 97d2fb
Packit Service 97d2fb
echo "elfclassify --program"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --program $exe_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --program --print $exe_files <
Packit Service 97d2fb
$(echo $exe_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "programs are executables (in this case)"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --executable $exe_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --executable --print $exe_files <
Packit Service 97d2fb
$(echo $exe_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "programs are not shared libraries (in this case)"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-shared $exe_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $exe_files <
Packit Service 97d2fb
$(echo $exe_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "programs are not kernel-modules"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $exe_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $exe_files <
Packit Service 97d2fb
$(echo $exe_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "programs are not debug-only"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $exe_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $exe_files <
Packit Service 97d2fb
$(echo $exe_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
kmod_files=\
Packit Service 97d2fb
"hello_aarch64.ko \
Packit Service 97d2fb
 hello_csky.ko \
Packit Service 97d2fb
 hello_i386.ko \
Packit Service 97d2fb
 hello_m68k.ko \
Packit Service 97d2fb
 hello_ppc64.ko \
Packit Service 97d2fb
 hello_riscv64.ko \
Packit Service 97d2fb
 hello_s390.ko \
Packit Service 97d2fb
 hello_x86_64.ko"
Packit Service 97d2fb
Packit Service 97d2fb
testfiles $kmod_files
Packit Service 97d2fb
Packit Service 97d2fb
echo "elfclassify --linux-kernel-module"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --linux-kernel-module $kmod_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --linux-kernel-module --print $kmod_files <
Packit Service 97d2fb
$(echo $kmod_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "kmods are unstripped"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files <
Packit Service 97d2fb
$(echo $kmod_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "kmods are not debug-only"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-debug-only $kmod_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $kmod_files <
Packit Service 97d2fb
$(echo $kmod_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "kmods are not loabable (in the normal sense)"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-loadable $kmod_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-loadable --print $kmod_files <
Packit Service 97d2fb
$(echo $kmod_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "gnu compressed kmods are unstripped"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files <
Packit Service 97d2fb
$(echo $kmod_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
debug_files=\
Packit Service 97d2fb
"testfile15.debug \
Packit Service 97d2fb
 testfile35.debug \
Packit Service 97d2fb
 testfile40.debug \
Packit Service 97d2fb
 testfile48.debug \
Packit Service 97d2fb
 testfile53-32.debug \
Packit Service 97d2fb
 testfile53-64.debug \
Packit Service 97d2fb
 testfilebazdbg.debug \
Packit Service 97d2fb
 testfilebazdbgppc64.debug \
Packit Service 97d2fb
 addrx_constx-4.dwo \
Packit Service 97d2fb
 addrx_constx-5.dwo"
Packit Service 97d2fb
Packit Service 97d2fb
testfiles $debug_files
Packit Service 97d2fb
Packit Service 97d2fb
echo "elfclassify --debug-only"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --debug-only $debug_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --debug-only --print $debug_files <
Packit Service 97d2fb
$(echo $debug_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "debug-only files are unstripped"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $debug_files <
Packit Service 97d2fb
$(echo $debug_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "debug-only files are not programs"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-program $debug_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $debug_files <
Packit Service 97d2fb
$(echo $debug_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "debug-only files are not shared"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --not-shared $debug_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $debug_files <
Packit Service 97d2fb
$(echo $debug_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "compress the debug sections and try again"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files
Packit Service 97d2fb
Packit Service 97d2fb
echo "again unstripped"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $debug_files <
Packit Service 97d2fb
$(echo $debug_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF
Packit Service 97d2fb
Packit Service 97d2fb
echo "again debug-only"
Packit Service 97d2fb
testrun ${abs_top_builddir}/src/elfclassify --debug-only $debug_files
Packit Service 97d2fb
testrun_compare ${abs_top_builddir}/src/elfclassify --debug-only --print $debug_files <
Packit Service 97d2fb
$(echo $debug_files | sed -e "s/ /\n/g")
Packit Service 97d2fb
EOF