diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 18:01:57 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-08-20 18:01:57 +0000 |
commit | 88c643b6fec27eec436c8d138fee6346e92337d6 (patch) | |
tree | 82cd13b2f3cde1c9e5f79689ba4e6ba67694843f /packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py | |
parent | 94994d372d014ce4c8758b9605d63fae651bd8aa (diff) |
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py')
-rw-r--r-- | packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py b/packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py deleted file mode 100644 index 93b06f6502a1..000000000000 --- a/packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py +++ /dev/null @@ -1,86 +0,0 @@ -""" -Test ThreadSanitizer when multiple different issues are found. -""" - -import os -import time -import lldb -from lldbsuite.test.lldbtest import * -from lldbsuite.test.decorators import * -import lldbsuite.test.lldbutil as lldbutil -import json - - -class TsanMultipleTestCase(TestBase): - - mydir = TestBase.compute_mydir(__file__) - - @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 - @skipUnlessThreadSanitizer - def test(self): - self.build() - self.tsan_tests() - - def setUp(self): - # Call super's setUp(). - TestBase.setUp(self) - - def tsan_tests(self): - exe = self.getBuildArtifact("a.out") - self.expect( - "file " + exe, - patterns=["Current executable set to .*a.out"]) - - self.runCmd("env TSAN_OPTIONS=abort_on_error=0") - - self.runCmd("run") - - 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") - - report_count = 0 - while self.dbg.GetSelectedTarget().process.GetSelectedThread( - ).GetStopReason() == lldb.eStopReasonInstrumentation: - report_count += 1 - - stop_description = self.dbg.GetSelectedTarget( - ).process.GetSelectedThread().GetStopDescription(100) - - self.assertTrue( - (stop_description == "Data race detected") or - (stop_description == "Use of deallocated memory detected") or - (stop_description == "Thread leak detected") or - (stop_description == "Use of an uninitialized or destroyed mutex detected") or - (stop_description == "Unlock of an unlocked mutex (or by a wrong thread) detected") - ) - - self.expect( - "thread info -s", - "The extended stop info should contain the TSan provided fields", - substrs=[ - "instrumentation_class", - "description", - "mops"]) - - output_lines = self.res.GetOutput().split('\n') - json_line = '\n'.join(output_lines[2:]) - data = json.loads(json_line) - self.assertEqual(data["instrumentation_class"], "ThreadSanitizer") - - backtraces = self.dbg.GetSelectedTarget().process.GetSelectedThread( - ).GetStopReasonExtendedBacktraces(lldb.eInstrumentationRuntimeTypeThreadSanitizer) - self.assertTrue(backtraces.GetSize() >= 1) - - self.runCmd("continue") - - self.assertEqual( - self.dbg.GetSelectedTarget().process.GetState(), - lldb.eStateExited, - PROCESS_EXITED) |