diff options
| author | Stella Stamenova <stilis@microsoft.com> | 2018-07-02 21:50:31 +0000 |
|---|---|---|
| committer | Stella Stamenova <stilis@microsoft.com> | 2018-07-02 21:50:31 +0000 |
| commit | 696ce3770b741ef7f913b5eda73f0b2fda24e75c (patch) | |
| tree | 70a28cafc3e15e384a77dabb990792a20fb7afff /lldb/packages/Python/lldbsuite/test/lang | |
| parent | 2443bbd4aacd73b61cffe8e7a80a8a320b14dcde (diff) | |
| download | bcm5719-llvm-696ce3770b741ef7f913b5eda73f0b2fda24e75c.tar.gz bcm5719-llvm-696ce3770b741ef7f913b5eda73f0b2fda24e75c.zip | |
[lldbsuite, windows] Don't crash LLDB when we try to retrieve a register on Windows
Summary:
1) When ReadRegister is called with a null register into on Windows, rather than crashing due to an access violation, simply return false. Not all registers and properties will be read or calculated correctly, but that is consistent with other platforms that also return false in that case
2) Update a couple of tests to reference pr37995 as their reason for failure since it is much more accurate. Support for floating point registers doesn't exist on Windows at all, rather than having issues.
Reviewers: asmith, labath, zturner
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D48844
llvm-svn: 336147
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/lang')
| -rw-r--r-- | lldb/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/TestTrivialABI.py | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/TestTrivialABI.py b/lldb/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/TestTrivialABI.py index 34ab00e1dc8..2aae7dc89d3 100644 --- a/lldb/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/TestTrivialABI.py +++ b/lldb/packages/Python/lldbsuite/test/lang/cpp/trivial_abi/TestTrivialABI.py @@ -9,25 +9,26 @@ import os import time import re import lldb -import lldbsuite.test.lldbutil as lldbutil +from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * -from lldbsuite.test import decorators +from lldbsuite.test import lldbutil + class TestTrivialABI(TestBase): mydir = TestBase.compute_mydir(__file__) - NO_DEBUG_INFO_TESTCASE = True - @decorators.skipUnlessSupportedTypeAttribute("trivial_abi") + @skipUnlessSupportedTypeAttribute("trivial_abi") + @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr37995") def test_call_trivial(self): """Test that we can print a variable & call a function with a trivial ABI class.""" self.build() self.main_source_file = lldb.SBFileSpec("main.cpp") self.expr_test(True) - @decorators.skipUnlessSupportedTypeAttribute("trivial_abi") - @decorators.expectedFailureAll(bugnumber="llvm.org/pr36870") + @skipUnlessSupportedTypeAttribute("trivial_abi") + @expectedFailureAll(bugnumber="llvm.org/pr36870") def test_call_nontrivial(self): """Test that we can print a variable & call a function on the same class w/o the trivial ABI marker.""" self.build() @@ -43,7 +44,7 @@ class TestTrivialABI(TestBase): ivar = test_var.GetChildMemberWithName("ivar") self.assertTrue(test_var.GetError().Success(), "Failed to fetch ivar") self.assertEqual(ivar_value, ivar.GetValueAsSigned(), "Got the right value for ivar") - + def check_frame(self, thread): frame = thread.frames[0] inVal_var = frame.FindVariable("inVal") @@ -56,7 +57,7 @@ class TestTrivialABI(TestBase): thread.StepOut() outVal_ret = thread.GetStopReturnValue() self.check_value(outVal_ret, 30) - + def expr_test(self, trivial): (target, process, thread, bkpt) = lldbutil.run_to_source_breakpoint(self, "Set a breakpoint here", self.main_source_file) @@ -71,5 +72,3 @@ class TestTrivialABI(TestBase): self.assertEqual(len(threads), 1, "Hit my breakpoint the second time.") self.check_frame(threads[0]) - - |

