xref: /aosp_15_r20/external/elfutils/tests/run-elfclassify.sh (revision 7304104da70ce23c86437a01be71edd1a2d7f37e)
1*7304104dSAndroid Build Coastguard Worker#!/bin/sh
2*7304104dSAndroid Build Coastguard Worker# Copyright (C) 2019 Red Hat, Inc.
3*7304104dSAndroid Build Coastguard Worker# This file is part of elfutils.
4*7304104dSAndroid Build Coastguard Worker#
5*7304104dSAndroid Build Coastguard Worker# This file is free software; you can redistribute it and/or modify
6*7304104dSAndroid Build Coastguard Worker# it under the terms of the GNU General Public License as published by
7*7304104dSAndroid Build Coastguard Worker# the Free Software Foundation; either version 3 of the License, or
8*7304104dSAndroid Build Coastguard Worker# (at your option) any later version.
9*7304104dSAndroid Build Coastguard Worker#
10*7304104dSAndroid Build Coastguard Worker# elfutils is distributed in the hope that it will be useful, but
11*7304104dSAndroid Build Coastguard Worker# WITHOUT ANY WARRANTY; without even the implied warranty of
12*7304104dSAndroid Build Coastguard Worker# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13*7304104dSAndroid Build Coastguard Worker# GNU General Public License for more details.
14*7304104dSAndroid Build Coastguard Worker#
15*7304104dSAndroid Build Coastguard Worker# You should have received a copy of the GNU General Public License
16*7304104dSAndroid Build Coastguard Worker# along with this program.  If not, see <http://www.gnu.org/licenses/>.
17*7304104dSAndroid Build Coastguard Worker
18*7304104dSAndroid Build Coastguard Worker. $srcdir/test-subr.sh
19*7304104dSAndroid Build Coastguard Worker
20*7304104dSAndroid Build Coastguard Workercore_files=\
21*7304104dSAndroid Build Coastguard Worker"testfile_aarch64_core \
22*7304104dSAndroid Build Coastguard Worker testfile-backtrace-demangle.core \
23*7304104dSAndroid Build Coastguard Worker testfiledwarfinlines.core \
24*7304104dSAndroid Build Coastguard Worker testfile_i686_core \
25*7304104dSAndroid Build Coastguard Worker testfile-m68k-core \
26*7304104dSAndroid Build Coastguard Worker testfile-riscv64-core \
27*7304104dSAndroid Build Coastguard Worker backtrace.aarch64.core \
28*7304104dSAndroid Build Coastguard Worker backtrace.i386.core \
29*7304104dSAndroid Build Coastguard Worker backtrace.ppc.core \
30*7304104dSAndroid Build Coastguard Worker backtrace.s390.core"
31*7304104dSAndroid Build Coastguard Worker
32*7304104dSAndroid Build Coastguard Workertestfiles $core_files
33*7304104dSAndroid Build Coastguard Worker
34*7304104dSAndroid Build Coastguard Workerecho "elfclassify --core"
35*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --core $core_files
36*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --core --print $core_files <<EOF
37*7304104dSAndroid Build Coastguard Worker$(echo $core_files | sed -e "s/ /\n/g")
38*7304104dSAndroid Build Coastguard WorkerEOF
39*7304104dSAndroid Build Coastguard Worker
40*7304104dSAndroid Build Coastguard Workerecho "core files are not programs"
41*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-program $core_files
42*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $core_files <<EOF
43*7304104dSAndroid Build Coastguard Worker$(echo $core_files | sed -e "s/ /\n/g")
44*7304104dSAndroid Build Coastguard WorkerEOF
45*7304104dSAndroid Build Coastguard Worker
46*7304104dSAndroid Build Coastguard Workerecho "core files are not shared"
47*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-shared $core_files
48*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $core_files <<EOF
49*7304104dSAndroid Build Coastguard Worker$(echo $core_files | sed -e "s/ /\n/g")
50*7304104dSAndroid Build Coastguard WorkerEOF
51*7304104dSAndroid Build Coastguard Worker
52*7304104dSAndroid Build Coastguard Workerecho "core files are not kernel-modules"
53*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $core_files
54*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $core_files <<EOF
55*7304104dSAndroid Build Coastguard Worker$(echo $core_files | sed -e "s/ /\n/g")
56*7304104dSAndroid Build Coastguard WorkerEOF
57*7304104dSAndroid Build Coastguard Worker
58*7304104dSAndroid Build Coastguard Workerecho "core files are not debug-only"
59*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-debug-only $core_files
60*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $core_files <<EOF
61*7304104dSAndroid Build Coastguard Worker$(echo $core_files | sed -e "s/ /\n/g")
62*7304104dSAndroid Build Coastguard WorkerEOF
63*7304104dSAndroid Build Coastguard Worker
64*7304104dSAndroid Build Coastguard Workerobject_files=\
65*7304104dSAndroid Build Coastguard Worker"debug-ranges-no-lowpc.o \
66*7304104dSAndroid Build Coastguard Worker testfile-annobingroup-i386.o \
67*7304104dSAndroid Build Coastguard Worker testfile-bpf-dis1.o \
68*7304104dSAndroid Build Coastguard Worker testfile-debug-rel-g.o \
69*7304104dSAndroid Build Coastguard Worker testfile-gnu-property-note.o"
70*7304104dSAndroid Build Coastguard Worker
71*7304104dSAndroid Build Coastguard Workertestfiles $object_files
72*7304104dSAndroid Build Coastguard Worker
73*7304104dSAndroid Build Coastguard Workerecho "elfclassify --elf-file"
74*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --elf-file $object_files
75*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --elf-file --print $object_files <<EOF
76*7304104dSAndroid Build Coastguard Worker$(echo $object_files | sed -e "s/ /\n/g")
77*7304104dSAndroid Build Coastguard WorkerEOF
78*7304104dSAndroid Build Coastguard Worker
79*7304104dSAndroid Build Coastguard Workerecho "object files are not archives"
80*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-elf-archive $object_files
81*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-elf-archive --print $object_files <<EOF
82*7304104dSAndroid Build Coastguard Worker$(echo $object_files | sed -e "s/ /\n/g")
83*7304104dSAndroid Build Coastguard WorkerEOF
84*7304104dSAndroid Build Coastguard Worker
85*7304104dSAndroid Build Coastguard Workerecho "object files are not core files"
86*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-core $object_files
87*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-core --print $object_files <<EOF
88*7304104dSAndroid Build Coastguard Worker$(echo $object_files | sed -e "s/ /\n/g")
89*7304104dSAndroid Build Coastguard WorkerEOF
90*7304104dSAndroid Build Coastguard Worker
91*7304104dSAndroid Build Coastguard Workerecho "object files are not program files"
92*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-program $object_files
93*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $object_files <<EOF
94*7304104dSAndroid Build Coastguard Worker$(echo $object_files | sed -e "s/ /\n/g")
95*7304104dSAndroid Build Coastguard WorkerEOF
96*7304104dSAndroid Build Coastguard Worker
97*7304104dSAndroid Build Coastguard Workerecho "object files are not shared files"
98*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-shared $object_files
99*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $object_files <<EOF
100*7304104dSAndroid Build Coastguard Worker$(echo $object_files | sed -e "s/ /\n/g")
101*7304104dSAndroid Build Coastguard WorkerEOF
102*7304104dSAndroid Build Coastguard Worker
103*7304104dSAndroid Build Coastguard Workerecho "object files are not kernel modules"
104*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $object_files
105*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $object_files <<EOF
106*7304104dSAndroid Build Coastguard Worker$(echo $object_files | sed -e "s/ /\n/g")
107*7304104dSAndroid Build Coastguard WorkerEOF
108*7304104dSAndroid Build Coastguard Worker
109*7304104dSAndroid Build Coastguard Workerecho "object files are not debug-only files"
110*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-debug-only $object_files
111*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $object_files <<EOF
112*7304104dSAndroid Build Coastguard Worker$(echo $object_files | sed -e "s/ /\n/g")
113*7304104dSAndroid Build Coastguard WorkerEOF
114*7304104dSAndroid Build Coastguard Worker
115*7304104dSAndroid Build Coastguard Workerar_files="testarchive64.a"
116*7304104dSAndroid Build Coastguard Worker
117*7304104dSAndroid Build Coastguard Workertestfiles $ar_files
118*7304104dSAndroid Build Coastguard Worker
119*7304104dSAndroid Build Coastguard Workerecho "elfclassify --elf-archive"
120*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --elf-archive $ar_files
121*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --elf-archive --print $ar_files <<EOF
122*7304104dSAndroid Build Coastguard Worker$(echo $ar_files | sed -e "s/ /\n/g")
123*7304104dSAndroid Build Coastguard WorkerEOF
124*7304104dSAndroid Build Coastguard Worker
125*7304104dSAndroid Build Coastguard Workerecho "archives are not elf-files"
126*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-elf-file $ar_files
127*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-elf-file --print $ar_files <<EOF
128*7304104dSAndroid Build Coastguard Worker$(echo $ar_files | sed -e "s/ /\n/g")
129*7304104dSAndroid Build Coastguard WorkerEOF
130*7304104dSAndroid Build Coastguard Worker
131*7304104dSAndroid Build Coastguard Workerecho "archives are not core files"
132*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-core $ar_files
133*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-core --print $ar_files <<EOF
134*7304104dSAndroid Build Coastguard Worker$(echo $ar_files | sed -e "s/ /\n/g")
135*7304104dSAndroid Build Coastguard WorkerEOF
136*7304104dSAndroid Build Coastguard Worker
137*7304104dSAndroid Build Coastguard Workerecho "archives are not program files"
138*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-program $ar_files
139*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $ar_files <<EOF
140*7304104dSAndroid Build Coastguard Worker$(echo $ar_files | sed -e "s/ /\n/g")
141*7304104dSAndroid Build Coastguard WorkerEOF
142*7304104dSAndroid Build Coastguard Worker
143*7304104dSAndroid Build Coastguard Workerecho "archives are not shared files"
144*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-shared $ar_files
145*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $ar_files <<EOF
146*7304104dSAndroid Build Coastguard Worker$(echo $ar_files | sed -e "s/ /\n/g")
147*7304104dSAndroid Build Coastguard WorkerEOF
148*7304104dSAndroid Build Coastguard Worker
149*7304104dSAndroid Build Coastguard Workerlib_files=\
150*7304104dSAndroid Build Coastguard Worker"testfile52-32.noshdrs.so \
151*7304104dSAndroid Build Coastguard Worker libtestfile_multi_shared.so \
152*7304104dSAndroid Build Coastguard Worker testfile52-32.prelink.so \
153*7304104dSAndroid Build Coastguard Worker testfile52-32.so
154*7304104dSAndroid Build Coastguard Worker testfile54-64.noshdrs.so \
155*7304104dSAndroid Build Coastguard Worker testfile54-64.prelink.so \
156*7304104dSAndroid Build Coastguard Worker testfile54-64.so \
157*7304104dSAndroid Build Coastguard Worker testlib_dynseg.so"
158*7304104dSAndroid Build Coastguard Worker
159*7304104dSAndroid Build Coastguard Workertestfiles $lib_files
160*7304104dSAndroid Build Coastguard Worker
161*7304104dSAndroid Build Coastguard Workerecho "elfclassify --shared"
162*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --shared $lib_files
163*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --shared --print $lib_files <<EOF
164*7304104dSAndroid Build Coastguard Worker$(echo $lib_files | sed -e "s/ /\n/g")
165*7304104dSAndroid Build Coastguard WorkerEOF
166*7304104dSAndroid Build Coastguard Worker
167*7304104dSAndroid Build Coastguard Workerecho "shared files are loadable"
168*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --loadable $lib_files
169*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --loadable --print $lib_files <<EOF
170*7304104dSAndroid Build Coastguard Worker$(echo $lib_files | sed -e "s/ /\n/g")
171*7304104dSAndroid Build Coastguard WorkerEOF
172*7304104dSAndroid Build Coastguard Worker
173*7304104dSAndroid Build Coastguard Workerecho "shared files are not executables"
174*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-executable $lib_files
175*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-executable --print $lib_files <<EOF
176*7304104dSAndroid Build Coastguard Worker$(echo $lib_files | sed -e "s/ /\n/g")
177*7304104dSAndroid Build Coastguard WorkerEOF
178*7304104dSAndroid Build Coastguard Worker
179*7304104dSAndroid Build Coastguard Workerecho "shared files are not debug-only"
180*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-debug-only $lib_files
181*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $lib_files <<EOF
182*7304104dSAndroid Build Coastguard Worker$(echo $lib_files | sed -e "s/ /\n/g")
183*7304104dSAndroid Build Coastguard WorkerEOF
184*7304104dSAndroid Build Coastguard Worker
185*7304104dSAndroid Build Coastguard Workerecho "shared files are not kernel modules"
186*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $lib_files
187*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $lib_files <<EOF
188*7304104dSAndroid Build Coastguard Worker$(echo $lib_files | sed -e "s/ /\n/g")
189*7304104dSAndroid Build Coastguard WorkerEOF
190*7304104dSAndroid Build Coastguard Worker
191*7304104dSAndroid Build Coastguard Workerexe_files=\
192*7304104dSAndroid Build Coastguard Worker"backtrace.aarch64.exec \
193*7304104dSAndroid Build Coastguard Worker backtrace.i386.exec \
194*7304104dSAndroid Build Coastguard Worker backtrace.ppc.exec \
195*7304104dSAndroid Build Coastguard Worker backtrace.s390x.exec \
196*7304104dSAndroid Build Coastguard Worker testfile70.exec \
197*7304104dSAndroid Build Coastguard Worker test-offset-loop \
198*7304104dSAndroid Build Coastguard Worker testfilebaztab \
199*7304104dSAndroid Build Coastguard Worker testfilebaztabppc64"
200*7304104dSAndroid Build Coastguard Worker
201*7304104dSAndroid Build Coastguard Workertestfiles $exe_files
202*7304104dSAndroid Build Coastguard Worker
203*7304104dSAndroid Build Coastguard Workerecho "elfclassify --program"
204*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --program $exe_files
205*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --program --print $exe_files <<EOF
206*7304104dSAndroid Build Coastguard Worker$(echo $exe_files | sed -e "s/ /\n/g")
207*7304104dSAndroid Build Coastguard WorkerEOF
208*7304104dSAndroid Build Coastguard Worker
209*7304104dSAndroid Build Coastguard Workerecho "programs are executables (in this case)"
210*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --executable $exe_files
211*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --executable --print $exe_files <<EOF
212*7304104dSAndroid Build Coastguard Worker$(echo $exe_files | sed -e "s/ /\n/g")
213*7304104dSAndroid Build Coastguard WorkerEOF
214*7304104dSAndroid Build Coastguard Worker
215*7304104dSAndroid Build Coastguard Workerecho "programs are not shared libraries (in this case)"
216*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-shared $exe_files
217*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $exe_files <<EOF
218*7304104dSAndroid Build Coastguard Worker$(echo $exe_files | sed -e "s/ /\n/g")
219*7304104dSAndroid Build Coastguard WorkerEOF
220*7304104dSAndroid Build Coastguard Worker
221*7304104dSAndroid Build Coastguard Workerecho "programs are not kernel-modules"
222*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module $exe_files
223*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-linux-kernel-module --print $exe_files <<EOF
224*7304104dSAndroid Build Coastguard Worker$(echo $exe_files | sed -e "s/ /\n/g")
225*7304104dSAndroid Build Coastguard WorkerEOF
226*7304104dSAndroid Build Coastguard Worker
227*7304104dSAndroid Build Coastguard Workerecho "programs are not debug-only"
228*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-debug-only $exe_files
229*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $exe_files <<EOF
230*7304104dSAndroid Build Coastguard Worker$(echo $exe_files | sed -e "s/ /\n/g")
231*7304104dSAndroid Build Coastguard WorkerEOF
232*7304104dSAndroid Build Coastguard Worker
233*7304104dSAndroid Build Coastguard Workerkmod_files=\
234*7304104dSAndroid Build Coastguard Worker"hello_aarch64.ko \
235*7304104dSAndroid Build Coastguard Worker hello_csky.ko \
236*7304104dSAndroid Build Coastguard Worker hello_i386.ko \
237*7304104dSAndroid Build Coastguard Worker hello_m68k.ko \
238*7304104dSAndroid Build Coastguard Worker hello_ppc64.ko \
239*7304104dSAndroid Build Coastguard Worker hello_riscv64.ko \
240*7304104dSAndroid Build Coastguard Worker hello_s390.ko \
241*7304104dSAndroid Build Coastguard Worker hello_x86_64.ko"
242*7304104dSAndroid Build Coastguard Worker
243*7304104dSAndroid Build Coastguard Workertestfiles $kmod_files
244*7304104dSAndroid Build Coastguard Worker
245*7304104dSAndroid Build Coastguard Workerecho "elfclassify --linux-kernel-module"
246*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --linux-kernel-module $kmod_files
247*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --linux-kernel-module --print $kmod_files <<EOF
248*7304104dSAndroid Build Coastguard Worker$(echo $kmod_files | sed -e "s/ /\n/g")
249*7304104dSAndroid Build Coastguard WorkerEOF
250*7304104dSAndroid Build Coastguard Worker
251*7304104dSAndroid Build Coastguard Workerecho "kmods are unstripped"
252*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files
253*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files <<EOF
254*7304104dSAndroid Build Coastguard Worker$(echo $kmod_files | sed -e "s/ /\n/g")
255*7304104dSAndroid Build Coastguard WorkerEOF
256*7304104dSAndroid Build Coastguard Worker
257*7304104dSAndroid Build Coastguard Workerecho "kmods are not debug-only"
258*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-debug-only $kmod_files
259*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-debug-only --print $kmod_files <<EOF
260*7304104dSAndroid Build Coastguard Worker$(echo $kmod_files | sed -e "s/ /\n/g")
261*7304104dSAndroid Build Coastguard WorkerEOF
262*7304104dSAndroid Build Coastguard Worker
263*7304104dSAndroid Build Coastguard Workerecho "kmods are not loabable (in the normal sense)"
264*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-loadable $kmod_files
265*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-loadable --print $kmod_files <<EOF
266*7304104dSAndroid Build Coastguard Worker$(echo $kmod_files | sed -e "s/ /\n/g")
267*7304104dSAndroid Build Coastguard WorkerEOF
268*7304104dSAndroid Build Coastguard Worker
269*7304104dSAndroid Build Coastguard Workerecho "gnu compressed kmods are unstripped"
270*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfcompress -t gnu --force $kmod_files
271*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --unstripped $kmod_files
272*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $kmod_files <<EOF
273*7304104dSAndroid Build Coastguard Worker$(echo $kmod_files | sed -e "s/ /\n/g")
274*7304104dSAndroid Build Coastguard WorkerEOF
275*7304104dSAndroid Build Coastguard Worker
276*7304104dSAndroid Build Coastguard Workerdebug_files=\
277*7304104dSAndroid Build Coastguard Worker"testfile15.debug \
278*7304104dSAndroid Build Coastguard Worker testfile35.debug \
279*7304104dSAndroid Build Coastguard Worker testfile40.debug \
280*7304104dSAndroid Build Coastguard Worker testfile48.debug \
281*7304104dSAndroid Build Coastguard Worker testfile53-32.debug \
282*7304104dSAndroid Build Coastguard Worker testfile53-64.debug \
283*7304104dSAndroid Build Coastguard Worker testfilebazdbg.debug \
284*7304104dSAndroid Build Coastguard Worker testfilebazdbgppc64.debug \
285*7304104dSAndroid Build Coastguard Worker addrx_constx-4.dwo \
286*7304104dSAndroid Build Coastguard Worker addrx_constx-5.dwo"
287*7304104dSAndroid Build Coastguard Worker
288*7304104dSAndroid Build Coastguard Workertestfiles $debug_files
289*7304104dSAndroid Build Coastguard Worker
290*7304104dSAndroid Build Coastguard Workerecho "elfclassify --debug-only"
291*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --debug-only $debug_files
292*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --debug-only --print $debug_files <<EOF
293*7304104dSAndroid Build Coastguard Worker$(echo $debug_files | sed -e "s/ /\n/g")
294*7304104dSAndroid Build Coastguard WorkerEOF
295*7304104dSAndroid Build Coastguard Worker
296*7304104dSAndroid Build Coastguard Workerecho "debug-only files are unstripped"
297*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files
298*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $debug_files <<EOF
299*7304104dSAndroid Build Coastguard Worker$(echo $debug_files | sed -e "s/ /\n/g")
300*7304104dSAndroid Build Coastguard WorkerEOF
301*7304104dSAndroid Build Coastguard Worker
302*7304104dSAndroid Build Coastguard Workerecho "debug-only files are not programs"
303*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-program $debug_files
304*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-program --print $debug_files <<EOF
305*7304104dSAndroid Build Coastguard Worker$(echo $debug_files | sed -e "s/ /\n/g")
306*7304104dSAndroid Build Coastguard WorkerEOF
307*7304104dSAndroid Build Coastguard Worker
308*7304104dSAndroid Build Coastguard Workerecho "debug-only files are not shared"
309*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --not-shared $debug_files
310*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --not-shared --print $debug_files <<EOF
311*7304104dSAndroid Build Coastguard Worker$(echo $debug_files | sed -e "s/ /\n/g")
312*7304104dSAndroid Build Coastguard WorkerEOF
313*7304104dSAndroid Build Coastguard Worker
314*7304104dSAndroid Build Coastguard Workerecho "compress the debug sections and try again"
315*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfcompress -t gnu --force $debug_files
316*7304104dSAndroid Build Coastguard Worker
317*7304104dSAndroid Build Coastguard Workerecho "again unstripped"
318*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --unstripped $debug_files
319*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --unstripped --print $debug_files <<EOF
320*7304104dSAndroid Build Coastguard Worker$(echo $debug_files | sed -e "s/ /\n/g")
321*7304104dSAndroid Build Coastguard WorkerEOF
322*7304104dSAndroid Build Coastguard Worker
323*7304104dSAndroid Build Coastguard Workerecho "again debug-only"
324*7304104dSAndroid Build Coastguard Workertestrun ${abs_top_builddir}/src/elfclassify --debug-only $debug_files
325*7304104dSAndroid Build Coastguard Workertestrun_compare ${abs_top_builddir}/src/elfclassify --debug-only --print $debug_files <<EOF
326*7304104dSAndroid Build Coastguard Worker$(echo $debug_files | sed -e "s/ /\n/g")
327*7304104dSAndroid Build Coastguard WorkerEOF
328