Author: Ronan Lamy <ronan.l...@gmail.com> Branch: assert-rewrite Changeset: r92951:7318052f560c Date: 2017-11-05 20:49 +0000 http://bitbucket.org/pypy/pypy/changeset/7318052f560c/
Log: more assert fixes 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 @@ -3,6 +3,7 @@ import py import weakref +from rpython.rlib.objectmodel import assert_ from rpython.rlib import rgc from rpython.jit.codewriter.policy import StopAtXPolicy from rpython.jit.metainterp import history @@ -121,7 +122,7 @@ res += ovfcheck(x * x) y -= 1 except OverflowError: - assert 0 + assert_(0) return res res = self.meta_interp(f, [6, 7]) assert res == 1323 @@ -157,7 +158,7 @@ try: res += ovfcheck(x * x) + b except OverflowError: - assert 0 + assert_(0) y -= 1 return res res = self.meta_interp(f, [6, 7]) @@ -793,7 +794,7 @@ return llop.int_between(lltype.Bool, arg1, arg2, arg3) """ % locals()).compile() in loc res = self.interp_operations(loc['f'], [5, 6, 7]) - assert res == expect_result + assert_(res == expect_result) self.check_operations_history(expect_operations) # check('n', 'm', 'p', True, int_sub=2, uint_lt=1) @@ -997,7 +998,7 @@ while i < 10: myjitdriver.can_enter_jit(i=i, t=t) myjitdriver.jit_merge_point(i=i, t=t) - assert i > 0 + assert_(i > 0) t += int_c_div(100, i) - int_c_mod(100, i) i += 1 return t @@ -1220,7 +1221,7 @@ # to the backend at all: ZeroDivisionError # def f(n): - assert n >= 0 + assert_(n >= 0) try: return ovfcheck(5 % n) except ZeroDivisionError: @@ -1231,7 +1232,7 @@ assert res == -666 # def f(n): - assert n >= 0 + assert_(n >= 0) try: return ovfcheck(6 // n) except ZeroDivisionError: @@ -1350,7 +1351,7 @@ else: obj = A() obj.a = 17 - assert isinstance(obj, B) + assert_(isinstance(obj, B)) return obj.a res = self.interp_operations(fn, [1]) assert res == 1 @@ -1922,8 +1923,8 @@ a2 = f(A(x), y) b1 = f(B(x), y) b2 = f(B(x), y) - assert a1.val == a2.val - assert b1.val == b2.val + assert_(a1.val == a2.val) + assert_(b1.val == b2.val) return a1.val + b1.val res = self.meta_interp(g, [6, 7]) assert res == 6*8 + 6**8 @@ -1966,8 +1967,8 @@ a2 = f(A(x), y) b1 = f(B(x), y) b2 = f(B(x), y) - assert a1.val == a2.val - assert b1.val == b2.val + assert_(a1.val == a2.val) + assert_(b1.val == b2.val) return a1.val + b1.val res = self.meta_interp(g, [6, 20]) assert res == g(6, 20) @@ -2001,16 +2002,16 @@ def g(x, y): a1 = f(A(x), y, A(x)) a2 = f(A(x), y, A(x)) - assert a1.val == a2.val + assert_(a1.val == a2.val) b1 = f(B(x), y, B(x)) b2 = f(B(x), y, B(x)) - assert b1.val == b2.val + assert_(b1.val == b2.val) c1 = f(B(x), y, A(x)) c2 = f(B(x), y, A(x)) - assert c1.val == c2.val + assert_(c1.val == c2.val) d1 = f(A(x), y, B(x)) d2 = f(A(x), y, B(x)) - assert d1.val == d2.val + assert_(d1.val == d2.val) return a1.val + b1.val + c1.val + d1.val res = self.meta_interp(g, [3, 14]) assert res == g(3, 14) @@ -2041,7 +2042,7 @@ def g(x, y): c1 = f(A(x), y, B(x)) c2 = f(A(x), y, B(x)) - assert c1.val == c2.val + assert_(c1.val == c2.val) return c1.val res = self.meta_interp(g, [3, 16]) assert res == g(3, 16) @@ -2068,7 +2069,7 @@ def g(x, y): a1 = f(A(x), y, A(x)) a2 = f(A(x), y, A(x)) - assert a1.val == a2.val + assert_(a1.val == a2.val) return a1.val res = self.meta_interp(g, [3, 14]) assert res == g(3, 14) @@ -2093,7 +2094,7 @@ def g(x, y): a1 = f(A(x), y) a2 = f(A(x), y) - assert a1.val == a2.val + assert_(a1.val == a2.val) return a1.val res = self.meta_interp(g, [6, 14]) assert res == g(6, 14) @@ -2120,7 +2121,7 @@ def g(x, y): a1 = f(A(x), y) a2 = f(A(x), y) - assert a1.val == a2.val + assert_(a1.val == a2.val) return a1.val res = self.meta_interp(g, [6, 14]) assert res == g(6, 14) @@ -2156,8 +2157,8 @@ a2 = f(A(x), y) b1 = f(B(x), y) b2 = f(B(x), y) - assert a1.val == a2.val - assert b1.val == b2.val + assert_(a1.val == a2.val) + assert_(b1.val == b2.val) return a1.val + b1.val res = self.meta_interp(g, [3, 23]) assert res == 7068153 @@ -2730,7 +2731,7 @@ try: sa += ovfcheck(i + i) except OverflowError: - assert 0 + assert_(0) node1 = A(i) i += 1 assert self.meta_interp(f, [20, 7]) == f(20, 7) @@ -2762,7 +2763,7 @@ sa += 1 else: sa += 2 - assert -100 < i < 100 + assert_(-100 < i < 100) i += 1 return sa assert self.meta_interp(f, [20]) == f(20) @@ -2783,7 +2784,7 @@ sa += 1 else: sa += 2 - assert -100 <= node.val <= 100 + assert_(-100 <= node.val <= 100) i += 1 return sa assert self.meta_interp(f, [20]) == f(20) @@ -3863,13 +3864,13 @@ def f(x): a = make(x) if x > 0: - assert isinstance(a, A) + assert_(isinstance(a, A)) z = a.f() elif x < 0: - assert isinstance(a, B) + assert_(isinstance(a, B)) z = a.f() else: - assert isinstance(a, C) + assert_(isinstance(a, C)) z = a.f() return z + a.g() res1 = f(6) @@ -4285,7 +4286,7 @@ return x > x or x > x if cmp == 'ge': return x >= x and x >= x - assert 0 + assert_(0) return f def make_str(cmp): @@ -4295,7 +4296,7 @@ return x is x or x is x if cmp == 'ne': return x is not x and x is not x - assert 0 + assert_(0) return f def make_object(cmp): @@ -4307,7 +4308,7 @@ return x is x if cmp == 'ne': return x is not x - assert 0 + assert_(0) return f for cmp in 'eq ne lt le gt ge'.split(): diff --git a/rpython/jit/metainterp/test/test_bytearray.py b/rpython/jit/metainterp/test/test_bytearray.py --- a/rpython/jit/metainterp/test/test_bytearray.py +++ b/rpython/jit/metainterp/test/test_bytearray.py @@ -1,13 +1,14 @@ import py +from rpython.rlib.objectmodel import assert_ from rpython.jit.metainterp.test.support import LLJitMixin -from rpython.rlib.jit import JitDriver, dont_look_inside +from rpython.rlib.jit import dont_look_inside class TestByteArray(LLJitMixin): def test_getitem(self): x = bytearray("foobar") def fn(n): - assert n >= 0 + assert_(n >= 0) return x[n] res = self.interp_operations(fn, [3]) assert res == ord('b') @@ -31,7 +32,7 @@ def make_me(): return bytearray("foobar") def fn(n): - assert n >= 0 + assert_(n >= 0) x = make_me() x[n] = 3 return x[3] + 1000 * x[4] diff --git a/rpython/jit/metainterp/test/test_call.py b/rpython/jit/metainterp/test/test_call.py --- a/rpython/jit/metainterp/test/test_call.py +++ b/rpython/jit/metainterp/test/test_call.py @@ -1,4 +1,4 @@ - +from rpython.rlib.objectmodel import assert_ from rpython.jit.metainterp.test.support import LLJitMixin, noConst from rpython.rlib import jit @@ -146,8 +146,8 @@ while n > 0: myjitdriver.can_enter_jit(n=n, p=p, m=m) myjitdriver.jit_merge_point(n=n, p=p, m=m) - assert p > -1 - assert p < 1 + assert_(p > -1) + assert_(p < 1) n -= jit.conditional_call_elidable(p, externfn, n) return n res = self.meta_interp(f, [21, 5, 0]) @@ -165,8 +165,8 @@ while n > 0: myjitdriver.can_enter_jit(n=n, p=p, m=m) myjitdriver.jit_merge_point(n=n, p=p, m=m) - assert p > -1 - assert p < 1 + assert_(p > -1) + assert_(p < 1) n0 = n n -= jit.conditional_call_elidable(p, externfn, n0) n -= jit.conditional_call_elidable(p, externfn, n0) diff --git a/rpython/jit/metainterp/test/test_del.py b/rpython/jit/metainterp/test/test_del.py --- a/rpython/jit/metainterp/test/test_del.py +++ b/rpython/jit/metainterp/test/test_del.py @@ -1,6 +1,6 @@ import py from rpython.rlib.jit import JitDriver, dont_look_inside -from rpython.rlib.objectmodel import keepalive_until_here +from rpython.rlib.objectmodel import keepalive_until_here, assert_ from rpython.rlib import rgc from rpython.jit.metainterp.test.support import LLJitMixin @@ -30,7 +30,7 @@ 'jump': 1}) def test_class_of_allocated(self): - myjitdriver = JitDriver(greens = [], reds = ['n', 'x']) + myjitdriver = JitDriver(greens=[], reds=['n', 'x']) class Foo: def __del__(self): pass @@ -49,16 +49,15 @@ myjitdriver.jit_merge_point(x=x, n=n) x = X() y = Y() - assert x.f() == 456 - assert y.f() == 123 + assert_(x.f() == 456) + assert_(y.f() == 123) n -= 1 return 42 res = self.meta_interp(f, [20]) assert res == 42 def test_instantiate_with_or_without_del(self): - import gc - mydriver = JitDriver(reds = ['n', 'x'], greens = []) + mydriver = JitDriver(reds=['n', 'x'], greens=[]) class Base: pass class A(Base): foo = 72 class B(Base): diff --git a/rpython/jit/metainterp/test/test_dict.py b/rpython/jit/metainterp/test/test_dict.py --- a/rpython/jit/metainterp/test/test_dict.py +++ b/rpython/jit/metainterp/test/test_dict.py @@ -1,8 +1,8 @@ +from collections import OrderedDict import py +from rpython.rlib.objectmodel import assert_, r_dict, compute_hash from rpython.jit.metainterp.test.support import LLJitMixin from rpython.rlib.jit import JitDriver -from rpython.rlib import objectmodel -from collections import OrderedDict class DictTests: @staticmethod @@ -104,7 +104,7 @@ return (x & 1) == (y & 1) def f(n): - dct = objectmodel.r_dict(eq, key) + dct = r_dict(eq, key) total = n while total: myjitdriver.jit_merge_point(total=total, dct=dct) @@ -145,7 +145,7 @@ return (x & 1) == (y & 1) def f(n): - dct = objectmodel.r_dict(eq, key) + dct = r_dict(eq, key) total = n while total: myjitdriver.jit_merge_point(total=total, dct=dct) @@ -169,13 +169,13 @@ def eq_func(a, b): return a.value == b.value def hash_func(x): - return objectmodel.compute_hash(x.value) + return compute_hash(x.value) def f(n): d = None while n > 0: myjitdriver.jit_merge_point(n=n, d=d) - d = objectmodel.r_dict(eq_func, hash_func) + d = r_dict(eq_func, hash_func) y = Wrapper(str(n)) d[y] = n - 1 n = d[y] @@ -331,7 +331,7 @@ return (x % 2) == (y % 2) def f(n): - dct = objectmodel.r_dict(eq, key) + dct = r_dict(eq, key) total = n x = 44444 y = 55555 @@ -398,7 +398,7 @@ d[2] = 6 d[1] = 4 lst = d.items() - assert len(lst) == 4 + assert_(len(lst) == 4) return ( lst[0][0] + 10*lst[0][1] + 100*lst[1][0] + 1000*lst[1][1] + 10000*lst[3][0] + 100000*lst[2][1] + diff --git a/rpython/jit/metainterp/test/test_exception.py b/rpython/jit/metainterp/test/test_exception.py --- a/rpython/jit/metainterp/test/test_exception.py +++ b/rpython/jit/metainterp/test/test_exception.py @@ -2,7 +2,7 @@ from rpython.jit.metainterp.test.support import LLJitMixin from rpython.rlib.jit import JitDriver, dont_look_inside from rpython.rlib.rarithmetic import ovfcheck, LONG_BIT, intmask -from rpython.rlib.objectmodel import keepalive_until_here +from rpython.rlib.objectmodel import keepalive_until_here, assert_ from rpython.jit.codewriter.policy import StopAtXPolicy from rpython.rtyper.lltypesystem import lltype, rffi @@ -633,11 +633,11 @@ try: rescall(i) except KeyError: - assert i < 10 + assert_(i < 10) except ValueError: - assert i >= 20 + assert_(i >= 20) else: - assert 10 <= i < 20 + assert_(10 <= i < 20) i += 1 return i res = self.meta_interp(f, [0], inline=True) diff --git a/rpython/jit/metainterp/test/test_fficall.py b/rpython/jit/metainterp/test/test_fficall.py --- a/rpython/jit/metainterp/test/test_fficall.py +++ b/rpython/jit/metainterp/test/test_fficall.py @@ -6,6 +6,7 @@ from rpython.rtyper.annlowlevel import llhelper from rpython.jit.metainterp.test.support import LLJitMixin from rpython.jit.codewriter.longlong import is_longlong, is_64_bit +from rpython.rlib.objectmodel import assert_ from rpython.rlib import jit from rpython.rlib import jit_libffi from rpython.rlib.jit_libffi import (types, CIF_DESCRIPTION, FFI_TYPE_PP, @@ -31,11 +32,11 @@ Context manager to monkey patch jit_libffi with our custom "libffi-like" function """ - + def __init__(self, fake_call_impl_any): self.fake_call_impl_any = fake_call_impl_any self.monkey = monkeypatch() - + def __enter__(self, *args): self.monkey.setattr(jit_libffi, 'jit_ffi_call_impl_any', self.fake_call_impl_any) @@ -61,7 +62,7 @@ if (lltype.typeOf(exp_a) == rffi.ULONG and lltype.typeOf(a) == lltype.Signed): a = rffi.cast(rffi.ULONG, a) - assert a == exp_a + assert_(a == exp_a) return rvalue FUNC = lltype.FuncType([lltype.typeOf(avalue) for avalue in avalues], lltype.typeOf(rvalue)) @@ -88,7 +89,7 @@ lltype.typeOf(avalue) is rffi.UCHAR): got = intmask(got) avalue = intmask(avalue) - assert got == avalue + assert_(got == avalue) ofs += 16 write_to_ofs = 0 if rvalue is not None: @@ -312,7 +313,7 @@ # call_release_gil was simply lost and when guard_not_forced # failed, and the value of "res" was unpredictable. # See commit b84ff38f34bd and subsequents. - assert res == n*2 + assert_(res == n*2) jit.virtual_ref_finish(vref, xy) exctx.topframeref = jit.vref_None n += 1 @@ -322,7 +323,7 @@ assert f() == 100 res = self.meta_interp(f, []) assert res == 100 - + class TestFfiCall(FfiCallTests, LLJitMixin): def test_jit_ffi_vref(self): @@ -349,7 +350,7 @@ # jit_ffi_prep_cif(cd) # - assert rffi.sizeof(rffi.DOUBLE) == 8 + assert_(rffi.sizeof(rffi.DOUBLE) == 8) exb = lltype.malloc(rffi.DOUBLEP.TO, 8, flavor='raw') exb[2] = 1.23 jit_ffi_call(cd, math_sin, rffi.cast(rffi.CCHARP, exb)) diff --git a/rpython/jit/metainterp/test/test_jitiface.py b/rpython/jit/metainterp/test/test_jitiface.py --- a/rpython/jit/metainterp/test/test_jitiface.py +++ b/rpython/jit/metainterp/test/test_jitiface.py @@ -1,19 +1,18 @@ -import py -from rpython.rlib.jit import JitDriver, JitHookInterface, Counters, dont_look_inside +from rpython.rlib.objectmodel import assert_ +from rpython.rlib.jit import ( + JitDriver, JitHookInterface, Counters, dont_look_inside) from rpython.rlib import jit_hooks from rpython.jit.metainterp.test.support import LLJitMixin from rpython.jit.codewriter.policy import JitPolicy -from rpython.jit.metainterp.resoperation import rop -from rpython.rtyper.annlowlevel import hlstr, cast_instance_to_gcref +from rpython.rtyper.annlowlevel import cast_instance_to_gcref from rpython.jit.metainterp.jitprof import Profiler, EmptyProfiler -from rpython.jit.codewriter.policy import JitPolicy class JitHookInterfaceTests(object): # !!!note!!! - don't subclass this from the backend. Subclass the LL # class later instead - + def test_abort_quasi_immut(self): reasons = [] @@ -71,7 +70,7 @@ iface = MyJitIface() - driver = JitDriver(greens = ['n', 'm'], reds = ['i']) + driver = JitDriver(greens=['n', 'm'], reds=['i']) def loop(n, m): i = 0 @@ -94,7 +93,7 @@ def test_on_compile_bridge(self): called = [] - + class MyJitIface(JitHookInterface): def after_compile(self, di): called.append("compile") @@ -104,8 +103,8 @@ def before_compile_bridge(self, di): called.append("before_compile_bridge") - - driver = JitDriver(greens = ['n', 'm'], reds = ['i']) + + driver = JitDriver(greens=['n', 'm'], reds=['i']) def loop(n, m): i = 0 @@ -120,7 +119,7 @@ assert called == ["compile", "before_compile_bridge", "compile_bridge"] def test_get_stats(self): - driver = JitDriver(greens = [], reds = ['i', 's']) + driver = JitDriver(greens=[], reds=['i', 's']) def loop(i): s = 0 @@ -134,31 +133,33 @@ def main(): loop(30) - assert jit_hooks.stats_get_counter_value(None, - Counters.TOTAL_COMPILED_LOOPS) == 1 - assert jit_hooks.stats_get_counter_value(None, - Counters.TOTAL_COMPILED_BRIDGES) == 1 - assert jit_hooks.stats_get_counter_value(None, - Counters.TRACING) == 2 - assert jit_hooks.stats_get_times_value(None, Counters.TRACING) >= 0 + assert_(jit_hooks.stats_get_counter_value( + None, Counters.TOTAL_COMPILED_LOOPS) == 1) + assert_(jit_hooks.stats_get_counter_value( + None, Counters.TOTAL_COMPILED_BRIDGES) == 1) + assert_(jit_hooks.stats_get_counter_value( + None, Counters.TRACING) == 2) + assert_(jit_hooks.stats_get_times_value( + None, Counters.TRACING) >= 0) self.meta_interp(main, [], ProfilerClass=Profiler) def test_get_stats_empty(self): - driver = JitDriver(greens = [], reds = ['i']) + driver = JitDriver(greens=[], reds=['i']) def loop(i): while i > 0: driver.jit_merge_point(i=i) i -= 1 def main(): loop(30) - assert jit_hooks.stats_get_counter_value(None, - Counters.TOTAL_COMPILED_LOOPS) == 0 - assert jit_hooks.stats_get_times_value(None, Counters.TRACING) == 0 + assert_(jit_hooks.stats_get_counter_value( + None, Counters.TOTAL_COMPILED_LOOPS) == 0) + assert_(jit_hooks.stats_get_times_value( + None, Counters.TRACING) == 0) self.meta_interp(main, [], ProfilerClass=EmptyProfiler) def test_get_jitcell_at_key(self): - driver = JitDriver(greens = ['s'], reds = ['i'], name='jit') + driver = JitDriver(greens=['s'], reds=['i'], name='jit') def loop(i, s): while i > s: @@ -167,17 +168,17 @@ def main(s): loop(30, s) - assert jit_hooks.get_jitcell_at_key("jit", s) - assert not jit_hooks.get_jitcell_at_key("jit", s + 1) + assert_(jit_hooks.get_jitcell_at_key("jit", s)) + assert_(not jit_hooks.get_jitcell_at_key("jit", s + 1)) jit_hooks.trace_next_iteration("jit", s + 1) loop(s + 3, s + 1) - assert jit_hooks.get_jitcell_at_key("jit", s + 1) + assert_(jit_hooks.get_jitcell_at_key("jit", s + 1)) self.meta_interp(main, [5]) self.check_jitcell_token_count(2) def test_get_jitcell_at_key_ptr(self): - driver = JitDriver(greens = ['s'], reds = ['i'], name='jit') + driver = JitDriver(greens=['s'], reds=['i'], name='jit') class Green(object): pass @@ -193,17 +194,17 @@ g1_ptr = cast_instance_to_gcref(g1) g2_ptr = cast_instance_to_gcref(g2) loop(10, g1) - assert jit_hooks.get_jitcell_at_key("jit", g1_ptr) - assert not jit_hooks.get_jitcell_at_key("jit", g2_ptr) + assert_(jit_hooks.get_jitcell_at_key("jit", g1_ptr)) + assert_(not jit_hooks.get_jitcell_at_key("jit", g2_ptr)) jit_hooks.trace_next_iteration("jit", g2_ptr) loop(2, g2) - assert jit_hooks.get_jitcell_at_key("jit", g2_ptr) + assert_(jit_hooks.get_jitcell_at_key("jit", g2_ptr)) self.meta_interp(main, [5]) self.check_jitcell_token_count(2) def test_dont_trace_here(self): - driver = JitDriver(greens = ['s'], reds = ['i', 'k'], name='jit') + driver = JitDriver(greens=['s'], reds=['i', 'k'], name='jit') def loop(i, s): k = 4 @@ -228,10 +229,10 @@ self.check_resops(call_assembler_n=8) def test_trace_next_iteration_hash(self): - driver = JitDriver(greens = ['s'], reds = ['i'], name="name") + driver = JitDriver(greens=['s'], reds=['i'], name="name") class Hashes(object): check = False - + def __init__(self): self.l = [] self.t = [] @@ -281,9 +282,9 @@ class LLJitHookInterfaceTests(JitHookInterfaceTests): # use this for any backend, instead of the super class - + def test_ll_get_stats(self): - driver = JitDriver(greens = [], reds = ['i', 's']) + driver = JitDriver(greens=[], reds=['i', 's']) def loop(i): s = 0 @@ -292,7 +293,7 @@ if i % 2: s += 1 i -= 1 - s+= 2 + s += 2 return s def main(b): @@ -300,27 +301,27 @@ loop(30) l = jit_hooks.stats_get_loop_run_times(None) if b: - assert len(l) == 4 + assert_(len(l) == 4) # completely specific test that would fail each time # we change anything major. for now it's 4 # (loop, bridge, 2 entry points) - assert l[0].type == 'e' - assert l[0].number == 0 - assert l[0].counter == 4 - assert l[1].type == 'l' - assert l[1].counter == 4 - assert l[2].type == 'l' - assert l[2].counter == 23 - assert l[3].type == 'b' - assert l[3].number == 4 - assert l[3].counter == 11 + assert_(l[0].type == 'e') + assert_(l[0].number == 0) + assert_(l[0].counter == 4) + assert_(l[1].type == 'l') + assert_(l[1].counter == 4) + assert_(l[2].type == 'l') + assert_(l[2].counter == 23) + assert_(l[3].type == 'b') + assert_(l[3].number == 4) + assert_(l[3].counter == 11) else: - assert len(l) == 0 + assert_(len(l) == 0) self.meta_interp(main, [True], ProfilerClass=Profiler) # this so far does not work because of the way setup_once is done, # but fine, it's only about untranslated version anyway #self.meta_interp(main, [False], ProfilerClass=Profiler) - + class TestJitHookInterface(JitHookInterfaceTests, LLJitMixin): pass diff --git a/rpython/jit/metainterp/test/test_loop.py b/rpython/jit/metainterp/test/test_loop.py --- a/rpython/jit/metainterp/test/test_loop.py +++ b/rpython/jit/metainterp/test/test_loop.py @@ -1,19 +1,20 @@ import py -from rpython.rlib.jit import JitDriver, hint, set_param, dont_look_inside,\ - elidable -from rpython.rlib.objectmodel import compute_hash +from rpython.rlib.jit import ( + JitDriver, set_param, dont_look_inside, elidable) +from rpython.rlib.objectmodel import compute_hash, assert_ +from rpython.rlib.rerased import new_erasing_pair +from rpython.rtyper.lltypesystem import lltype + from rpython.jit.metainterp.warmspot import ll_meta_interp, get_stats from rpython.jit.metainterp.test.support import LLJitMixin from rpython.jit.codewriter.policy import StopAtXPolicy -from rpython.jit.metainterp.resoperation import rop -from rpython.jit.metainterp import history class LoopTest(object): enable_opts = '' automatic_promotion_result = { - 'int_add' : 6, 'int_gt' : 1, 'guard_false' : 1, 'jump' : 1, - 'guard_value' : 3 + 'int_add': 6, 'int_gt': 1, 'guard_false': 1, 'jump': 1, + 'guard_value': 3 } def meta_interp(self, f, args, policy=None, backendopt=False): @@ -26,7 +27,8 @@ return f(*args) def test_simple_loop(self): - myjitdriver = JitDriver(greens = [], reds = ['x', 'y', 'res']) + myjitdriver = JitDriver(greens=[], reds=['x', 'y', 'res']) + def f(x, y): res = 0 while y > 0: @@ -40,7 +42,8 @@ self.check_trace_count(1) def test_loop_with_delayed_setfield(self): - myjitdriver = JitDriver(greens = [], reds = ['x', 'y', 'res', 'a']) + myjitdriver = JitDriver(greens=[], reds=['x', 'y', 'res', 'a']) + class A(object): def __init__(self): self.x = 3 @@ -67,7 +70,7 @@ def test_loop_with_two_paths(self): from rpython.rtyper.lltypesystem import lltype from rpython.rtyper.lltypesystem.lloperation import llop - myjitdriver = JitDriver(greens = [], reds = ['x', 'y', 'res']) + myjitdriver = JitDriver(greens=[], reds=['x', 'y', 'res']) def l(y, x, t): llop.debug_print(lltype.Void, y, x, t) @@ -96,7 +99,7 @@ self.check_trace_count(2) def test_alternating_loops(self): - myjitdriver = JitDriver(greens = [], reds = ['pattern']) + myjitdriver = JitDriver(greens=[], reds=['pattern']) def f(pattern): while pattern > 0: myjitdriver.can_enter_jit(pattern=pattern) @@ -114,7 +117,7 @@ self.check_trace_count(2) def test_interp_simple(self): - myjitdriver = JitDriver(greens = ['i'], reds = ['x', 'y']) + myjitdriver = JitDriver(greens=['i'], reds=['x', 'y']) bytecode = "bedca" def f(x, y): i = 0 @@ -139,7 +142,7 @@ self.check_trace_count(0) def test_green_prevents_loop(self): - myjitdriver = JitDriver(greens = ['i'], reds = ['x', 'y']) + myjitdriver = JitDriver(greens=['i'], reds=['x', 'y']) bytecode = "+--+++++----" def f(x, y): i = 0 @@ -158,7 +161,7 @@ self.check_trace_count(0) def test_interp_single_loop(self): - myjitdriver = JitDriver(greens = ['i'], reds = ['x', 'y']) + myjitdriver = JitDriver(greens=['i'], reds=['x', 'y']) bytecode = "abcd" def f(x, y): i = 0 @@ -201,7 +204,7 @@ assert found == 1 def test_interp_many_paths(self): - myjitdriver = JitDriver(greens = ['i'], reds = ['x', 'node']) + myjitdriver = JitDriver(greens=['i'], reds=['x', 'node']) NODE = self._get_NODE() bytecode = "xxxxxxxb" def f(node): @@ -240,7 +243,7 @@ oldlimit = sys.getrecursionlimit() try: sys.setrecursionlimit(10000) - myjitdriver = JitDriver(greens = ['i'], reds = ['x', 'node']) + myjitdriver = JitDriver(greens=['i'], reds=['x', 'node']) NODE = self._get_NODE() bytecode = "xxxxxxxb" @@ -281,7 +284,7 @@ sys.setrecursionlimit(oldlimit) def test_nested_loops(self): - myjitdriver = JitDriver(greens = ['i'], reds = ['x', 'y']) + myjitdriver = JitDriver(greens=['i'], reds=['x', 'y']) bytecode = "abc<de" def f(x, y): i = 0 @@ -317,7 +320,7 @@ assert res == expected def test_loop_in_bridge1(self): - myjitdriver = JitDriver(greens = ['i'], reds = ['x', 'y', 'res']) + myjitdriver = JitDriver(greens=['i'], reds=['x', 'y', 'res']) bytecode = "abs>cxXyY" def f(y): res = x = 0 @@ -375,7 +378,7 @@ # x = x + (i&j) # i = i + 1 - myjitdriver = JitDriver(greens = ['pos'], reds = ['i', 'j', 'n', 'x']) + myjitdriver = JitDriver(greens=['pos'], reds=['i', 'j', 'n', 'x']) bytecode = "IzJxji" def f(n, threshold): set_param(myjitdriver, 'threshold', threshold) @@ -422,7 +425,7 @@ self.val = val def add(self, val): return A(self.val + val) - myjitdriver = JitDriver(greens = ['pos'], reds = ['i', 'j', 'n', 'x']) + myjitdriver = JitDriver(greens=['pos'], reds=['i', 'j', 'n', 'x']) bytecode = "IzJxji" def f(nval, threshold): set_param(myjitdriver, 'threshold', threshold) @@ -464,7 +467,7 @@ assert res == expected def test_two_bridged_loops(self): - myjitdriver = JitDriver(greens = ['pos'], reds = ['i', 'n', 's', 'x']) + myjitdriver = JitDriver(greens=['pos'], reds=['i', 'n', 's', 'x']) bytecode = "zI7izI8i" def f(n, s): i = x = 0 @@ -510,7 +513,7 @@ def test_two_bridged_loops_classes(self): - myjitdriver = JitDriver(greens = ['pos'], reds = ['i', 'n', 'x', 's']) + myjitdriver = JitDriver(greens=['pos'], reds=['i', 'n', 'x', 's']) class A(object): pass bytecode = "I7i" @@ -554,10 +557,10 @@ def test_three_nested_loops(self): - myjitdriver = JitDriver(greens = ['i'], reds = ['x']) + myjitdriver = JitDriver(greens=['i'], reds=['x']) bytecode = ".+357" def f(x): - assert x >= 0 + assert_(x >= 0) i = 0 while i < len(bytecode): myjitdriver.jit_merge_point(i=i, x=x) @@ -590,7 +593,7 @@ assert res == expected def test_unused_loop_constant(self): - myjitdriver = JitDriver(greens = [], reds = ['x', 'y', 'z']) + myjitdriver = JitDriver(greens=[], reds=['x', 'y', 'z']) def f(x, y, z): while z > 0: myjitdriver.can_enter_jit(x=x, y=y, z=z) @@ -603,7 +606,7 @@ assert res == expected def test_loop_unicode(self): - myjitdriver = JitDriver(greens = [], reds = ['n', 'x']) + myjitdriver = JitDriver(greens=[], reds=['n', 'x']) def f(n): x = u'' while n > 13: @@ -617,7 +620,7 @@ assert res == expected def test_loop_string(self): - myjitdriver = JitDriver(greens = [], reds = ['n', 'x']) + myjitdriver = JitDriver(greens=[], reds=['n', 'x']) def f(n): x = '' while n > 13: @@ -632,7 +635,7 @@ assert res == expected def test_adapt_bridge_to_merge_point(self): - myjitdriver = JitDriver(greens = [], reds = ['x', 'z']) + myjitdriver = JitDriver(greens=[], reds=['x', 'z']) class Z(object): def __init__(self, elem): @@ -812,7 +815,7 @@ self.check_trace_count(2) def test_path_with_operations_not_from_start(self): - jitdriver = JitDriver(greens = ['k'], reds = ['n', 'z']) + jitdriver = JitDriver(greens=['k'], reds=['n', 'z']) def f(n): k = 0 @@ -831,11 +834,11 @@ n -= 1 return 42 - res = self.meta_interp(f, [200]) + self.meta_interp(f, [200]) def test_path_with_operations_not_from_start_2(self): - jitdriver = JitDriver(greens = ['k'], reds = ['n', 'z', 'stuff']) + jitdriver = JitDriver(greens=['k'], reds=['n', 'z', 'stuff']) class Stuff(object): def __init__(self, n): @@ -869,7 +872,8 @@ BASE = lltype.GcStruct('BASE') A = lltype.GcStruct('A', ('parent', BASE), ('val', lltype.Signed)) B = lltype.GcStruct('B', ('parent', BASE), ('charval', lltype.Char)) - myjitdriver = JitDriver(greens = [], reds = ['n', 'm', 'i', 'j', 'sa', 'p']) + myjitdriver = JitDriver(greens=[], reds=['n', 'm', 'i', 'j', 'sa', 'p']) + def f(n, m, j): i = sa = 0 pa = lltype.malloc(A) @@ -888,22 +892,22 @@ pb = lltype.cast_pointer(lltype.Ptr(B), p) sa += ord(pb.charval) sa += 100 - assert n>0 and m>0 + assert_(n > 0 and m > 0) i += j return sa # This is detected as invalid by the codewriter, for now py.test.raises(NotImplementedError, self.meta_interp, f, [20, 10, 1]) def test_unerased_pointers_in_short_preamble(self): - from rpython.rlib.rerased import new_erasing_pair - from rpython.rtyper.lltypesystem import lltype class A(object): def __init__(self, val): self.val = val erase_A, unerase_A = new_erasing_pair('A') erase_TP, unerase_TP = new_erasing_pair('TP') TP = lltype.GcArray(lltype.Signed) - myjitdriver = JitDriver(greens = [], reds = ['n', 'm', 'i', 'j', 'sa', 'p']) + myjitdriver = JitDriver( + greens=[], reds=['n', 'm', 'i', 'j', 'sa', 'p']) + def f(n, m, j): i = sa = 0 p = erase_A(A(7)) @@ -918,14 +922,13 @@ else: sa += unerase_TP(p)[0] sa += A(i).val - assert n>0 and m>0 + assert_(n > 0 and m > 0) i += j return sa res = self.meta_interp(f, [20, 10, 1]) assert res == f(20, 10, 1) def test_boxed_unerased_pointers_in_short_preamble(self): - from rpython.rlib.rerased import new_erasing_pair from rpython.rtyper.lltypesystem import lltype class A(object): def __init__(self, val): @@ -940,7 +943,7 @@ erase_A, unerase_A = new_erasing_pair('A') erase_TP, unerase_TP = new_erasing_pair('TP') TP = lltype.GcArray(lltype.Signed) - myjitdriver = JitDriver(greens = [], reds = ['n', 'm', 'i', 'sa', 'p']) + myjitdriver = JitDriver(greens=[], reds=['n', 'm', 'i', 'sa', 'p']) def f(n, m): i = sa = 0 p = Box(erase_A(A(7))) @@ -1011,7 +1014,6 @@ class C(object): pass - from rpython.rlib.rerased import new_erasing_pair b_erase, b_unerase = new_erasing_pair("B") c_erase, c_unerase = new_erasing_pair("C") @@ -1044,7 +1046,6 @@ def test_unroll_issue_3(self): py.test.skip("decide") - from rpython.rlib.rerased import new_erasing_pair b_erase, b_unerase = new_erasing_pair("B") # list of ints c_erase, c_unerase = new_erasing_pair("C") # list of Nones @@ -1075,7 +1076,7 @@ assert res == 420 def test_not_too_many_bridges(self): - jitdriver = JitDriver(greens = [], reds = 'auto') + jitdriver = JitDriver(greens=[], reds='auto') def f(i): s = 0 @@ -1097,7 +1098,7 @@ def test_sharing_guards(self): py.test.skip("unimplemented") - driver = JitDriver(greens = [], reds = 'auto') + driver = JitDriver(greens=[], reds='auto') def f(i): s = 0 @@ -1145,7 +1146,7 @@ v = reverse(W_Cons(pc + 1, W_Cons(pc + 2, W_Cons(pc + 3, W_Cons(pc + 4, W_Nil()))))) pc = pc + 1 repetitions += 1 - + self.meta_interp(entry_point, []) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit