summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/libregrtest/tsan.py6
-rw-r--r--Modules/_testinternalcapi.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/Lib/test/libregrtest/tsan.py b/Lib/test/libregrtest/tsan.py
index c5aed43..dd18ae2 100644
--- a/Lib/test/libregrtest/tsan.py
+++ b/Lib/test/libregrtest/tsan.py
@@ -2,6 +2,9 @@
# chosen because they use threads and run in a reasonable amount of time.
TSAN_TESTS = [
+ # TODO: enable more of test_capi once bugs are fixed (GH-116908, GH-116909).
+ 'test_capi.test_mem',
+ 'test_capi.test_pyatomic',
'test_code',
'test_enum',
'test_functools',
@@ -11,6 +14,9 @@ TSAN_TESTS = [
'test_io',
'test_logging',
'test_queue',
+ 'test_signal',
+ 'test_socket',
+ 'test_sqlite3',
'test_ssl',
'test_syslog',
'test_thread',
diff --git a/Modules/_testinternalcapi.c b/Modules/_testinternalcapi.c
index b3076a8..1c10dd0 100644
--- a/Modules/_testinternalcapi.c
+++ b/Modules/_testinternalcapi.c
@@ -1287,8 +1287,8 @@ check_pyobject_forbidden_bytes_is_freed(PyObject *self,
static PyObject *
check_pyobject_freed_is_freed(PyObject *self, PyObject *Py_UNUSED(args))
{
- /* This test would fail if run with the address sanitizer */
-#ifdef _Py_ADDRESS_SANITIZER
+ /* ASan or TSan would report an use-after-free error */
+#if defined(_Py_ADDRESS_SANITIZER) || defined(_Py_THREAD_SANITIZER)
Py_RETURN_NONE;
#else
PyObject *op = PyObject_CallNoArgs((PyObject *)&PyBaseObject_Type);