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 ============================= test session starts ============================== platform linux2 -- Python 2.7.18[pypy-8.0.0-alpha], 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 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 ...................................................................................................................................................................................................................................................................................................................................... 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 .......................... 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 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 ................ 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 0x000000002a432950> 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)) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <rpython.tool.jitlogparser.parser.SimpleParser object at 0x000000002a374218> loop = <rpython.jit.tool.oparser_model.ExtendedTreeLoop object at 0x000000002a327d00> backend_dump = '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...49b1f2f0ffdff21000e0f200023fd6d0d3ff58b00b00f910ac9ad2b049b1f2f0ffdff2b01300f9100098d2b049b1f2f0ffdff21000e0f200023fd6' backend_tp = 'arm', dump_start = 281473002100080L 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/pypy-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, 1046 passed, 160 skipped in 108.26 seconds ============= program finished with exit code 1 elapsedTime=108.792736