tests: Test addr2line -i with lexical blocks present

This test is for the fix in commit aecdf2670c, but it was hampered by
unlucky sorting of line records.  With the new stable sort, the test now
gets the desired line numbers.

Signed-off-by: Josh Stone <jistone@redhat.com>
This commit is contained in:
Josh Stone
2014-12-11 17:19:23 -08:00
parent 7d9b5ac63f
commit 080fa4e368
4 changed files with 82 additions and 1 deletions
+8
View File
@@ -1,3 +1,11 @@
2014-12-11 Josh Stone <jistone@redhat.com>
* run-addr2line-i-lex-test.sh: New test.
* testfile-lex-inlines.bz2: New testfile.
* Makefile.am (EXTRA_DIST): Add run-addr2line-i-lex-test.sh and
testfile-lex-inlines.bz2.
(TESTS): Add run-addr2line-i-lex-test.sh.
2014-12-10 Josh Stone <jistone@redhat.com>
* run-addr2line-i-test.sh: Test 0x5f0 to make sure linkage_name is
+3 -1
View File
@@ -101,7 +101,8 @@ TESTS = run-arextract.sh run-arsymtest.sh newfile test-nlist \
run-test-archive64.sh run-readelf-vmcoreinfo.sh \
run-readelf-mixed-corenote.sh run-dwfllines.sh \
run-dwfl-report-elf-align.sh run-addr2line-test.sh \
run-addr2line-i-test.sh run-varlocs.sh run-funcretval.sh \
run-addr2line-i-test.sh run-addr2line-i-lex-test.sh \
run-varlocs.sh run-funcretval.sh \
run-backtrace-native.sh run-backtrace-data.sh run-backtrace-dwarf.sh \
run-backtrace-native-biarch.sh run-backtrace-native-core.sh \
run-backtrace-native-core-biarch.sh run-backtrace-core-x86_64.sh \
@@ -243,6 +244,7 @@ EXTRA_DIST = run-arextract.sh run-arsymtest.sh \
testfilenolines.bz2 test-core-lib.so.bz2 test-core.core.bz2 \
test-core.exec.bz2 run-addr2line-test.sh \
run-addr2line-i-test.sh testfile-inlines.bz2 \
run-addr2line-i-lex-test.sh testfile-lex-inlines.bz2 \
testfileppc32.bz2 testfileppc64.bz2 \
testfiles390.bz2 testfiles390x.bz2 \
testfilearm.bz2 testfileaarch64.bz2 \
+71
View File
@@ -0,0 +1,71 @@
#! /bin/sh
# Copyright (C) 2014 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
# // g++ x.cpp -g -fPIC -olibx.so -shared -O3 -fvisibility=hidden
#
# void foobar()
# {
# __asm__ ( "nop" ::: );
# }
#
# void foo()
# {
# {
# void (*bar) () = foobar;
# bar();
# }
# }
testfiles testfile-lex-inlines
testrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-lex-inlines 0x0000000000000680 <<\EOF
/tmp/x.cpp:5
EOF
testrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-lex-inlines 0x0000000000000681 <<\EOF
/tmp/x.cpp:5
EOF
testrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-lex-inlines 0x0000000000000690 <<\EOF
/tmp/x.cpp:5
/tmp/x.cpp:12
EOF
testrun_compare ${abs_top_builddir}/src/addr2line -i -e testfile-lex-inlines 0x0000000000000691 <<\EOF
/tmp/x.cpp:5
/tmp/x.cpp:12
EOF
# All together now (plus function names).
testrun_compare ${abs_top_builddir}/src/addr2line -f -i -e testfile-lex-inlines 0x0000000000000680 0x0000000000000681 0x0000000000000690 0x0000000000000691 <<\EOF
_Z6foobarv
/tmp/x.cpp:5
_Z6foobarv
/tmp/x.cpp:5
foobar inlined at /tmp/x.cpp:12 in _Z3foov
/tmp/x.cpp:5
_Z3foov
/tmp/x.cpp:12
foobar inlined at /tmp/x.cpp:12 in _Z3foov
/tmp/x.cpp:5
_Z3foov
/tmp/x.cpp:12
EOF
exit 0
BIN
View File
Binary file not shown.