python testrunner/pypyjit_tests.py in dir /Users/matti/build-worker-arm64/pypy-c-jit-macos-arm64/build (timeout 4000 secs) watching logfiles {'pytestLog': 'pypyjit_new.log'} argv: ['python', 'testrunner/pypyjit_tests.py'] environment: HOME=/Users/matti HOMEBREW_CELLAR=/opt/homebrew/Cellar HOMEBREW_PREFIX=/opt/homebrew HOMEBREW_REPOSITORY=/opt/homebrew INFOPATH=/opt/homebrew/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-arm64-buildbot/bin:/opt/homebrew/bin:/opt/homebrew/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/Cellar/openssl@1.1/1.1.1t/lib/pkgconfig PWD=/Users/matti/build-worker-arm64/pypy-c-jit-macos-arm64/build PYPY_USESSION_DIR=/tmp/buildbot-arm64 SHELL=/bin/zsh SHLVL=2 SSH_CLIENT=10.0.0.20 54836 22 SSH_CONNECTION=10.0.0.20 54836 10.0.0.16 22 SSH_TTY=/dev/ttys000 TERM=tmux-256color TMPDIR=/tmp/buildbot-arm64/pytest USER=matti _=/Users/matti/oss/pypy-arm64-buildbot/bin/buildslave using PTY: False ============================= test session starts ============================== platform darwin -- Python 2.7.18[pypy-7.3.23-alpha], pytest-3.10.1, py-1.11.0, pluggy-0.11.0 pytest-3.10.1 from /Users/matti/build-worker-arm64/pypy-c-jit-macos-arm64/build/pytest.pyc rootdir: /Users/matti/build-worker-arm64/pypy-c-jit-macos-arm64/build, inifile: pytest.ini collected 1207 items pypy/module/pypyjit/test_pypy_c/test_00_model.py ....................... [ 1%] .. [ 2%] pypy/module/pypyjit/test_pypy_c/test_alloc.py .......................... [ 4%] ......................... [ 6%] pypy/module/pypyjit/test_pypy_c/test_array.py ....s.. [ 6%] pypy/module/pypyjit/test_pypy_c/test_boolrewrite.py .................... [ 8%] ........................................................................ [ 14%] ........................................................................ [ 20%] ........................................................................ [ 26%] ................................................................FFFFF... [ 32%] .................. [ 33%] pypy/module/pypyjit/test_pypy_c/test_buffers.py .. [ 34%] pypy/module/pypyjit/test_pypy_c/test_bug.py s [ 34%] pypy/module/pypyjit/test_pypy_c/test_call.py .......................... [ 36%] pypy/module/pypyjit/test_pypy_c/test_containers.py ..................... [ 38%] . [ 38%] pypy/module/pypyjit/test_pypy_c/test_cprofile.py . [ 38%] pypy/module/pypyjit/test_pypy_c/test_exception.py ..... [ 38%] pypy/module/pypyjit/test_pypy_c/test_ffi.py s..s...... [ 39%] pypy/module/pypyjit/test_pypy_c/test_generators.py ... [ 39%] pypy/module/pypyjit/test_pypy_c/test_getframe.py .. [ 39%] pypy/module/pypyjit/test_pypy_c/test_globals.py . [ 39%] pypy/module/pypyjit/test_pypy_c/test_import.py .. [ 40%] pypy/module/pypyjit/test_pypy_c/test_instance.py ................ [ 41%] pypy/module/pypyjit/test_pypy_c/test_intbound.py ....................... [ 43%] ........................................................................ [ 49%] ........................................................................ [ 55%] ........................................................................ [ 61%] ................................... [ 64%] pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py F [ 64%] pypy/module/pypyjit/test_pypy_c/test_math.py ..s.. [ 64%] pypy/module/pypyjit/test_pypy_c/test_micronumpy.py sssssssssssssssssssss [ 66%] ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss [ 72%] sssssssssssssssssssssssssssssssssssssssssssssssssssssss.F...... [ 77%] pypy/module/pypyjit/test_pypy_c/test_min_max.py ... [ 77%] pypy/module/pypyjit/test_pypy_c/test_misc.py ....................... [ 79%] pypy/module/pypyjit/test_pypy_c/test_shift.py .......................... [ 81%] ........................................................................ [ 87%] ........................................................................ [ 93%] ................................................. [ 97%] pypy/module/pypyjit/test_pypy_c/test_string.py ................ [ 99%] pypy/module/pypyjit/test_pypy_c/test_struct.py ...... [ 99%] pypy/module/pypyjit/test_pypy_c/test_thread.py ... [ 99%] pypy/module/pypyjit/test_pypy_c/test_weakref.py . [100%] =================================== FAILURES =================================== ___________________ TestBoolRewrite.test_boolrewrite_ptr[10] ___________________ self = <pypy.module.pypyjit.test_pypy_c.test_boolrewrite.TestBoolRewrite object at 0x000000012041f408> src = '\n class tst(object):\n pass\n def main():\n ... if i > 750:\n a = b\n return sa\n ' args = [], jitopts = {} def run_and_check(self, src, args=[], **jitopts): > log1 = self.run(src, args, threshold=-1) # without the JIT pypy/module/pypyjit/test_pypy_c/test_00_model.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pypy/module/pypyjit/test_pypy_c/test_00_model.py:67: in run stderr=subprocess.PIPE) lib-python/2.7/subprocess.py:409: in __init__ errread, errwrite) lib-python/2.7/subprocess.py:958: in _execute_child errpipe_read, errpipe_write = self.pipe_cloexec() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <subprocess.Popen object at 0x000000012284d8d8> def pipe_cloexec(self): """Create a pipe with FDs set CLOEXEC.""" # Pipes' FDs are set CLOEXEC by default because we don't want them # to be inherited by other subprocesses: the CLOEXEC flag is removed # from the child's FDs by _dup2(), between fork() and exec(). # This is not atomic: we would need the pipe2() syscall for that. > r, w = os.pipe() E OSError: [Errno 24] Too many open files lib-python/2.7/subprocess.py:895: OSError ___________________ TestBoolRewrite.test_boolrewrite_ptr[11] ___________________ self = <pypy.module.pypyjit.test_pypy_c.test_boolrewrite.TestBoolRewrite object at 0x000000012041f408> src = '\n class tst(object):\n pass\n def main():\n ... if i > 750:\n a = b\n return sa\n ' args = [], jitopts = {} def run_and_check(self, src, args=[], **jitopts): > log1 = self.run(src, args, threshold=-1) # without the JIT pypy/module/pypyjit/test_pypy_c/test_00_model.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pypy/module/pypyjit/test_pypy_c/test_00_model.py:67: in run stderr=subprocess.PIPE) lib-python/2.7/subprocess.py:409: in __init__ errread, errwrite) lib-python/2.7/subprocess.py:958: in _execute_child errpipe_read, errpipe_write = self.pipe_cloexec() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <subprocess.Popen object at 0x0000000132d2d718> def pipe_cloexec(self): """Create a pipe with FDs set CLOEXEC.""" # Pipes' FDs are set CLOEXEC by default because we don't want them # to be inherited by other subprocesses: the CLOEXEC flag is removed # from the child's FDs by _dup2(), between fork() and exec(). # This is not atomic: we would need the pipe2() syscall for that. > r, w = os.pipe() E OSError: [Errno 24] Too many open files lib-python/2.7/subprocess.py:895: OSError ___________________ TestBoolRewrite.test_boolrewrite_ptr[12] ___________________ self = <pypy.module.pypyjit.test_pypy_c.test_boolrewrite.TestBoolRewrite object at 0x000000012041f408> src = '\n class tst(object):\n pass\n def main():\n ... if i > 750:\n a = b\n return sa\n ' args = [], jitopts = {} def run_and_check(self, src, args=[], **jitopts): > log1 = self.run(src, args, threshold=-1) # without the JIT pypy/module/pypyjit/test_pypy_c/test_00_model.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pypy/module/pypyjit/test_pypy_c/test_00_model.py:67: in run stderr=subprocess.PIPE) lib-python/2.7/subprocess.py:409: in __init__ errread, errwrite) lib-python/2.7/subprocess.py:958: in _execute_child errpipe_read, errpipe_write = self.pipe_cloexec() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <subprocess.Popen object at 0x0000000133331a60> def pipe_cloexec(self): """Create a pipe with FDs set CLOEXEC.""" # Pipes' FDs are set CLOEXEC by default because we don't want them # to be inherited by other subprocesses: the CLOEXEC flag is removed # from the child's FDs by _dup2(), between fork() and exec(). # This is not atomic: we would need the pipe2() syscall for that. > r, w = os.pipe() E OSError: [Errno 24] Too many open files lib-python/2.7/subprocess.py:895: OSError ___________________ TestBoolRewrite.test_boolrewrite_ptr[13] ___________________ self = <pypy.module.pypyjit.test_pypy_c.test_boolrewrite.TestBoolRewrite object at 0x000000012041f408> src = '\n class tst(object):\n pass\n def main():\n ... if i > 750:\n a = b\n return sa\n ' args = [], jitopts = {} def run_and_check(self, src, args=[], **jitopts): > log1 = self.run(src, args, threshold=-1) # without the JIT pypy/module/pypyjit/test_pypy_c/test_00_model.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pypy/module/pypyjit/test_pypy_c/test_00_model.py:67: in run stderr=subprocess.PIPE) lib-python/2.7/subprocess.py:409: in __init__ errread, errwrite) lib-python/2.7/subprocess.py:958: in _execute_child errpipe_read, errpipe_write = self.pipe_cloexec() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <subprocess.Popen object at 0x0000000131a5a0c8> def pipe_cloexec(self): """Create a pipe with FDs set CLOEXEC.""" # Pipes' FDs are set CLOEXEC by default because we don't want them # to be inherited by other subprocesses: the CLOEXEC flag is removed # from the child's FDs by _dup2(), between fork() and exec(). # This is not atomic: we would need the pipe2() syscall for that. > r, w = os.pipe() E OSError: [Errno 24] Too many open files lib-python/2.7/subprocess.py:895: OSError ___________________ TestBoolRewrite.test_boolrewrite_ptr[14] ___________________ self = <pypy.module.pypyjit.test_pypy_c.test_boolrewrite.TestBoolRewrite object at 0x000000012041f408> src = '\n class tst(object):\n pass\n def main():\n ... if i > 750:\n a = b\n return sa\n ' args = [], jitopts = {} def run_and_check(self, src, args=[], **jitopts): > log1 = self.run(src, args, threshold=-1) # without the JIT pypy/module/pypyjit/test_pypy_c/test_00_model.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pypy/module/pypyjit/test_pypy_c/test_00_model.py:67: in run stderr=subprocess.PIPE) lib-python/2.7/subprocess.py:409: in __init__ errread, errwrite) lib-python/2.7/subprocess.py:958: in _execute_child errpipe_read, errpipe_write = self.pipe_cloexec() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <subprocess.Popen object at 0x00000001223ee1a8> def pipe_cloexec(self): """Create a pipe with FDs set CLOEXEC.""" # Pipes' FDs are set CLOEXEC by default because we don't want them # to be inherited by other subprocesses: the CLOEXEC flag is removed # from the child's FDs by _dup2(), between fork() and exec(). # This is not atomic: we would need the pipe2() syscall for that. > r, w = os.pipe() E OSError: [Errno 24] Too many open files lib-python/2.7/subprocess.py:895: OSError ______________________________ TestLogParser.test ______________________________ self = <pypy.module.pypyjit.test_pypy_c.test_jitlogparser.TestLogParser object at 0x0000000120ce5cc8> def test(self): def fn_with_bridges(N): def is_prime(x): for y in xrange(2, x): if x % y == 0: return False return True result = 0 for x in xrange(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 = {} lib_re = re.compile("file '.*lib-python.*'") for loop in loops: if hasattr(loop, 'force_asm'): try: > loop.force_asm() pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py:46: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 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\...a\xd2\xf0@\xa0\xf20\x00\xc0\xf2\xb0\x13\x00\xf9\x10\x00\x88\xd2\xf0@\xa0\xf20\x00\xc0\xf2\x10\x00\xe0\xf2\x00\x02?\xd6' originaddr = 4329002352L, backend_name = 'arm', 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-arm64/pypy-c-jit-macos-arm64/build/pypy/goal/pypy-c... 3 symbols found ----------------------------- Captured stderr call ----------------------------- 0%..loaded ____________________ TestMicroNumPy.test_reduce_logical_and ____________________ self = <pypy.module.pypyjit.test_pypy_c.test_micronumpy.TestMicroNumPy object at 0x0000000124a75558> def test_reduce_logical_and(self): def main(): import _numpypy.multiarray as np import _numpypy.umath as um arr = np.array([1.0] * 1500) return um.logical_and.reduce(arr) log = self.run(main, []) assert log.result is True assert len(log.loops) == 1 loop = log._filter(log.loops[0]) if IS_RISCV: # The order of %(align_check)s and guard_not_invalidated(descr=...) # in the RISCV backend is different from other backends. loop.match(""" guard_not_invalidated(descr=...) %(align_check)s f31 = raw_load_f(i9, i29, descr=<ArrayF 8>) i32 = float_ne(f31, 0.000000) guard_true(i32, descr=...) i36 = int_add(i24, 1) i37 = int_add(i29, 8) i38 = int_ge(i36, i30) guard_false(i38, descr=...) jump(..., descr=...) """ % {'align_check': align_check('i29')}) else: loop.match(""" %(align_check)s guard_not_invalidated(descr=...) f31 = raw_load_f(i9, i29, descr=<ArrayF 8>) i32 = float_ne(f31, 0.000000) guard_true(i32, descr=...) i36 = int_add(i24, 1) i37 = int_add(i29, 8) i38 = int_ge(i36, i30) guard_false(i38, descr=...) jump(..., descr=...) > """ % {'align_check': align_check('i29')}) pypy/module/pypyjit/test_pypy_c/test_micronumpy.py:237: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ pypy/module/pypyjit/test_pypy_c/model.py:186: in match return matcher.match(expected_src, **kwds) pypy/module/pypyjit/test_pypy_c/model.py:527: in match self.match_loop(expected_ops, ignore_ops) pypy/module/pypyjit/test_pypy_c/model.py:503: in match_loop self.match_op(op, exp_op) pypy/module/pypyjit/test_pypy_c/model.py:412: in match_op self._assert(op.name == exp_opname, "operation mismatch") _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <pypy.module.pypyjit.test_pypy_c.model.OpMatcher object at 0x00000001249ab1a0> 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:405: InvalidMatch ----------------------------- Captured stdout call ----------------------------- @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Loops don't match ================= loop id = None ('operation mismatch',) <could not determine information> Ignore ops: [] Got: ===== HERE ===== guard_not_invalidated(descr=<Guard0x1305ec0b0>) i39 = int_and(i35, 7) i40 = int_is_zero(i39) guard_true(i40, descr=<Guard0x1305e6b60>) f41 = raw_load_f(i9, i35, descr=<ArrayF 8>) i43 = float_ne(f41, 0.000000) guard_true(i43, descr=<Guard0x1305e6b90>) i45 = int_add(i28, 1) i47 = int_add(i35, 8) i48 = int_ge(i45, i36) guard_false(i48, descr=<Guard0x1305e6bc0>) jump(p29, i45, p1, i47, p4, p6, i9, i36, descr=TargetToken(5106475104)) Expected: i10096 = int_and(i29, 7) i10097 = int_is_zero(i10096) guard_true(i10097, descr=...) guard_not_invalidated(descr=...) f31 = raw_load_f(i9, i29, descr=<ArrayF 8>) i32 = float_ne(f31, 0.000000) guard_true(i32, descr=...) i36 = int_add(i24, 1) i37 = int_add(i29, 8) i38 = int_ge(i36, i30) guard_false(i38, descr=...) jump(..., descr=...) =========================== short test summary info ============================ FAIL pypy/module/pypyjit/test_pypy_c/test_boolrewrite.py::TestBoolRewrite::()::test_boolrewrite_ptr::[10] FAIL pypy/module/pypyjit/test_pypy_c/test_boolrewrite.py::TestBoolRewrite::()::test_boolrewrite_ptr::[11] FAIL pypy/module/pypyjit/test_pypy_c/test_boolrewrite.py::TestBoolRewrite::()::test_boolrewrite_ptr::[12] FAIL pypy/module/pypyjit/test_pypy_c/test_boolrewrite.py::TestBoolRewrite::()::test_boolrewrite_ptr::[13] FAIL pypy/module/pypyjit/test_pypy_c/test_boolrewrite.py::TestBoolRewrite::()::test_boolrewrite_ptr::[14] FAIL pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py::TestLogParser::()::test FAIL pypy/module/pypyjit/test_pypy_c/test_micronumpy.py::TestMicroNumPy::()::test_reduce_logical_and =============================== warnings summary =============================== _pytest/resultlog.py:39 /Users/matti/build-worker-arm64/pypy-c-jit-macos-arm64/build/_pytest/resultlog.py:39: RemovedInPytest4Warning: --result-log is deprecated and scheduled for removal in pytest 4.0. See https://docs.pytest.org/en/latest/usage.html#creating-resultlog-format-files for more information. _issue_config_warning(RESULT_LOG, config) -- Docs: https://docs.pytest.org/en/latest/warnings.html ======= 7 failed, 1047 passed, 153 skipped, 1 warnings in 73.32 seconds ======== program finished with exit code 1 elapsedTime=73.613479