python testrunner/pypyjit_tests.py
in dir /build_dir/pypy-c-jit-linux-x86-32/build (timeout 4000 secs)
watching logfiles {'pytestLog': 'pypyjit_new.log'}
argv: ['python', 'testrunner/pypyjit_tests.py']
environment:
AUDITWHEEL_ARCH=i686
AUDITWHEEL_PLAT=manylinux2014_i686
AUDITWHEEL_POLICY=manylinux2014
DEVTOOLSET_ROOTPATH=/opt/rh/devtoolset-10/root
HOME=/home/buildslave
HOSTNAME=ffc60fde56a7
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LD_LIBRARY_PATH=/usr/local/lib:/opt/rh/devtoolset-10/root/usr/lib:/opt/rh/devtoolset-10/root/usr/lib/dyninst
LOGNAME=buildslave
PATH=/python27_virt/bin:/opt/rh/devtoolset-10/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig
PWD=/build_dir/pypy-c-jit-linux-x86-32/build
PYPY_LOCALBASE=/usr/local
PYPY_MAKE_PORTABLE=1
SHELL=/bin/bash
SHLVL=3
SSL_CERT_FILE=/opt/_internal/certs.pem
TERM=xterm
TMPDIR=/build_dir/tmp/pytest
USER=buildslave
_=/usr/bin/linux32
using PTY: False
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/pypy-c-jit-linux-x86-32/build/.hypothesis/examples')
pytest-2.9.2 from /build_dir/pypy-c-jit-linux-x86-32/build/pytest.pyc
rootdir: /build_dir/pypy-c-jit-linux-x86-32/build, inifile: pytest.ini
plugins: hypothesis-4.42.0
collected 1194 items / 1 skipped
pypy/module/pypyjit/test_pypy_c/test_00_model.py ........................
pypy/module/pypyjit/test_pypy_c/test_alloc.py ...................................................
pypy/module/pypyjit/test_pypy_c/test_array.py ........
pypy/module/pypyjit/test_pypy_c/test_boolrewrite.py ......................................................................................................................................................................................................................................................................................................................................
pypy/module/pypyjit/test_pypy_c/test_buffers.py ..
pypy/module/pypyjit/test_pypy_c/test_bug.py .
pypy/module/pypyjit/test_pypy_c/test_call.py .........................s.
pypy/module/pypyjit/test_pypy_c/test_capture_locals.py F
pypy/module/pypyjit/test_pypy_c/test_cprofile.py .
pypy/module/pypyjit/test_pypy_c/test_exception.py .....
pypy/module/pypyjit/test_pypy_c/test_ffi.py s..s......
pypy/module/pypyjit/test_pypy_c/test_generators.py ...
pypy/module/pypyjit/test_pypy_c/test_getframe.py ..
pypy/module/pypyjit/test_pypy_c/test_globals.py .
pypy/module/pypyjit/test_pypy_c/test_import.py ....
pypy/module/pypyjit/test_pypy_c/test_instance.py ...............
pypy/module/pypyjit/test_pypy_c/test_intbound.py ...................................................................................................................................................................................................................................................................................
pypy/module/pypyjit/test_pypy_c/test_itertools.py ..
pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py .
pypy/module/pypyjit/test_pypy_c/test_math.py ..s..
pypy/module/pypyjit/test_pypy_c/test_micronumpy.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
pypy/module/pypyjit/test_pypy_c/test_min_max.py ...
pypy/module/pypyjit/test_pypy_c/test_misc.py .................s.....
pypy/module/pypyjit/test_pypy_c/test_shift.py ...........................................................................................................................................................................................................................
pypy/module/pypyjit/test_pypy_c/test_string.py .F....x............
pypy/module/pypyjit/test_pypy_c/test_struct.py ...F.F
pypy/module/pypyjit/test_pypy_c/test_thread.py ..F
pypy/module/pypyjit/test_pypy_c/test_weakref.py .
=================================== FAILURES ===================================
____________________ TestCaptureLocals.test_capture_locals _____________________
self = <pypy.module.pypyjit.test_pypy_c.test_capture_locals.TestCaptureLocals object at 0xf3c5832c>
def test_capture_locals(self):
def main(n):
num = 42
i = 0
acc = 0
src = '''
while i < n:
acc += num
i += 1
'''
exec(src)
return acc
log = self.run(main, [500])
print (log.result)
assert log.result == 0
loop, = log.loops_by_filename("<string>")
assert loop.match("""
guard_not_invalidated(descr=...)
i48 = int_lt(i41, i33)
guard_true(i48, descr=...)
i49 = int_add_ovf(i39, i38)
guard_no_overflow(descr=...)
i51 = int_add(i41, 1)
i53 = getfield_raw_i(..., descr=...)
setarrayitem_gc(p27, 3, i49, descr=...)
setarrayitem_gc(p27, 2, i51, descr=...)
i57 = int_lt(i53, 0)
guard_false(i57, descr=...)
i59 = arraylen_gc(p25, descr=...)
i60 = arraylen_gc(p27, descr=...)
jump(..., descr=...)
> """)
pypy/module/pypyjit/test_pypy_c/test_capture_locals.py:37:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pypy/module/pypyjit/test_pypy_c/model.py:177: in match
return matcher.match(expected_src, **kwds)
pypy/module/pypyjit/test_pypy_c/model.py:524: in match
self.match_loop(expected_ops, ignore_ops)
pypy/module/pypyjit/test_pypy_c/model.py:500: in match_loop
self.match_op(op, exp_op)
pypy/module/pypyjit/test_pypy_c/model.py:409: in match_op
self._assert(op.name == exp_opname, "operation mismatch")
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.pypyjit.test_pypy_c.model.OpMatcher object at 0xf3971f6c>
cond = False, message = 'operation mismatch'
def _assert(self, cond, message):
if not cond:
> raise InvalidMatch(message, frame=sys._getframe(1))
E InvalidMatch: operation mismatch
pypy/module/pypyjit/test_pypy_c/model.py:402: InvalidMatch
----------------------------- Captured stdout call -----------------------------
0
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Loops don't match
=================
loop id = None
('operation mismatch',)
<could not determine information>
Ignore ops: []
Got:
===== HERE =====
i55 = getfield_gc_i(p51, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval 8 pure>)
i56 = int_lt(i55, i34)
guard_true(i56, descr=<Guard0xf4b63a38>)
i57 = getfield_gc_i(p53, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval 8 pure>)
i58 = int_add_ovf(i57, i43)
guard_no_overflow(descr=<Guard0xf4b0c064>)
guard_not_invalidated(descr=<Guard0xf4b0c080>)
i60 = int_add(i55, 1)
i62 = getfield_raw_i(-134717504, descr=<FieldS pypysig_long_struct_inner.c_value 0>)
i64 = int_lt(i62, 0)
guard_false(i64, descr=<Guard0xf4b0c0b8>)
i65 = arraylen_gc(p24, descr=<ArrayP 4>)
p66 = new_with_vtable(descr=<SizeDescr 12>)
setfield_gc(p66, i60, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval 8 pure>)
p67 = new_with_vtable(descr=<SizeDescr 12>)
setfield_gc(p67, i58, descr=<FieldS pypy.objspace.std.intobject.W_IntObject.inst_intval 8 pure>)
setarrayitem_gc(p24, 3, p66, descr=<ArrayP 4>)
setarrayitem_gc(p24, 4, p67, descr=<ArrayP 4>)
jump(p0, p1, p5, p13, p20, p24, p66, p31, i34, p67, p40, i43, descr=TargetToken(-189526532))
Expected:
guard_not_invalidated(descr=...)
i48 = int_lt(i41, i33)
guard_true(i48, descr=...)
i49 = int_add_ovf(i39, i38)
guard_no_overflow(descr=...)
i51 = int_add(i41, 1)
i53 = getfield_raw_i(..., descr=...)
setarrayitem_gc(p27, 3, i49, descr=...)
setarrayitem_gc(p27, 2, i51, descr=...)
i57 = int_lt(i53, 0)
guard_false(i57, descr=...)
i59 = arraylen_gc(p25, descr=...)
i60 = arraylen_gc(p27, descr=...)
jump(..., descr=...)
___________________ TestString.test_lookup_default_encoding ____________________
self = <pypy.module.pypyjit.test_pypy_c.test_string.TestString object at 0xf36f466c>
def test_lookup_default_encoding(self):
def main(n):
i = 0
letters = b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
uletters = u'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
while i < n:
c = bytes([letters[i % len(uletters)]])
i += (c.decode() == uletters[i % len(uletters)])
return i
log = self.run(main, [300], import_site=True)
assert log.result == 300
loop, = log.loops_by_filename(self.filepath)
assert loop.match("""
i88 = int_lt(i83, i36)
guard_true(i88, descr=...)
guard_not_invalidated(descr=...)
i92 = int_eq(i83, %d)
i94 = call_i(ConstClass(ll_int_py_mod__Signed_Signed), i83, i46, descr=<Calli . ii EF=0 OS=14>)
i97 = int_ge(i94, i53)
guard_false(i97, descr=...)
i98 = strgetitem(p52, i94)
p103 = newstr(1)
strsetitem(p103, 0, i98)
i95 = call_i(ConstClass(_check_utf8), p103, 0, 0, -1, descr=<Calli 8 riii EF=4>)
guard_no_exception(descr=...)
i98 = int_ge(i95, 0)
guard_true(i98, descr=...)
i99 = int_ge(i94, i46)
guard_false(i99, descr=...)
i115 = int_add(i94, 1)
i116 = int_gt(i115, i71)
guard_false(i116, descr=...)
i104 = call_i(ConstClass(_ll_4_str_eq_slice_char__rpy_stringPtr_Signed_Signed_Char), p65, i94, 1, i98, descr=<Calli 8 riii EF=0 OS=27>)
guard_true(i104, descr=...)
i124 = int_add(i83, 1)
--TICK--
jump(..., descr=...)
> """ % (-sys.maxint-1,))
pypy/module/pypyjit/test_pypy_c/test_string.py:85:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pypy/module/pypyjit/test_pypy_c/model.py:177: in match
return matcher.match(expected_src, **kwds)
pypy/module/pypyjit/test_pypy_c/model.py:524: in match
self.match_loop(expected_ops, ignore_ops)
pypy/module/pypyjit/test_pypy_c/model.py:500: in match_loop
self.match_op(op, exp_op)
pypy/module/pypyjit/test_pypy_c/model.py:418: in match_op
self.match_descr(op.descr, exp_descr)
pypy/module/pypyjit/test_pypy_c/model.py:398: in match_descr
self._assert(exp_descr is not None and re.match(exp_descr, descr), "descr mismatch")
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.pypyjit.test_pypy_c.model.OpMatcher object at 0xf3e8e8cc>
cond = None, message = 'descr mismatch'
def _assert(self, cond, message):
if not cond:
> raise InvalidMatch(message, frame=sys._getframe(1))
E InvalidMatch: descr mismatch
pypy/module/pypyjit/test_pypy_c/model.py:402: InvalidMatch
----------------------------- Captured stdout call -----------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Loops don't match
=================
loop id = None
('descr mismatch',)
<could not determine information>
Ignore ops: []
Got:
i75 = int_lt(i70, i33)
guard_true(i75, descr=<Guard0xf4b003f8>)
guard_not_invalidated(descr=<Guard0xf4b0f4fc>)
i77 = int_eq(i70, -2147483648)
i79 = call_i(ConstClass(ll_int_py_mod__Signed_Signed), i70, i38, descr=<Calli 4 ii EF=0 OS=14>)
i80 = int_ge(i79, i47)
guard_false(i80, descr=<Guard0xf4b00420>)
i81 = strgetitem(p46, i79)
p83 = newstr(1)
strsetitem(p83, 0, i81)
===== HERE =====
i88 = call_i(ConstClass(_check_utf8), p83, 0, 0, -1, descr=<Calli 4 riii EF=4>)
guard_no_exception(descr=<Guard0xf4b00448>)
i91 = int_ge(i88, 0)
guard_true(i91, descr=<Guard0xf4b0f550>)
i92 = int_ge(i79, i38)
guard_false(i92, descr=<Guard0xf4b0f588>)
i94 = int_add(i79, 1)
i95 = int_gt(i94, i61)
guard_false(i95, descr=<Guard0xf4b0f5c0>)
i97 = call_i(ConstClass(_ll_4_str_eq_slice_char__rpy_stringPtr_Signed_Signed_Char), p60, i79, 1, i81, descr=<Calli 4 riii EF=0 OS=27>)
guard_true(i97, descr=<Guard0xf4b00470>)
i99 = int_add(i70, 1)
i101 = getfield_raw_i(-134877248, descr=<FieldS pypysig_long_struct_inner.c_value 0>)
i103 = int_lt(i101, 0)
guard_false(i103, descr=<Guard0xf4b0f614>)
jump(p0, p1, p8, i99, p12, p14, p83, i33, i38, i47, p46, i61, p60, descr=TargetToken(-189855148))
Expected:
i88 = int_lt(i83, i36)
guard_true(i88, descr=...)
guard_not_invalidated(descr=...)
i92 = int_eq(i83, -2147483648)
i94 = call_i(ConstClass(ll_int_py_mod__Signed_Signed), i83, i46, descr=<Calli . ii EF=0 OS=14>)
i97 = int_ge(i94, i53)
guard_false(i97, descr=...)
i98 = strgetitem(p52, i94)
p103 = newstr(1)
strsetitem(p103, 0, i98)
i95 = call_i(ConstClass(_check_utf8), p103, 0, 0, -1, descr=<Calli 8 riii EF=4>)
guard_no_exception(descr=...)
i98 = int_ge(i95, 0)
guard_true(i98, descr=...)
i99 = int_ge(i94, i46)
guard_false(i99, descr=...)
i115 = int_add(i94, 1)
i116 = int_gt(i115, i71)
guard_false(i116, descr=...)
i104 = call_i(ConstClass(_ll_4_str_eq_slice_char__rpy_stringPtr_Signed_Signed_Char), p65, i94, 1, i98, descr=<Calli 8 riii EF=0 OS=27>)
guard_true(i104, descr=...)
i124 = int_add(i83, 1)
guard_not_invalidated?
ticker0 = getfield_raw_i(#, descr=<FieldS pypysig_long_struct_inner.c_value .*>)
ticker_cond0 = int_lt(ticker0, 0)
guard_false(ticker_cond0, descr=...)
jump(..., descr=...)
_______________________ TestStruct.test_unpack_bytearray _______________________
self = <pypy.module.pypyjit.test_pypy_c.test_struct.TestStruct object at 0xf3c4d02c>
def test_unpack_bytearray(self):
def main(n):
import struct
buf = struct.pack('H', 0x1234)
buf = bytearray(buf)
i = 1
res = 0
while i < n:
val = struct.unpack("h", buf)[0] # ID: unpack
res += val
i += 1
return res
log = self.run(main, [1000])
assert log.result == main(1000)
loop, = log.loops_by_filename(self.filepath)
# the offset of gc_load_indexed_i used to be the constant 0. However,
# now it is 'i46' because we need to add 0 to
# W_BytearrayObject._offset
assert loop.match_by_id('unpack', """
guard_not_invalidated(descr=...)
i70 = gc_load_indexed_i(p48, i46, 1, _, -2)
> """)
pypy/module/pypyjit/test_pypy_c/test_struct.py:159:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pypy/module/pypyjit/test_pypy_c/model.py:182: in match_by_id
return matcher.match(expected_src, ignore_ops=ignore_ops)
pypy/module/pypyjit/test_pypy_c/model.py:524: in match
self.match_loop(expected_ops, ignore_ops)
pypy/module/pypyjit/test_pypy_c/model.py:500: in match_loop
self.match_op(op, exp_op)
pypy/module/pypyjit/test_pypy_c/model.py:409: in match_op
self._assert(op.name == exp_opname, "operation mismatch")
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.pypyjit.test_pypy_c.model.OpMatcher object at 0xf3d50f0c>
cond = False, message = 'operation mismatch'
def _assert(self, cond, message):
if not cond:
> raise InvalidMatch(message, frame=sys._getframe(1))
E InvalidMatch: operation mismatch
pypy/module/pypyjit/test_pypy_c/model.py:402: InvalidMatch
----------------------------- Captured stdout call -----------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Loops don't match
=================
loop id = 'unpack'
('operation mismatch',)
<could not determine information>
Ignore ops: []
Got:
guard_not_invalidated(descr=<Guard0xf4a880b8>)
===== HERE =====
setfield_gc(p12, i43, descr=<FieldS pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__exports 12>)
i74 = gc_load_indexed_i(p52, i46, 1, 8, -2)
Expected:
guard_not_invalidated(descr=...)
i70 = gc_load_indexed_i(p48, i46, 1, _, -2)
_____________________ TestStruct.test_pack_into_bytearray ______________________
self = <pypy.module.pypyjit.test_pypy_c.test_struct.TestStruct object at 0xf38f2bcc>
def test_pack_into_bytearray(self):
def main(n):
import struct
buf = bytearray(8)
i = 1
while i < n:
struct.pack_into("h", buf, 4, i) # ID: pack_into
i += 1
return i
log = self.run(main, [1000])
assert log.result == main(1000)
loop, = log.loops_by_filename(self.filepath)
assert loop.match_by_id('pack_into', """\
dummy_get_utf8?
guard_not_invalidated(descr=...)
dummy_get_utf8?
p68 = getfield_gc_r(p14, descr=<FieldP pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__data \d+>)
i69 = getfield_gc_i(p68, descr=<FieldS list.length \d+>)
i70 = getfield_gc_i(p14, descr=<FieldS pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__offset \d+>)
i71 = int_sub(i69, i70)
i72 = int_sub(i71, 1)
i73 = int_sub(i71, 5)
i75 = int_lt(i73, 2)
guard_false(i75, descr=...)
i77 = int_le(i62, 32767)
guard_true(i77, descr=...)
p78 = getfield_gc_r(p68, descr=<FieldP list.items \d+>)
i81 = int_add(4, i70)
gc_store_indexed(p78, i81, i62, 1, _, 2, descr=<ArrayS 2>)
> """)
pypy/module/pypyjit/test_pypy_c/test_struct.py:210:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pypy/module/pypyjit/test_pypy_c/model.py:182: in match_by_id
return matcher.match(expected_src, ignore_ops=ignore_ops)
pypy/module/pypyjit/test_pypy_c/model.py:524: in match
self.match_loop(expected_ops, ignore_ops)
pypy/module/pypyjit/test_pypy_c/model.py:500: in match_loop
self.match_op(op, exp_op)
pypy/module/pypyjit/test_pypy_c/model.py:409: in match_op
self._assert(op.name == exp_opname, "operation mismatch")
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.pypyjit.test_pypy_c.model.OpMatcher object at 0xf38f2eec>
cond = False, message = 'operation mismatch'
def _assert(self, cond, message):
if not cond:
> raise InvalidMatch(message, frame=sys._getframe(1))
E InvalidMatch: operation mismatch
pypy/module/pypyjit/test_pypy_c/model.py:402: InvalidMatch
----------------------------- Captured stdout call -----------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Loops don't match
=================
loop id = 'pack_into'
('operation mismatch',)
<could not determine information>
Ignore ops: []
Got:
guard_not_invalidated(descr=<Guard0xf4aa2320>)
===== HERE =====
i77 = int_add(i68, 1)
p78 = getfield_gc_r(p12, descr=<FieldP pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__data 8>)
i79 = getfield_gc_i(p78, descr=<FieldS list.length 4>)
i80 = getfield_gc_i(p12, descr=<FieldS pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__offset 16>)
i81 = int_sub(i79, i80)
i83 = int_sub(i81, 1)
i85 = int_sub(i81, 5)
setfield_gc(p12, i77, descr=<FieldS pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__exports 12>)
i87 = int_lt(i85, 2)
guard_false(i87, descr=<Guard0xf4af7b00>)
i89 = int_le(i70, 32767)
guard_true(i89, descr=<Guard0xf4aa2374>)
p90 = getfield_gc_r(p78, descr=<FieldP list.items 8>)
i92 = int_add(4, i80)
gc_store_indexed(p90, i92, i70, 1, 8, 2, descr=<ArrayS 2>)
i96 = getfield_gc_i(p12, descr=<FieldS pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__exports 12>)
i98 = int_le(i96, 0)
guard_false(i98, descr=<Guard0xf4af7b28>)
i100 = int_sub(i96, 1)
Expected:
dummy_get_utf8?
guard_not_invalidated(descr=...)
dummy_get_utf8?
p68 = getfield_gc_r(p14, descr=<FieldP pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__data \d+>)
i69 = getfield_gc_i(p68, descr=<FieldS list.length \d+>)
i70 = getfield_gc_i(p14, descr=<FieldS pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__offset \d+>)
i71 = int_sub(i69, i70)
i72 = int_sub(i71, 1)
i73 = int_sub(i71, 5)
i75 = int_lt(i73, 2)
guard_false(i75, descr=...)
i77 = int_le(i62, 32767)
guard_true(i77, descr=...)
p78 = getfield_gc_r(p68, descr=<FieldP list.items \d+>)
i81 = int_add(4, i70)
gc_store_indexed(p78, i81, i62, 1, _, 2, descr=<ArrayS 2>)
_____________________ TestThread.test_lock_acquire_release _____________________
self = <pypy.module.pypyjit.test_pypy_c.test_thread.TestThread object at 0xf3c7528c>
def test_lock_acquire_release(self):
def main(n):
import threading
lock = threading.Lock()
while n > 0:
with lock:
n -= 1
log = self.run(main, [500])
assert log.result == main(500)
loop, = log.loops_by_filename(self.filepath)
assert loop.match("""
i56 = int_gt(i44, 0)
guard_true(i56, descr=...)
p57 = force_token()
setfield_gc(p0, p57, descr=<FieldP pypy.interpreter.pyframe.PyFrame.vable_token 8>)
i58 = call_may_force_i(ConstClass(acquire_timed), p31, -1, descr=<Calli . ri EF=7>)
guard_not_forced(descr=...)
guard_no_exception(descr=...)
i99 = int_eq(i58, 1)
guard_true(i99, descr=...)
i58 = int_sub(i44, 1)
guard_not_invalidated?
i59 = call_i(ConstClass(RPyThreadReleaseLock), i37, descr=<Calli . i EF=2>)
i60 = int_is_true(i59)
guard_false(i60, descr=...)
--TICK--
jump(..., descr=...)
> """)
pypy/module/pypyjit/test_pypy_c/test_thread.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pypy/module/pypyjit/test_pypy_c/model.py:177: in match
return matcher.match(expected_src, **kwds)
pypy/module/pypyjit/test_pypy_c/model.py:524: in match
self.match_loop(expected_ops, ignore_ops)
pypy/module/pypyjit/test_pypy_c/model.py:500: in match_loop
self.match_op(op, exp_op)
pypy/module/pypyjit/test_pypy_c/model.py:417: in match_op
self._assert(self.match_var(arg, exp_arg), "variable mismatch: %r instead of %r" % (arg, exp_arg))
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.pypyjit.test_pypy_c.model.OpMatcher object at 0xf3c7502c>
cond = False, message = "variable mismatch: 'nan' instead of '-1'"
def _assert(self, cond, message):
if not cond:
> raise InvalidMatch(message, frame=sys._getframe(1))
E InvalidMatch: variable mismatch: 'nan' instead of '-1'
pypy/module/pypyjit/test_pypy_c/model.py:402: InvalidMatch
----------------------------- Captured stdout call -----------------------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Loops don't match
=================
loop id = None
("variable mismatch: 'nan' instead of '-1'",)
<could not determine information>
Ignore ops: []
Got:
i50 = int_gt(i40, 0)
guard_true(i50, descr=<Guard0xf49dc678>)
p51 = force_token()
setfield_gc(p0, p51, descr=<FieldP pypy.interpreter.pyframe.PyFrame.vable_token 8>)
===== HERE =====
i54 = call_may_force_i(ConstClass(acquire_timed), p32, nan, descr=<Calli 4 rL EF=7>)
guard_not_forced(descr=<Guard0xf4972354>)
guard_no_exception(descr=<Guard0xf4973cf8>)
i56 = int_eq(i54, 1)
guard_true(i56, descr=<Guard0xf4973d30>)
i58 = int_sub(i40, 1)
i60 = call_i(ConstClass(RPyThreadReleaseLock), i41, descr=<Calli 4 i EF=2>)
i61 = int_is_true(i60)
guard_false(i61, descr=<Guard0xf49dc6a0>)
guard_not_invalidated(descr=<Guard0xf4973d68>)
i64 = getfield_raw_i(-135344192, descr=<FieldS pypysig_long_struct_inner.c_value 0>)
i66 = int_lt(i64, 0)
guard_false(i66, descr=<Guard0xf4973da0>)
jump(p0, p1, i58, p10, p12, p22, p24, p32, i41, descr=TargetToken(-191442748))
Expected:
i56 = int_gt(i44, 0)
guard_true(i56, descr=...)
p57 = force_token()
setfield_gc(p0, p57, descr=<FieldP pypy.interpreter.pyframe.PyFrame.vable_token 8>)
i58 = call_may_force_i(ConstClass(acquire_timed), p31, -1, descr=<Calli . ri EF=7>)
guard_not_forced(descr=...)
guard_no_exception(descr=...)
i99 = int_eq(i58, 1)
guard_true(i99, descr=...)
i58 = int_sub(i44, 1)
guard_not_invalidated?
i59 = call_i(ConstClass(RPyThreadReleaseLock), i37, descr=<Calli . i EF=2>)
i60 = int_is_true(i59)
guard_false(i60, descr=...)
guard_not_invalidated?
ticker0 = getfield_raw_i(#, descr=<FieldS pypysig_long_struct_inner.c_value .*>)
ticker_cond0 = int_lt(ticker0, 0)
guard_false(ticker_cond0, descr=...)
jump(..., descr=...)
=========================== short test summary info ============================
FAIL pypy/module/pypyjit/test_pypy_c/test_capture_locals.py::TestCaptureLocals::()::test_capture_locals
FAIL pypy/module/pypyjit/test_pypy_c/test_string.py::TestString::()::test_lookup_default_encoding
FAIL pypy/module/pypyjit/test_pypy_c/test_struct.py::TestStruct::()::test_unpack_bytearray
FAIL pypy/module/pypyjit/test_pypy_c/test_struct.py::TestStruct::()::test_pack_into_bytearray
FAIL pypy/module/pypyjit/test_pypy_c/test_thread.py::TestThread::()::test_lock_acquire_release
======= 5 failed, 1027 passed, 162 skipped, 1 xfailed in 233.03 seconds ========
program finished with exit code 1
elapsedTime=233.742102