]> granicus.if.org Git - python/commitdiff
Issue #19527: Fixed tests with defined COUNT_ALLOCS.
authorSerhiy Storchaka <storchaka@gmail.com>
Sun, 3 Jul 2016 19:27:26 +0000 (22:27 +0300)
committerSerhiy Storchaka <storchaka@gmail.com>
Sun, 3 Jul 2016 19:27:26 +0000 (22:27 +0300)
Lib/test/support/__init__.py
Lib/test/test_gc.py
Lib/test/test_io.py
Lib/test/test_logging.py
Lib/test/test_module.py
Lib/test/test_sys.py
Lib/test/test_threading.py
Lib/test/test_traceback.py
Lib/test/test_warnings/__init__.py
Lib/test/test_weakref.py

index c9e36fb159feef26fda0611babde35ef53218e73..867dc2f527ddb8ba9d7ebfc8dd3bc74f812c406c 100644 (file)
@@ -2069,6 +2069,9 @@ def strip_python_stderr(stderr):
     stderr = re.sub(br"\[\d+ refs, \d+ blocks\]\r?\n?", b"", stderr).strip()
     return stderr
 
+requires_type_collecting = unittest.skipIf(hasattr(sys, 'getcounts'),
+                        'types are immortal if COUNT_ALLOCS is defined')
+
 def args_from_interpreter_flags():
     """Return a list of command-line arguments reproducing the current
     settings in sys.flags and sys.warnoptions."""
index 1f0867d379afd82d45c81599500049ad59d246fe..a4d684b40eac605ce368b4d7a35f5cee4cdbcf29 100644 (file)
@@ -1,7 +1,7 @@
 import unittest
 from test.support import (verbose, refcount_test, run_unittest,
-                            strip_python_stderr, cpython_only, start_threads,
-                            temp_dir)
+                          strip_python_stderr, cpython_only, start_threads,
+                          temp_dir, requires_type_collecting)
 from test.support.script_helper import assert_python_ok, make_script
 
 import sys
@@ -118,6 +118,7 @@ class GCTests(unittest.TestCase):
         del a
         self.assertNotEqual(gc.collect(), 0)
 
+    @requires_type_collecting
     def test_newinstance(self):
         class A(object):
             pass
@@ -678,6 +679,7 @@ class GCTests(unittest.TestCase):
         stderr = run_command(code % "gc.DEBUG_SAVEALL")
         self.assertNotIn(b"uncollectable objects at shutdown", stderr)
 
+    @requires_type_collecting
     def test_gc_main_module_at_shutdown(self):
         # Create a reference cycle through the __main__ module and check
         # it gets collected at interpreter shutdown.
@@ -692,6 +694,7 @@ class GCTests(unittest.TestCase):
         rc, out, err = assert_python_ok('-c', code)
         self.assertEqual(out.strip(), b'__del__ called')
 
+    @requires_type_collecting
     def test_gc_ordinary_module_at_shutdown(self):
         # Same as above, but with a non-__main__ module.
         with temp_dir() as script_dir:
index 000b525003be7525b15c2352605a9fbced56b6af..5111882a0258e90a408104344dff5467d4fac7ac 100644 (file)
@@ -3135,6 +3135,7 @@ class TextIOWrapperTest(unittest.TestCase):
             """.format(iomod=iomod, kwargs=kwargs)
         return assert_python_ok("-c", code)
 
+    @support.requires_type_collecting
     def test_create_at_shutdown_without_encoding(self):
         rc, out, err = self._check_create_at_shutdown()
         if err:
@@ -3144,6 +3145,7 @@ class TextIOWrapperTest(unittest.TestCase):
         else:
             self.assertEqual("ok", out.decode().strip())
 
+    @support.requires_type_collecting
     def test_create_at_shutdown_with_encoding(self):
         rc, out, err = self._check_create_at_shutdown(encoding='utf-8',
                                                       errors='strict')
index 84fd8b57c73be0fc40368a75977f72b23b74e9fb..cb6a6282b13a3e173198b0a12252081c77497a04 100644 (file)
@@ -3389,6 +3389,7 @@ class ModuleLevelMiscTest(BaseTest):
         logging.setLoggerClass(logging.Logger)
         self.assertEqual(logging.getLoggerClass(), logging.Logger)
 
+    @support.requires_type_collecting
     def test_logging_at_shutdown(self):
         # Issue #20037
         code = """if 1:
index ea6e89733b2bbe439f8333f72b5a3a4bc75e40fd..6d0d59407ed24005bc1524c79e6ca595f453885a 100644 (file)
@@ -1,7 +1,7 @@
 # Test the module type
 import unittest
 import weakref
-from test.support import gc_collect
+from test.support import gc_collect, requires_type_collecting
 from test.support.script_helper import assert_python_ok
 
 import sys
@@ -101,6 +101,7 @@ class ModuleTests(unittest.TestCase):
         gc_collect()
         self.assertEqual(f().__dict__["bar"], 4)
 
+    @requires_type_collecting
     def test_clear_dict_in_ref_cycle(self):
         destroyed = []
         m = ModuleType("foo")
@@ -214,6 +215,7 @@ a = A(destroyed)"""
         self.assertEqual(r[-len(ends_with):], ends_with,
                          '{!r} does not end with {!r}'.format(r, ends_with))
 
+    @requires_type_collecting
     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")
index a5318795525e70ce7283a23f0661663cc6662dbd..4435d6995b71b55ccfdba8fdc151d6b25bad321a 100644 (file)
@@ -803,6 +803,7 @@ class SysModuleTest(unittest.TestCase):
         c = sys.getallocatedblocks()
         self.assertIn(c, range(b - 50, b + 50))
 
+    @test.support.requires_type_collecting
     def test_is_finalizing(self):
         self.assertIs(sys.is_finalizing(), False)
         # Don't use the atexit module because _Py_Finalizing is only set
@@ -1083,9 +1084,12 @@ class SizeofTest(unittest.TestCase):
         check((1,2,3), vsize('') + 3*self.P)
         # type
         # static type: PyTypeObject
-        s = vsize('P2n15Pl4Pn9Pn11PIP')
+        fmt = 'P2n15Pl4Pn9Pn11PIP'
+        if hasattr(sys, 'getcounts'):
+            fmt += '3n2P'
+        s = vsize(fmt)
         check(int, s)
-        s = vsize('P2n15Pl4Pn9Pn11PIP'  # PyTypeObject
+        s = vsize(fmt +                 # PyTypeObject
                   '3P'                  # PyAsyncMethods
                   '36P'                 # PyNumberMethods
                   '3P'                  # PyMappingMethods
index b49a9615f093d3cd9f191a59a11ae9c64db69c4a..1c9c1ea534e76fd307dc763f60a2342365d3ad89 100644 (file)
@@ -3,7 +3,8 @@ Tests for the threading module.
 """
 
 import test.support
-from test.support import verbose, strip_python_stderr, import_module, cpython_only
+from test.support import (verbose, import_module, cpython_only,
+                          requires_type_collecting)
 from test.support.script_helper import assert_python_ok, assert_python_failure
 
 import random
@@ -987,6 +988,7 @@ class ThreadingExceptionTests(BaseTestCase):
         self.assertIn("ZeroDivisionError", err)
         self.assertNotIn("Unhandled exception", err)
 
+    @requires_type_collecting
     def test_print_exception_stderr_is_none_1(self):
         script = r"""if True:
             import sys
index b7695d6eb4ba8816f2b7232b8bf53ab512210e49..549d8d1e9701837d8d0b66505ba503ec284940d8 100644 (file)
@@ -178,6 +178,7 @@ class SyntaxTracebackCases(unittest.TestCase):
         # Issue #18960: coding spec should has no effect
         do_test("0\n# coding: GBK\n", "h\xe9 ho", 'utf-8', 5)
 
+    @support.requires_type_collecting
     def test_print_traceback_at_exit(self):
         # Issue #22599: Ensure that it is possible to use the traceback module
         # to display an exception at Python exit
index 72fcc73661038c728f03600b6f2de13b6a063aaa..a33404ef85395b3a6b4c528c72e2d688557740dc 100644 (file)
@@ -990,6 +990,7 @@ class BootstrapTest(unittest.TestCase):
 
 
 class FinalizationTest(unittest.TestCase):
+    @support.requires_type_collecting
     def test_finalization(self):
         # Issue #19421: warnings.warn() should not crash
         # during Python finalization
index f49cb7e591fac28522beac32b66c61e12f28c301..6d50a66d7ba2752a9d10644c10a53c712fd195b4 100644 (file)
@@ -589,6 +589,7 @@ class ReferencesTestCase(TestBase):
         del c1, c2, C, D
         gc.collect()
 
+    @support.requires_type_collecting
     def test_callback_in_cycle_resurrection(self):
         import gc