]> granicus.if.org Git - python/commitdiff
Disable gc when running test_trace, or we may record the __del__ of collected objects.
authorAmaury Forgeot d'Arc <amauryfa@gmail.com>
Thu, 24 Apr 2008 20:10:26 +0000 (20:10 +0000)
committerAmaury Forgeot d'Arc <amauryfa@gmail.com>
Thu, 24 Apr 2008 20:10:26 +0000 (20:10 +0000)
See http://mail.python.org/pipermail/python-checkins/2008-April/068633.html
the extra events perfectly match several calls to socket._fileobject.__del__()

Lib/test/test_trace.py

index 6ad38d103ad97980dd9f12ac2c8e3b73db7b2956..b5db9a7a01f5a19dab5744d37910f40c78bc35b7 100644 (file)
@@ -4,6 +4,7 @@ from test import test_support
 import unittest
 import sys
 import difflib
+import gc
 
 # A very basic example.  If this fails, we're in deep trouble.
 def basic():
@@ -244,6 +245,17 @@ class Tracer:
         return self.trace
 
 class TraceTestCase(unittest.TestCase):
+
+    # Disable gc collection when tracing, otherwise the
+    # deallocators may be traced as well.
+    def setUp(self):
+        self.using_gc = gc.isenabled()
+        gc.disable()
+
+    def tearDown(self):
+        if self.using_gc:
+            gc.enable()
+
     def compare_events(self, line_offset, events, expected_events):
         events = [(l - line_offset, e) for (l, e) in events]
         if events != expected_events: