From: Michal Nowak Date: Mon, 19 Oct 2020 11:33:32 +0000 (+0200) Subject: Fix system test backtrace generation on OpenBSD X-Git-Tag: v9.16.9~27^2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=659feff9630c6894069815c14a29c6928c24ab0d;p=thirdparty%2Fbind9.git Fix system test backtrace generation on OpenBSD On Linux core dump contains absolute path to crashed binary Core was generated by `/home/newman/isc/ws/bind9/bin/named/.libs/lt-named -D glue-ns1 -X named.lock -m'. However, on OpenBSD there's only a basename Core was generated by `named'. This commit adds support for the latter, retains the former. (cherry picked from commit f0b13873a3efd873c4b070fc2a0fedcbf7a9dc31) --- diff --git a/bin/tests/system/run.sh b/bin/tests/system/run.sh index 0a26d2009da..185bc55a8bf 100755 --- a/bin/tests/system/run.sh +++ b/bin/tests/system/run.sh @@ -272,13 +272,16 @@ if [ -n "$core_dumps" ]; then SYSTESTDIR="$systest" echoinfo "D:$systest:backtrace from $coredump:" echoinfo "D:$systest:--------------------------------------------------------------------------------" - binary=$(gdb --batch --core="$coredump" 2>/dev/null | sed -ne "s/Core was generated by \`//;s/ .*'.$//p;") + binary=$(gdb --batch --core="$coredump" 2>/dev/null | sed -ne "s|Core was generated by \`\([^' ]*\)[' ].*|\1|p") + if [ ! -f "${binary}" ]; then + binary=$(find "${TOP}" -path "*/.libs/${binary}" -type f) + fi "${TOP}/libtool" --mode=execute gdb \ - -batch \ - -ex bt \ - -core="$coredump" \ - -- \ - "$binary" 2>/dev/null | sed -n '/^Core was generated by/,$p' | cat_d + -batch \ + -ex bt \ + -core="$coredump" \ + -- \ + "$binary" 2>/dev/null | sed -n '/^Core was generated by/,$p' | cat_d echoinfo "D:$systest:--------------------------------------------------------------------------------" coredump_backtrace=$(basename "${coredump}")-backtrace.txt echoinfo "D:$systest:full backtrace from $coredump saved in $coredump_backtrace"