diff options
author | Martin Milata <mmilata@redhat.com> | 2012-05-17 17:00:59 +0200 |
---|---|---|
committer | Martin Milata <mmilata@redhat.com> | 2012-05-31 11:00:40 +0200 |
commit | 0f9a540c8c67ec4bb2e03130feea00a0cc9bf30c (patch) | |
tree | cf55e22b846eaf58bb902535758224cbd1dac112 /tests/run-coredump-unwind | |
parent | 61a173763ea4fdc46b34785fc343a483bf3f4c9e (diff) | |
download | libunwind-0f9a540c8c67ec4bb2e03130feea00a0cc9bf30c.tar.gz |
coredump: add test
Program test-coredump-unwind was modified to map backing files based on
virtual addresses instead of segment numbers.
The crasher.c is a program that essentially calls some functions and
then writes to invalid address causing a crash. Before that, it detects
which executables are mapped to which virtual addresses and writes this
information to a file suitable for consumption by test-coredump-unwind.
The mapping information is obtained form /proc/self/maps, so currently
it only works on linux.
The test itself is a shell script, which first runs the program and then
runs test-coredump-unwind on the resulting core and address space
map file to check whether the stack trace obtained from the dump roughly
corresponds to what it should look like.
Signed-off-by: Martin Milata <mmilata@redhat.com>
Diffstat (limited to 'tests/run-coredump-unwind')
-rwxr-xr-x | tests/run-coredump-unwind | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/run-coredump-unwind b/tests/run-coredump-unwind new file mode 100755 index 00000000..18060c51 --- /dev/null +++ b/tests/run-coredump-unwind @@ -0,0 +1,20 @@ +#!/bin/sh + +TESTDIR=`pwd` +TEMPDIR=`mktemp -d` + +# create core dump +( + cd $TEMPDIR + ulimit -c 10000 + $TESTDIR/crasher $TEMPDIR/backing_files +) 2>/dev/null +COREFILE=$TEMPDIR/core* + +# fail if any command fails +set -e + +# magic option -testcase enables checking for the specific contents of the stack +./test-coredump-unwind $COREFILE -testcase `cat $TEMPDIR/backing_files` + +rm -r -- $TEMPDIR |