diff options
author | Mark Wielaard <mark@klomp.org> | 2019-04-30 13:00:17 +0200 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2019-05-04 21:31:08 +0200 |
commit | 1d8f5d30a92285fd4e7895a1d00587ac487412e3 (patch) | |
tree | 4daa1df6e8f87cf7286e3c276e7729fda2fee9a0 /tests/run-xlate-note.sh | |
parent | 62bed2018232379ac91020137df37afe5e6a5579 (diff) | |
download | elfutils-1d8f5d30a92285fd4e7895a1d00587ac487412e3.tar.gz |
libelf: If xlate can only convert the ELF note header, just do that.
When we started parsing new style ELF_T_NHDR8 notes we added extra
checks on alignment and padding. When those failed we would stop
converting and just return the rest of the ELF Note unconverted.
In the case were we just had enough data for just the ELF Note header
and the destionation and source weren't the same we would then
accidentially throw away the Note header conversion we just did.
Fix that by indicating we did correctly convert just the header.
Adds testcase that compares parsing ELF notes with gelf_getnote
and parsing the raw data by hand using elf32_xlatetom using just
the Note header and ignoring the (raw) note data.
Signed-off-by: Mark Wielaard <mark@klomp.org>
Diffstat (limited to 'tests/run-xlate-note.sh')
-rwxr-xr-x | tests/run-xlate-note.sh | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/tests/run-xlate-note.sh b/tests/run-xlate-note.sh new file mode 100755 index 00000000..a9074182 --- /dev/null +++ b/tests/run-xlate-note.sh @@ -0,0 +1,93 @@ +# Copyright (C) 2019 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 + +testfiles testfileppc32 +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfileppc32 << EOF +Notes in section 2: +type: 1,1, namesz: 4,4, descsz: 16,16 +Notes in section 3: +type: 3,3, namesz: 4,4, descsz: 20,20 +EOF + +testfiles testfileppc64 +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfileppc64 << EOF +Notes in section 2: +type: 1,1, namesz: 4,4, descsz: 16,16 +Notes in section 3: +type: 3,3, namesz: 4,4, descsz: 20,20 +EOF + +testfiles testfiles390 +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfiles390 << EOF +Notes in section 2: +type: 1,1, namesz: 4,4, descsz: 16,16 +Notes in section 3: +type: 3,3, namesz: 4,4, descsz: 20,20 +EOF + +testfiles testfiles390x +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfiles390x << EOF +Notes in section 2: +type: 1,1, namesz: 4,4, descsz: 16,16 +Notes in section 3: +type: 3,3, namesz: 4,4, descsz: 20,20 +EOF + +testfiles testfileaarch64 +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfileaarch64 << EOF +Notes in section 2: +type: 1,1, namesz: 4,4, descsz: 16,16 +Notes in section 3: +type: 3,3, namesz: 4,4, descsz: 20,20 +EOF + +testfiles testfilearm +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfilearm << EOF +Notes in section 2: +type: 1,1, namesz: 4,4, descsz: 16,16 +Notes in section 3: +type: 3,3, namesz: 4,4, descsz: 20,20 +EOF + +testfiles testfile_gnu_props.32be.o +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfile_gnu_props.32be.o << EOF +Notes in section 4: +type: 5,5, namesz: 4,4, descsz: 12,12 +type: 5,5, namesz: 4,4, descsz: 8,8 +EOF + +testfiles testfile_gnu_props.32le.o +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfile_gnu_props.32le.o << EOF +Notes in section 4: +type: 5,5, namesz: 4,4, descsz: 12,12 +type: 5,5, namesz: 4,4, descsz: 8,8 +EOF + +testfiles testfile_gnu_props.64be.o +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfile_gnu_props.64be.o << EOF +Notes in section 4: +type: 5,5, namesz: 4,4, descsz: 16,16 +type: 5,5, namesz: 4,4, descsz: 8,8 +EOF + +testfiles testfile_gnu_props.64le.o +testrun_compare ${abs_top_builddir}/tests/xlate_notes testfile_gnu_props.64le.o << EOF +Notes in section 4: +type: 5,5, namesz: 4,4, descsz: 16,16 +type: 5,5, namesz: 4,4, descsz: 8,8 +EOF |