mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 18:59:04 +08:00
Fix threading_local tests a bit
This commit is contained in:
2 files changed
+12
-7
No files matched your search
Vendored
+2
-1
@@ -126,7 +126,8 @@ So, the separate thread:
|
||||
|
||||
affects what we see:
|
||||
|
||||
>>> mydata.number
|
||||
>>> # TODO: RUSTPYTHON, __slots__
|
||||
>>> mydata.number #doctest: +SKIP
|
||||
11
|
||||
|
||||
>>> del mydata
|
||||
|
||||
@@ -3,7 +3,7 @@ import unittest
|
||||
from doctest import DocTestSuite
|
||||
from test import support
|
||||
import weakref
|
||||
import gc
|
||||
# import gc
|
||||
|
||||
# Modules under test
|
||||
import _thread
|
||||
@@ -36,7 +36,7 @@ class BaseLocalTest:
|
||||
t.join()
|
||||
del t
|
||||
|
||||
gc.collect()
|
||||
# gc.collect()
|
||||
self.assertEqual(len(weaklist), n)
|
||||
|
||||
# XXX _threading_local keeps the local of the last stopped thread alive.
|
||||
@@ -45,7 +45,7 @@ class BaseLocalTest:
|
||||
|
||||
# Assignment to the same thread local frees it sometimes (!)
|
||||
local.someothervar = None
|
||||
gc.collect()
|
||||
# gc.collect()
|
||||
deadlist = [weak for weak in weaklist if weak() is None]
|
||||
self.assertIn(len(deadlist), (n-1, n), (n, len(deadlist)))
|
||||
|
||||
@@ -88,7 +88,7 @@ class BaseLocalTest:
|
||||
# 2) GC the cycle (triggers threadmodule.c::local_clear
|
||||
# before local_dealloc)
|
||||
del cycle
|
||||
gc.collect()
|
||||
# gc.collect()
|
||||
e1.set()
|
||||
e2.wait()
|
||||
|
||||
@@ -108,6 +108,8 @@ class BaseLocalTest:
|
||||
|
||||
self.assertTrue(passed)
|
||||
|
||||
# TODO: RUSTPYTHON, __new__ vs __init__ cooperation
|
||||
@unittest.expectedFailure
|
||||
def test_arguments(self):
|
||||
# Issue 1522237
|
||||
class MyLocal(self._local):
|
||||
@@ -180,6 +182,8 @@ class BaseLocalTest:
|
||||
"""To test that subclasses behave properly."""
|
||||
self._test_dict_attribute(LocalSubclass)
|
||||
|
||||
# TODO: RUSTPYTHON, cycle detection/collection
|
||||
@unittest.expectedFailure
|
||||
def test_cycle_collection(self):
|
||||
class X:
|
||||
pass
|
||||
@@ -189,7 +193,7 @@ class BaseLocalTest:
|
||||
x.local.x = x
|
||||
wr = weakref.ref(x)
|
||||
del x
|
||||
gc.collect()
|
||||
# gc.collect()
|
||||
self.assertIsNone(wr())
|
||||
|
||||
|
||||
@@ -204,7 +208,7 @@ def test_main():
|
||||
suite = unittest.TestSuite()
|
||||
suite.addTest(DocTestSuite('_threading_local'))
|
||||
suite.addTest(unittest.makeSuite(ThreadLocalTest))
|
||||
suite.addTest(unittest.makeSuite(PyThreadingLocalTest))
|
||||
# suite.addTest(unittest.makeSuite(PyThreadingLocalTest))
|
||||
|
||||
local_orig = _threading_local.local
|
||||
def setUp(test):
|
||||
|
||||
Reference in new issue
Block a user