Author: Carl Friedrich Bolz <cfb...@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, []) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit