Author: Armin Rigo <ar...@tunes.org> Branch: optresult-unroll Changeset: r79413:c04ede48ab19 Date: 2015-09-04 12:30 +0200 http://bitbucket.org/pypy/pypy/changeset/c04ede48ab19/
Log: Finish the test; it passes on x86 diff --git a/rpython/jit/backend/llsupport/test/test_zrpy_gc_direct.py b/rpython/jit/backend/llsupport/test/test_zrpy_gc_direct.py --- a/rpython/jit/backend/llsupport/test/test_zrpy_gc_direct.py +++ b/rpython/jit/backend/llsupport/test/test_zrpy_gc_direct.py @@ -4,10 +4,11 @@ from rpython.jit.metainterp.history import BasicFinalDescr, BasicFailDescr from rpython.jit.metainterp.gc import get_description from rpython.annotator.listdef import s_list_of_strings -from rpython.rtyper.lltypesystem import lltype, llmemory +from rpython.rtyper.lltypesystem import lltype, llmemory, rffi from rpython.rtyper.rclass import getclassrepr from rpython.translator.unsimplify import call_initial_function from rpython.translator.translator import TranslationContext +from rpython.translator.c import genc def test_guard_class(): @@ -39,13 +40,16 @@ cpu = CPU(rtyper, NoStats(), translate_support_code=True, gcdescr=get_description(t.config)) + execute_token = cpu.make_execute_token(llmemory.GCREF) + finaldescr = BasicFinalDescr() + faildescr = BasicFailDescr() loop = parse(""" [p0] guard_class(p0, ConstInt(vtable_B), descr=faildescr) [] finish(descr=finaldescr) - """, namespace={'finaldescr': BasicFinalDescr(), - 'faildescr': BasicFailDescr(), + """, namespace={'finaldescr': finaldescr, + 'faildescr': faildescr, 'vtable_B': vtable_B}) def g(): @@ -53,8 +57,22 @@ token = JitCellToken() cpu.compile_loop(loop.inputargs, loop.operations, token) - # xxx + for x in [A(),B(), C()]: + p0 = rffi.cast(llmemory.GCREF, x) + frame = execute_token(token, p0) + descr = cpu.get_latest_descr(frame) + if descr is finaldescr: + print 'match' + elif descr is faildescr: + print 'fail' + else: + print '???' call_initial_function(t, g) -#...turn to C here + cbuilder = genc.CStandaloneBuilder(t, main, t.config) + cbuilder.generate_source(defines=cbuilder.DEBUG_DEFINES) + cbuilder.compile() + + data = cbuilder.cmdexec('') + assert data == 'fail\nmatch\nfail\n' _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit