aboutsummaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py')
-rw-r--r--packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py24
1 files changed, 9 insertions, 15 deletions
diff --git a/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py b/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
index 4ef587895196..b02732ddeddf 100644
--- a/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
+++ b/packages/Python/lldbsuite/test/functionalities/asan/TestReportData.py
@@ -7,20 +7,20 @@ from __future__ import print_function
import os, time
+import json
import lldb
+from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
-import lldbsuite.test.lldbutil as lldbutil
-import json
+from lldbsuite.test import lldbutil
class AsanTestReportDataCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
- @expectedFailureLinux # non-core functionality, need to reenable and fix later (DES 2014.11.07)
+ @expectedFailureAll(oslist=["linux"], bugnumber="non-core functionality, need to reenable and fix later (DES 2014.11.07)")
@skipIfFreeBSD # llvm.org/pr21136 runtimes not yet available by default
@skipIfRemote
@skipUnlessCompilerRt
- @expectedFailureDarwin
def test(self):
self.build ()
self.asan_tests ()
@@ -39,16 +39,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'])
@@ -62,7 +56,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")