Author: mgorny Date: Sun Mar 10 01:50:36 2019 New Revision: 355786 URL: http://llvm.org/viewvc/llvm-project?rev=355786&view=rev Log: [lldb] [test] Make 2lwp_process_SIGSEGV test more portable
Fix 2lwp_process_SIGSEGV NetBSD core test to terminate inside regular function rather than libc call, in order to get reproducible backtrace on different platforms. Differential Revision: https://reviews.llvm.org/D59177 Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.amd64 lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.amd64.core lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.c lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/TestNetBSDCore.py Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.amd64 URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.amd64?rev=355786&r1=355785&r2=355786&view=diff ============================================================================== Binary files - no diff available. Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.amd64.core URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.amd64.core?rev=355786&r1=355785&r2=355786&view=diff ============================================================================== Binary files - no diff available. Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.c URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.c?rev=355786&r1=355785&r2=355786&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.c (original) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/2lwp_process_SIGSEGV.c Sun Mar 10 01:50:36 2019 @@ -4,9 +4,12 @@ #include <unistd.h> #include <signal.h> +volatile int sem = 0; + static void bar() { char F = 'b'; - kill(getpid(), SIGSEGV); // Frame bar + sem = 1; + while (1) continue; // Frame bar } static void foo(void (*boomer)()) { @@ -28,5 +31,7 @@ int main(int argc, char **argv) { stack = malloc(ssize); _lwp_makecontext(&uc, lwp_main, NULL, NULL, stack, ssize); _lwp_create(&uc, 0, &lid); + while (sem != 1) continue; + kill(getpid(), SIGSEGV); _lwp_wait(lid, NULL); } Modified: lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/TestNetBSDCore.py URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/TestNetBSDCore.py?rev=355786&r1=355785&r2=355786&view=diff ============================================================================== --- lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/TestNetBSDCore.py (original) +++ lldb/trunk/packages/Python/lldbsuite/test/functionalities/postmortem/netbsd-core/TestNetBSDCore.py Sun Mar 10 01:50:36 2019 @@ -206,11 +206,10 @@ class NetBSD2LWPProcessSigCoreTestCase(N thread = process.GetSelectedThread() self.assertTrue(thread) self.assertEqual(thread.GetThreadID(), 2) - self.assertEqual(thread.GetThreadID(), 2) self.assertEqual(thread.GetStopReason(), lldb.eStopReasonSignal) self.assertEqual(thread.GetStopReasonDataCount(), 1) self.assertEqual(thread.GetStopReasonDataAtIndex(0), signal.SIGSEGV) - backtrace = ["_kill", "bar", "foo", "lwp_main"] + backtrace = ["bar", "foo", "lwp_main"] self.check_backtrace(thread, filename, backtrace) # thread 1 should have the same signal @@ -219,8 +218,7 @@ class NetBSD2LWPProcessSigCoreTestCase(N self.assertEqual(thread.GetStopReasonDataCount(), 1) self.assertEqual(thread.GetStopReasonDataAtIndex(0), signal.SIGSEGV) - @skipIf # TODO: fails with non-netbsd libc @skipIfLLVMTargetMissing("X86") def test_amd64(self): """Test double-threaded amd64 core dump where process is signalled.""" - self.do_test("2lwp_process_SIGSEGV.amd64", pid=141, region_count=24) + self.do_test("2lwp_process_SIGSEGV.amd64", pid=665, region_count=24) _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits