python testrunner/pypyjit_tests.py in dir /Users/matti/build-worker-x86_64/pypy-c-jit-macos-x86-64/build (timeout 4000 secs) watching logfiles {'pytestLog': 'pypyjit_new.log'} argv: ['python', 'testrunner/pypyjit_tests.py'] environment: HOME=/Users/matti HOMEBREW_CELLAR=/opt/homebrew_x86_64/Cellar HOMEBREW_PREFIX=/opt/homebrew_x86_64 HOMEBREW_REPOSITORY=/opt/homebrew_x86_64 INFOPATH=/opt/homebrew_x86_64/share/info: LANG=en_US.UTF-8 LC_ADDRESS=en_AU.UTF-8 LC_IDENTIFICATION=en_AU.UTF-8 LC_MEASUREMENT=en_AU.UTF-8 LC_MONETARY=en_AU.UTF-8 LC_NAME=en_AU.UTF-8 LC_NUMERIC=en_AU.UTF-8 LC_PAPER=en_AU.UTF-8 LC_TELEPHONE=en_AU.UTF-8 LC_TIME=en_AU.UTF-8 LOGNAME=matti OLDPWD=/Users/matti PATH=/Users/matti/oss/pypy-x86_64-buildbot/bin:/opt/homebrew_x86_64/bin:/opt/homebrew_x86_64/sbin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin PKG_CONFIG_PATH=/opt/homebrew_x86_64/opt/openssl@1.1/lib/pkgconfig PWD=/Users/matti/build-worker-x86_64/pypy-c-jit-macos-x86-64/build PYPY_USESSION_DIR=/tmp/buildbot-x86_64 SHELL=/bin/zsh SHLVL=2 SSH_CLIENT=10.0.0.15 58962 22 SSH_CONNECTION=10.0.0.15 58962 10.0.0.16 22 SSH_TTY=/dev/ttys000 TERM=xterm-256color TMPDIR=/tmp/buildbot-x86_64/pytest USER=matti _=/Users/matti/oss/pypy-x86_64-buildbot/bin/buildslave using PTY: False /Users/matti/oss/pypy-x86_64-buildbot/site-packages/hypothesis/extra/pytestplugin.py:61: HypothesisWarning: You are using Pytest version 2.9.2. Hypothesis tests work with any test runner, but our Pytest plugin requires Pytest 4.3 or newer. Note that the Pytest developers no longer support this version either! Disabling the Hypothesis pytest plugin... warnings.warn(PYTEST_TOO_OLD_MESSAGE % (pytest.__version__,), HypothesisWarning) ============================= test session starts ============================== platform darwin -- Python 2.7.18[pypy-7.3.17-final], pytest-2.9.2, py-1.4.29, pluggy-0.3.1 pytest-2.9.2 from /Users/matti/build-worker-x86_64/pypy-c-jit-macos-x86-64/build/pytest.pyc rootdir: /Users/matti/build-worker-x86_64/pypy-c-jit-macos-x86-64/build, inifile: pytest.ini plugins: hypothesis-4.57.1 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 s pypy/module/pypyjit/test_pypy_c/test_call.py .........................s. pypy/module/pypyjit/test_pypy_c/test_capture_locals.py . 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 F 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 ....................... pypy/module/pypyjit/test_pypy_c/test_shift.py ........................................................................................................................................................................................................................... pypy/module/pypyjit/test_pypy_c/test_string.py ......x............ pypy/module/pypyjit/test_pypy_c/test_struct.py ...F.F pypy/module/pypyjit/test_pypy_c/test_thread.py ... pypy/module/pypyjit/test_pypy_c/test_weakref.py . =================================== FAILURES =================================== ______________________________ TestLogParser.test ______________________________ self = <pypy.module.pypyjit.test_pypy_c.test_jitlogparser.TestLogParser object at 0x00007fa531d0bbe8> def test(self): def fn_with_bridges(N): def is_prime(x): for y in range(2, x): if x % y == 0: return False return True result = 0 for x in range(N): if x % 3 == 0: result += 5 elif x % 5 == 0: result += 3 elif is_prime(x): result += x elif x == 99: result *= 2 return result # N = 10000 _log = self.run(fn_with_bridges, [N]) log, loops = import_log(_log.logfile) parse_log_counts(extract_category(log, 'jit-backend-count'), loops) is_prime_loops = [] fn_with_bridges_loops = [] bridges = {} for loop in loops: if hasattr(loop, 'force_asm'): try: > loop.force_asm() pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py:45: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ rpython/tool/jitlogparser/parser.py:472: in <lambda> dump_start=start_ofs)) rpython/tool/jitlogparser/parser.py:110: in postprocess backend_tp, dump_start) rpython/tool/jitlogparser/parser.py:151: in _asm_disassemble return list(machine_code_dump(d, origin_addr, tp)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ data = '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\...d=\xfaASM\x8d\x9b\x80\xe7\xff\xffA\xff\xe3\xff5\x86\xf7\xff\xffM\x8d\x9b\x00e=\xfaASM\x8d\x9b\xc0\xe6\xff\xffA\xff\xe3' originaddr = 4473395808L, backend_name = 'x86_64', label_list = None def machine_code_dump(data, originaddr, backend_name, label_list=None): objdump_machine_option = { 'x86': 'i386', 'x86-without-sse2': 'i386', 'x86_32': 'i386', 'x86_64': 'i386:x86-64', 'x86-64': 'i386:x86-64', 'i386': 'i386', 'arm': 'arm', 'arm_32': 'arm', 'aarch64': 'aarch64', 'ppc' : 'powerpc:common64', 'ppc-64' : 'powerpc:common64', 'riscv64': 'riscv:rv64', 's390x': 's390:64-bit', } machine_endianness = { # default value: 'little' 'ppc' : sys.byteorder, # i.e. same as the running machine... 'ppc-64' : sys.byteorder, # i.e. same as the running machine... 's390x' : sys.byteorder, # i.e. same as the running machine... } cmd = find_objdump() objdump = ('%(command)s -b binary -m %(machine)s ' '--endian=%(endianness)s ' '--disassembler-options=intel-mnemonics ' '--adjust-vma=%(origin)d -D %(file)s') # f = open(tmpfile, 'wb') f.write(data) f.close() p = subprocess.Popen(objdump % { 'command': cmd, 'file': tmpfile, 'origin': originaddr, 'machine': objdump_machine_option[backend_name], 'endianness': machine_endianness.get(backend_name, 'little'), }, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() assert not p.returncode, ('Encountered an error running objdump: %s' % > stderr) E AssertionError: Encountered an error running objdump: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump: error: unknown argument '-b' rpython/jit/backend/tool/viewcode.py:82: AssertionError ----------------------------- Captured stdout call ----------------------------- loading symbols from /Users/matti/build-worker-x86_64/pypy-c-jit-macos-x86-64/build/pypy/goal/pypy3.11-c... 3 symbols found ----------------------------- Captured stderr call ----------------------------- 0%..loaded _______________________ TestStruct.test_unpack_bytearray _______________________ self = <pypy.module.pypyjit.test_pypy_c.test_struct.TestStruct object at 0x00007fa54471d018> 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:156: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 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 0x00007fa5472fa9c0> 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=<Guard0x7fd0f81e9be8>) ===== HERE ===== setfield_gc(p12, i43, descr=<FieldS pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__exports 16>) i74 = gc_load_indexed_i(p52, i46, 1, 16, -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 0x00007fa5465190c0> 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:193: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 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 0x00007fa4f036b8a0> 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=<Guard0x7fbe701f6138>) ===== 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 8>) i80 = getfield_gc_i(p12, descr=<FieldS pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__offset 24>) 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 16>) i87 = int_lt(i85, 2) guard_false(i87, descr=<Guard0x7fbe701dae30>) i89 = int_le(i70, 32767) guard_true(i89, descr=<Guard0x7fbe701f61e0>) p90 = getfield_gc_r(p78, descr=<FieldP list.items 16>) i92 = int_add(4, i80) gc_store_indexed(p90, i92, i70, 1, 16, 2, descr=<ArrayS 2>) i96 = getfield_gc_i(p12, descr=<FieldS pypy.objspace.std.bytearrayobject.W_BytearrayObject.inst__exports 16>) i98 = int_le(i96, 0) guard_false(i98, descr=<Guard0x7fbe701dae80>) 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>) =========================== short test summary info ============================ FAIL pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py::TestLogParser::()::test 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 ======= 3 failed, 1029 passed, 162 skipped, 1 xfailed in 206.19 seconds ======== program finished with exit code 1 elapsedTime=207.264703