summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/functionalities
diff options
context:
space:
mode:
authorKuba Brecka <kuba.brecka@gmail.com>2016-04-05 14:13:22 +0000
committerKuba Brecka <kuba.brecka@gmail.com>2016-04-05 14:13:22 +0000
commit3b275db1954730e9e4d896407b26c949df1aa7cb (patch)
tree1ff477a1d681c3d179bb3b4d49c6432a54aaa107 /lldb/packages/Python/lldbsuite/test/functionalities
parent1d3c43b293ecc0452ff8ea229bc8b0229f1c9f5b (diff)
downloadbcm5719-llvm-3b275db1954730e9e4d896407b26c949df1aa7cb.tar.gz
bcm5719-llvm-3b275db1954730e9e4d896407b26c949df1aa7cb.zip
Fixing AddressSanitizer tests (update expectations for current ASan, make it work on OS X 10.10 and older).
llvm-svn: 265400
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/functionalities')
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py20
-rw-r--r--lldb/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py16
2 files changed, 13 insertions, 23 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py b/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
index 9cd5981e5df..e0d74ac3279 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestMemoryHistory.py
@@ -47,11 +47,10 @@ class AsanTestCase(TestBase):
self.runCmd("run")
- # ASan will relaunch the process to insert its library.
- self.expect("thread list", "Process should be stopped due to exec.",
- substrs = ['stopped', 'stop reason = '])
-
- self.runCmd("continue")
+ stop_reason = self.dbg.GetSelectedTarget().process.GetSelectedThread().GetStopReason()
+ if stop_reason == lldb.eStopReasonExec:
+ # On OS X 10.10 and older, we need to re-exec to enable interceptors.
+ self.runCmd("continue")
# the stop reason of the thread should be breakpoint.
self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
@@ -89,15 +88,12 @@ class AsanTestCase(TestBase):
self.assertTrue(history_thread.num_frames >= 2)
self.assertEqual(history_thread.frames[1].GetLineEntry().GetFileSpec().GetFilename(), "main.c")
self.assertEqual(history_thread.frames[1].GetLineEntry().GetLine(), self.line_malloc)
-
- # now let's break when an ASan report occurs and try the API then
- self.runCmd("breakpoint set -n __asan_report_error")
-
+
+ # ASan will break when a report occurs and we'll try the API then
self.runCmd("continue")
- # the stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ['stopped', 'stop reason = breakpoint'])
+ self.expect("thread list", "Process should be stopped due to ASan report",
+ substrs = ['stopped', 'stop reason = Use of deallocated memory detected'])
# make sure the 'memory history' command still works even when we're generating a report now
self.expect("memory history 'another_pointer'",
diff --git a/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py b/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
index 4373f8e0a7f..8e1d5b63180 100644
--- a/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
+++ b/lldb/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
@@ -40,16 +40,10 @@ class AsanTestReportDataCase(TestBase):
self.expect("file " + exe, patterns = [ "Current executable set to .*a.out" ])
self.runCmd("run")
- # ASan will relaunch the process to insert its library.
- self.expect("thread list", "Process should be stopped due to exec.",
- substrs = ['stopped', 'stop reason = '])
-
- # no extended info when we have no ASan report
- thread = self.dbg.GetSelectedTarget().process.GetSelectedThread()
- s = lldb.SBStream()
- self.assertFalse(thread.GetStopReasonExtendedInfoAsJSON(s))
-
- self.runCmd("continue")
+ stop_reason = self.dbg.GetSelectedTarget().process.GetSelectedThread().GetStopReason()
+ if stop_reason == lldb.eStopReasonExec:
+ # On OS X 10.10 and older, we need to re-exec to enable interceptors.
+ self.runCmd("continue")
self.expect("thread list", "Process should be stopped due to ASan report",
substrs = ['stopped', 'stop reason = Use of deallocated memory detected'])
@@ -63,7 +57,7 @@ class AsanTestReportDataCase(TestBase):
substrs = ["access_size", "access_type", "address", "pc", "description", "heap-use-after-free"])
output_lines = self.res.GetOutput().split('\n')
- json_line = output_lines[2]
+ json_line = '\n'.join(output_lines[2:])
data = json.loads(json_line)
self.assertEqual(data["description"], "heap-use-after-free")
self.assertEqual(data["instrumentation_class"], "AddressSanitizer")
OpenPOWER on IntegriCloud