python testrunner/pypyjit_tests.py in dir /buildbot/slave/pypy-c-jit-linux-aarch64/build (timeout 4000 secs) watching logfiles {'pytestLog': 'pypyjit_new.log'} argv: ['python', 'testrunner/pypyjit_tests.py'] environment: AUDITWHEEL_ARCH=aarch64 AUDITWHEEL_PLAT=manylinux_2_28_aarch64 AUDITWHEEL_POLICY=manylinux_2_28 DEVTOOLSET_ROOTPATH=/opt/rh/gcc-toolset-14/root HGDEMANDIMPORT=disable HOME=/home/buildworker HOSTNAME=9945328e1bf1 LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 LC_ALL=en_US.UTF-8 LD_LIBRARY_PATH=/usr/local/lib:/opt/rh/gcc-toolset-14/root/usr/lib64:/opt/rh/gcc-toolset-14/root/usr/lib:/opt/rh/gcc-toolset-14/root/usr/lib64/dyninst:/opt/rh/gcc-toolset-14/root/usr/lib/dyninst OLDPWD=/buildbot/slave PATH=/tmp/venv/bin:/opt/clang/bin:/opt/rh/gcc-toolset-14/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/pypy2.7-v7.3.22-aarch64/bin PKG_CONFIG_PATH=/usr/local/lib/pkgconfig PS1=(venv) PWD=/buildbot/slave/pypy-c-jit-linux-aarch64/build PYPY_LOCALBASE=/usr/local PYPY_MAKE_PORTABLE=1 SHLVL=0 SSL_CERT_FILE=/opt/_internal/certs.pem TERM=xterm TMPDIR=/tmp/pytest VIRTUAL_ENV=/tmp/venv container=podman using PTY: False /tmp/venv/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 linux2 -- Python 2.7.18[pypy-7.3.22-final], pytest-2.9.2, py-1.4.29, pluggy-0.3.1 pytest-2.9.2 from /buildbot/slave/pypy-c-jit-linux-aarch64/build/pytest.pyc rootdir: /buildbot/slave/pypy-c-jit-linux-aarch64/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 ....s... 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 . 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 ...... 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 0x000000003afd28e0> 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)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <rpython.tool.jitlogparser.parser.SimpleParser object at 0x0000000038e5bfa0> loop = <rpython.jit.tool.oparser_model.ExtendedTreeLoop object at 0x0000000038e5b2b8> backend_dump = '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...7bb6f2f0ffdff21000e0f200023fd6d0dfff58b00b00f910a29cd2307bb6f2f0ffdff2b01300f910009ad2307bb6f2f0ffdff21000e0f200023fd6' backend_tp = 'arm', dump_start = 281473699144992L def postprocess(self, loop, backend_dump=None, backend_tp=None, dump_start=0): if backend_dump is not None: raw_asm = self._asm_disassemble(backend_dump.decode('hex'), backend_tp, dump_start) # additional mess: if the backend_dump starts with a series # of zeros, raw_asm's first regular line is *after* that, # after a line saying "...". So we assume that start==dump_start # if this parameter was passed. asm = [] start = dump_start for elem in raw_asm: if len(elem.split("\t")) < 3: continue e = elem.split("\t") adr = e[0] v = elem # --- more compactly: " ".join(e[2:]) if not start: # only if 'dump_start' is left at 0 start = int(adr.strip(":"), 16) ofs = int(adr.strip(":"), 16) - start if ofs >= 0: asm.append((ofs, v.strip("\n"))) asm_index = 0 for i, op in enumerate(loop.operations): end = 0 j = i + 1 while end == 0: if j == len(loop.operations): end = loop.last_offset break if loop.operations[j].offset is None: j += 1 else: end = loop.operations[j].offset if op.offset is not None: > while asm[asm_index][0] < op.offset: E IndexError: list index out of range rpython/tool/jitlogparser/parser.py:141: IndexError ----------------------------- Captured stdout call ----------------------------- loading symbols from /buildbot/slave/pypy-c-jit-linux-aarch64/build/pypy/goal/pypy3.11-c... 23 symbols found ----------------------------- Captured stderr call ----------------------------- 0%..loaded =========================== short test summary info ============================ FAIL pypy/module/pypyjit/test_pypy_c/test_jitlogparser.py::TestLogParser::()::test ======= 1 failed, 1031 passed, 162 skipped, 1 xfailed in 219.49 seconds ======== program finished with exit code 1 elapsedTime=220.612381