2013-11-08 12:33:44 +00:00
|
|
|
diff -r e245b0d7209b Lib/test/test_gc.py
|
|
|
|
--- a/Lib/test/test_gc.py Sun Oct 20 02:01:29 2013 -0700
|
|
|
|
+++ b/Lib/test/test_gc.py Fri Nov 08 13:25:29 2013 +0100
|
|
|
|
@@ -127,10 +127,16 @@
|
|
|
|
del a
|
|
|
|
self.assertNotEqual(gc.collect(), 0)
|
|
|
|
del B, C
|
|
|
|
- self.assertNotEqual(gc.collect(), 0)
|
|
|
|
+ if hasattr(sys, 'getcounts'):
|
|
|
|
+ self.assertEqual(gc.collect(), 0)
|
|
|
|
+ else:
|
|
|
|
+ self.assertNotEqual(gc.collect(), 0)
|
|
|
|
A.a = A()
|
|
|
|
del A
|
|
|
|
- self.assertNotEqual(gc.collect(), 0)
|
|
|
|
+ if hasattr(sys, 'getcounts'):
|
|
|
|
+ self.assertEqual(gc.collect(), 0)
|
|
|
|
+ else:
|
|
|
|
+ self.assertNotEqual(gc.collect(), 0)
|
|
|
|
self.assertEqual(gc.collect(), 0)
|
|
|
|
|
|
|
|
def test_method(self):
|
|
|
|
@@ -618,6 +624,8 @@
|
|
|
|
stderr = run_command(code % "gc.DEBUG_SAVEALL")
|
|
|
|
self.assertNotIn(b"uncollectable objects at shutdown", stderr)
|
|
|
|
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
|
|
|
+ 'types are immortal if COUNT_ALLOCS is used')
|
|
|
|
def test_gc_main_module_at_shutdown(self):
|
|
|
|
# Create a reference cycle through the __main__ module and check
|
|
|
|
# it gets collected at interpreter shutdown.
|
|
|
|
@@ -632,6 +640,8 @@
|
|
|
|
rc, out, err = assert_python_ok('-c', code)
|
|
|
|
self.assertEqual(out.strip(), b'__del__ called')
|
|
|
|
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
|
|
|
+ 'types are immortal if COUNT_ALLOCS is used')
|
|
|
|
def test_gc_ordinary_module_at_shutdown(self):
|
|
|
|
# Same as above, but with a non-__main__ module.
|
|
|
|
with temp_dir() as script_dir:
|
|
|
|
diff -r e245b0d7209b Lib/test/test_module.py
|
|
|
|
--- a/Lib/test/test_module.py Sun Oct 20 02:01:29 2013 -0700
|
|
|
|
+++ b/Lib/test/test_module.py Fri Nov 08 13:25:29 2013 +0100
|
|
|
|
@@ -81,6 +81,8 @@
|
|
|
|
gc_collect()
|
|
|
|
self.assertEqual(f().__dict__["bar"], 4)
|
|
|
|
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
|
|
|
+ 'types are immortal if COUNT_ALLOCS is used')
|
|
|
|
def test_clear_dict_in_ref_cycle(self):
|
|
|
|
destroyed = []
|
|
|
|
m = ModuleType("foo")
|
|
|
|
@@ -96,6 +98,8 @@
|
|
|
|
gc_collect()
|
|
|
|
self.assertEqual(destroyed, [1])
|
|
|
|
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
|
|
|
+ 'types are immortal if COUNT_ALLOCS is used')
|
|
|
|
def test_weakref(self):
|
|
|
|
m = ModuleType("foo")
|
|
|
|
wr = weakref.ref(m)
|
|
|
|
@@ -190,6 +194,8 @@
|
2013-11-27 12:03:43 +00:00
|
|
|
self.assertEqual(r[-len(ends_with):], ends_with,
|
|
|
|
'{!r} does not end with {!r}'.format(r, ends_with))
|
2013-11-08 12:33:44 +00:00
|
|
|
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
|
|
|
+ 'skipping since COUNT_ALLOCS was used, see issue19527')
|
|
|
|
def test_module_finalization_at_shutdown(self):
|
|
|
|
# Module globals and builtins should still be available during shutdown
|
|
|
|
rc, out, err = assert_python_ok("-c", "from test import final_a")
|
2014-01-09 14:23:20 +00:00
|
|
|
--- a/Lib/test/test_io.py.orig 2014-01-09 14:43:44.000000000 +0100
|
|
|
|
+++ b/Lib/test/test_io.py 2014-01-09 14:50:30.839597351 +0100
|
|
|
|
@@ -2611,6 +2611,8 @@
|
|
|
|
""".format(iomod=iomod, kwargs=kwargs)
|
|
|
|
return assert_python_ok("-c", code)
|
|
|
|
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getrefcount'),
|
|
|
|
+ 'types are immortal if COUNT_ALLOCS is used')
|
|
|
|
def test_create_at_shutdown_without_encoding(self):
|
|
|
|
rc, out, err = self._check_create_at_shutdown()
|
|
|
|
if err:
|
|
|
|
@@ -2621,6 +2623,8 @@
|
|
|
|
else:
|
|
|
|
self.assertEqual("ok", out.decode().strip())
|
|
|
|
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getrefcount'),
|
|
|
|
+ 'types are immortal if COUNT_ALLOCS is used')
|
|
|
|
def test_create_at_shutdown_with_encoding(self):
|
|
|
|
rc, out, err = self._check_create_at_shutdown(encoding='utf-8',
|
|
|
|
errors='strict')
|
|
|
|
--- a/Lib/test/test_logging.py.orig 2014-01-09 14:53:07.016388198 +0100
|
|
|
|
+++ b/Lib/test/test_logging.py 2014-01-09 14:54:25.654282973 +0100
|
|
|
|
@@ -3398,6 +3398,8 @@
|
|
|
|
logging.setLoggerClass(logging.Logger)
|
|
|
|
self.assertEqual(logging.getLoggerClass(), logging.Logger)
|
|
|
|
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
|
|
|
+ 'types are immortal if COUNT_ALLOCS is used')
|
|
|
|
def test_logging_at_shutdown(self):
|
|
|
|
# Issue #20037
|
|
|
|
code = """if 1:
|
|
|
|
--- a/Lib/test/test_threading.py.orig 2014-01-09 15:09:23.902063074 +0100
|
|
|
|
+++ b/Lib/test/test_threading.py 2014-01-09 15:09:07.622085202 +0100
|
|
|
|
@@ -617,6 +617,8 @@
|
|
|
|
t.join()
|
|
|
|
self.assertRaises(ValueError, bs.release)
|
|
|
|
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
|
|
|
+ 'types are immortal if COUNT_ALLOCS is used')
|
|
|
|
def test_locals_at_exit(self):
|
|
|
|
# Issue #19466: thread locals must not be deleted before destructors
|
|
|
|
# are called
|
|
|
|
--- a/Lib/test/test_warnings.py.orig 2014-01-09 15:10:12.454997100 +0100
|
|
|
|
+++ b/Lib/test/test_warnings.py 2014-01-09 15:11:14.028913478 +0100
|
|
|
|
@@ -801,6 +801,8 @@
|
|
|
|
self.assertEqual(retcode, 0)
|
|
|
|
|
|
|
|
class FinalizationTest(unittest.TestCase):
|
|
|
|
+ @unittest.skipIf(hasattr(sys, 'getcounts'),
|
|
|
|
+ 'types are immortal if COUNT_ALLOCS is used')
|
|
|
|
def test_finalization(self):
|
|
|
|
# Issue #19421: warnings.warn() should not crash
|
|
|
|
# during Python finalization
|