]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
dwarflint: A test case for the early bailout and the GNU extension
authorPetr Machata <pmachata@redhat.com>
Mon, 18 Oct 2010 17:57:11 +0000 (19:57 +0200)
committerPetr Machata <pmachata@redhat.com>
Mon, 18 Oct 2010 17:57:11 +0000 (19:57 +0200)
dwarflint/Makefile.am
dwarflint/tests/libdl-2.12.so.debug.bz2 [new file with mode: 0644]
dwarflint/tests/run-libdl-2.12.so.debug.sh [new file with mode: 0755]

index cb0e84a85e4f4c87f8eb9c871097655531bb1f0d..b8ad6b02b7d4ba4f21b61a72bb7ecc1303f3d9e9 100644 (file)
@@ -95,7 +95,8 @@ EXTRA_TESTS = tests/run-debug_abbrev-duplicate-attribute.sh \
        tests/run-nodebug.sh \
        tests/run-check_range_out_of_scope.sh \
        tests/run-check_debug_info_refs.sh \
-       tests/run-aranges_terminate_early.sh
+       tests/run-aranges_terminate_early.sh \
+       tests/run-libdl-2.12.so.debug.sh
 
 TESTS = $(EXTRA_TESTS) \
        test-coverage
@@ -108,6 +109,7 @@ EXTRA_DIST = $(EXTRA_TESTS) \
        tests/check_range_out_of_scope-1.bz2 \
        tests/check_debug_info_refs-1.bz2 \
        tests/aranges_terminate_early.bz2
+       tests/libdl-2.12.so.debug.bz2
 
 installed_TESTS_ENVIRONMENT = libdir=$(DESTDIR)$(libdir) \
                              bindir=$(DESTDIR)$(bindir) \
diff --git a/dwarflint/tests/libdl-2.12.so.debug.bz2 b/dwarflint/tests/libdl-2.12.so.debug.bz2
new file mode 100644 (file)
index 0000000..356520e
Binary files /dev/null and b/dwarflint/tests/libdl-2.12.so.debug.bz2 differ
diff --git a/dwarflint/tests/run-libdl-2.12.so.debug.sh b/dwarflint/tests/run-libdl-2.12.so.debug.sh
new file mode 100755 (executable)
index 0000000..0383888
--- /dev/null
@@ -0,0 +1,46 @@
+#! /bin/sh
+# Copyright (C) 2010 Red Hat, Inc.
+# This file is part of Red Hat elfutils.
+#
+# Red Hat elfutils 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; version 2 of the License.
+#
+# Red Hat 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 Red Hat elfutils; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA.
+#
+# Red Hat elfutils is an included package of the Open Invention Network.
+# An included package of the Open Invention Network is a package for which
+# Open Invention Network licensees cross-license their patents.  No patent
+# license is granted, either expressly or impliedly, by designation as an
+# included package.  Should you wish to participate in the Open Invention
+# Network licensing program, please visit www.openinventionnetwork.com
+# <http://www.openinventionnetwork.com>.
+
+. $srcdir/../tests/test-subr.sh
+
+srcdir=$srcdir/tests
+
+testfiles libdl-2.12.so.debug
+
+# Here we test that the user gets all the citations in .debug_abbrev,
+# and that dwarflint doesn't bail out on first failure.
+testrun_compare ./dwarflint --check=@low --nognu libdl-2.12.so.debug <<EOF
+error: .debug_abbrev: abbr. attribute 0xbe: invalid or unknown name 0x2107.
+error: .debug_abbrev: abbr. attribute 0x330: invalid or unknown name 0x2107.
+error: .debug_abbrev: abbr. attribute 0xa28: invalid or unknown name 0x2107.
+error: .debug_abbrev: abbr. attribute 0x108e: invalid or unknown name 0x2107.
+error: .debug_abbrev: abbr. attribute 0x1300: invalid or unknown name 0x2107.
+EOF
+
+# Here we test proper support for DW_AT_GNU_vector
+testrun_compare ./dwarflint --check=@low libdl-2.12.so.debug <<EOF
+error: .debug_line: table 4508: sequence of opcodes not terminated with DW_LNE_end_sequence.
+error: .debug_line: table 4606: sequence of opcodes not terminated with DW_LNE_end_sequence.
+EOF