[Python-checkins] python/dist/src/Lib/test test_descr.py,1.146,1.147

tim_one@users.sourceforge.net tim_one@users.sourceforge.net
Thu, 11 Jul 2002 11:26:24 -0700


Update of /cvsroot/python/python/dist/src/Lib/test
In directory usw-pr-cvs1:/tmp/cvs-serv945/python/Lib/test

Modified Files:
	test_descr.py 
Log Message:
subtype_resurrection():  The test suite with -l properly reported the
immortal object here as a leak.  Made the object mortal again at the end.


Index: test_descr.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_descr.py,v
retrieving revision 1.146
retrieving revision 1.147
diff -C2 -d -r1.146 -r1.147
*** test_descr.py	11 Jul 2002 07:09:42 -0000	1.146
--- test_descr.py	11 Jul 2002 18:26:21 -0000	1.147
***************
*** 3185,3188 ****
--- 3185,3189 ----
  
  def subtype_resurrection():
+     import gc
      if verbose:
          print "Testing resurrection of new-style instance..."
***************
*** 3197,3205 ****
      c = C()
      c.attr = 42
!     # The only interesting thing here is whether this blows up, due to flawed
      #  GC tracking logic in typeobject.c's call_finalizer() (a 2.2.1 bug).
      del c
!     del C.container[-1]  # resurrect it again for the heck of it
      vereq(C.container[-1].attr, 42)
  
  def do_this_first():
--- 3198,3216 ----
      c = C()
      c.attr = 42
!     # The most interesting thing here is whether this blows up, due to flawed
      #  GC tracking logic in typeobject.c's call_finalizer() (a 2.2.1 bug).
      del c
! 
!     # If that didn't blow up, it's also interesting to see whether clearing
!     # the last container slot works:  that will attempt to delete c again,
!     # which will cause c to get appended back to the container again "during"
!     # the del.
!     del C.container[-1]
!     vereq(len(C.container), 1)
      vereq(C.container[-1].attr, 42)
+ 
+     # Make c mortal again, so that the test framework with -l doesn't report
+     # it as a leak.
+     del C.__del__
  
  def do_this_first():