summaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-08-20 18:01:57 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-08-20 18:01:57 +0000
commit88c643b6fec27eec436c8d138fee6346e92337d6 (patch)
tree82cd13b2f3cde1c9e5f79689ba4e6ba67694843f /packages/Python/lldbsuite/test/functionalities/tsan/multiple/TestTsanMultiple.py
parent94994d372d014ce4c8758b9605d63fae651bd8aa (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.py86
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)