[pypy-commit] pypy default: test showing a corner case of the interaction between finalizers and heap
cfbolz
pypy.commits at gmail.com
Tue Feb 28 09:00:56 EST 2017
Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch:
Changeset: r90421:846ed5d2ac16
Date: 2017-02-28 15:00 +0100
http://bitbucket.org/pypy/pypy/changeset/846ed5d2ac16/
Log: test showing a corner case of the interaction between finalizers and
heap caching in the JIT
diff --git a/rpython/jit/metainterp/test/test_ajit.py b/rpython/jit/metainterp/test/test_ajit.py
--- a/rpython/jit/metainterp/test/test_ajit.py
+++ b/rpython/jit/metainterp/test/test_ajit.py
@@ -4636,3 +4636,28 @@
return i
self.meta_interp(f, [10])
+
+ @py.test.skip("loops!")
+ def test_finalizer_bug(self):
+ from rpython.rlib import rgc
+ driver = JitDriver(greens=[], reds=[])
+ class Fin(object):
+ @rgc.must_be_light_finalizer
+ def __del__(self):
+ holder[0].field = 7
+ class Un(object):
+ def __init__(self):
+ self.field = 0
+ holder = [Un()]
+
+ def f():
+ while True:
+ driver.jit_merge_point()
+ holder[0].field = 0
+ Fin()
+ if holder[0].field:
+ break
+ return holder[0].field
+
+ f() # finishes
+ self.meta_interp(f, [])
More information about the pypy-commit
mailing list