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-2.9.2, py-1.4.29, pluggy-0.3.1 pytest-2.9.2 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 ......................... pypy/module/pypyjit/test_pypy_c/test_alloc.py ................................................... pypy/module/pypyjit/test_pypy_c/test_array.py ....s.. pypy/module/pypyjit/test_pypy_c/test_boolrewrite.py ................................................................................................................................................................................................................................................................F..................................................................... 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 .......................... pypy/module/pypyjit/test_pypy_c/test_containers.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_jitlogparser.py F pypy/module/pypyjit/test_pypy_c/test_math.py ..s.. pypy/module/pypyjit/test_pypy_c/test_micronumpy.py ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss.F...... 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 ................ pypy/module/pypyjit/test_pypy_c/test_struct.py ...... pypy/module/pypyjit/test_pypy_c/test_thread.py ... pypy/module/pypyjit/test_pypy_c/test_weakref.py . =================================== FAILURES =================================== ____________ TestBoolRewrite.test_boolrewrite_allcases_reflex[110] _____________ self = <pypy.module.pypyjit.test_pypy_c.test_boolrewrite.TestBoolRewrite object at 0x0000000130b5d980> src = '\n def main():\n sa = 0\n for i in range... else:\n sa += 20000\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 0x00000001313361a8> 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 0x00000001336253d0> 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\xd20\x81\xa0\xf20\x00\xc0\xf2\xb0\x13\x00\xf9\x10\x00\x98\xd20\x81\xa0\xf20\x00\xc0\xf2\x10\x00\xe0\xf2\x00\x02?\xd6' originaddr = 4362720624L, 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 0x00000001128af408> 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 0x00000001128d8de8> 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=<Guard0x1285ec0b0>) i39 = int_and(i35, 7) i40 = int_is_zero(i39) guard_true(i40, descr=<Guard0x1285e6b60>) f41 = raw_load_f(i9, i35, descr=<ArrayF 8>) i43 = float_ne(f41, 0.000000) guard_true(i43, descr=<Guard0x1285e6b90>) i45 = int_add(i28, 1) i47 = int_add(i35, 8) i48 = int_ge(i45, i36) guard_false(i48, descr=<Guard0x1285e6bc0>) jump(p29, i45, p1, i47, p4, p6, i9, i36, descr=TargetToken(4972257376)) 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_allcases_reflex::[110] 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 ============= 3 failed, 1051 passed, 153 skipped in 60.74 seconds ============== program finished with exit code 1 elapsedTime=60.962468