virt_test/bin/python testrunner/runner.py --logfile=testrun.log --config=pypy/testrunner_cfg.py '--config=~/machine_cfg.py' --root=pypy --timeout=4000
in dir /build_dir/own-linux-x86-64/build (timeout 4000 secs)
watching logfiles {'pytestLog': 'testrun.log'}
argv: ['virt_test/bin/python', 'testrunner/runner.py', '--logfile=testrun.log', '--config=pypy/testrunner_cfg.py', '--config=~/machine_cfg.py', '--root=pypy', '--timeout=4000']
environment:
AUDITWHEEL_ARCH=x86_64
AUDITWHEEL_PLAT=manylinux2014_x86_64
AUDITWHEEL_POLICY=manylinux2014
DEVTOOLSET_ROOTPATH=/opt/rh/devtoolset-10/root
HOME=/home/buildslave
HOSTNAME=255659ffae49
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
LD_LIBRARY_PATH=/usr/local/lib:/opt/rh/devtoolset-10/root/usr/lib64:/opt/rh/devtoolset-10/root/usr/lib:/opt/rh/devtoolset-10/root/usr/lib64/dyninst:/opt/rh/devtoolset-10/root/usr/lib/dyninst:/usr/local/lib64
LOGNAME=buildslave
PATH=/python27_virt/bin:/opt/rh/devtoolset-10/root/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig
PWD=/build_dir/own-linux-x86-64/build
PYPYCHERRYPICK=
PYPY_LOCALBASE=/usr/local
PYPY_MAKE_PORTABLE=1
PYPY_USESSION_DIR=/tmp/pytest
PYTHONPATH=.:
SHELL=/bin/bash
SHLVL=2
SSL_CERT_FILE=/opt/_internal/certs.pem
TERM=xterm
TMPDIR=/tmp/pytest
USER=buildslave
USE_CURL=1
_=/python27_virt/bin/buildslave
using PTY: False
using config pypy/testrunner_cfg.py
using config /home/buildslave/machine_cfg.py
running 4 parallel test workers
setting MAKEFLAGS to ' ' (space)
-- config/test
-- interpreter/astcompiler/test
-- interpreter/pyparser/test
-- interpreter/test
-- module/__builtin__/test
-- module/__pypy__/test
-- module/_abc/test
-- module/_ast/test
-- module/_cffi_backend/test
-- module/_codecs/test
-- module/_collections/test
-- module/_continuation/test
-- module/_cppyy/test
-- module/_csv/test
-- module/_demo/test
-- module/_hpy_universal/test/_vendored
-- module/_hpy_universal/test/pypy
-- module/_io/test
-- module/_jitlog/test
-- module/_locale/test
-- module/_lsprof/test
-- module/_md5/test
-- module/_minimal_curses/test
-- module/_multibytecodec/test
-- module/_multiprocessing/test
-- module/_opcode/test
-- module/_pickle/test
-- module/_pickle_support/test
-- module/_posixsubprocess/test
-- module/_pypyjson/test
-- module/_random/test
-- module/_rawffi/alt/test
-- module/_rawffi/test
-- module/_socket/test
-- module/_sre/test
-- module/_vmprof/test
-- module/_warnings/test
-- module/_weakref/test
-- module/_winreg/test
-- module/array/test
-- module/atexit/test
-- module/binascii/test
-- module/bz2/test
-- module/cmath/test
-- module/cpyext/test/test_api.py
-- module/cpyext/test/test_arraymodule.py
-- module/cpyext/test/test_async_iter.py
-- module/cpyext/test/test_boolobject.py
-- module/cpyext/test/test_borrow.py
-- module/cpyext/test/test_buffer.py
-- module/cpyext/test/test_bytearrayobject.py
-- module/cpyext/test/test_bytesobject.py
-- module/cpyext/test/test_capsule.py
-- module/cpyext/test/test_cell.py
-- module/cpyext/test/test_classobject.py
-- module/cpyext/test/test_codecs.py
-- module/cpyext/test/test_complexobject.py
-- module/cpyext/test/test_contextvars.py
-- module/cpyext/test/test_cpyext.py
-- module/cpyext/test/test_datetime.py
-- module/cpyext/test/test_dictobject.py
-- module/cpyext/test/test_eval.py
-- module/cpyext/test/test_exception.py
-- module/cpyext/test/test_fileobject.py
-- module/cpyext/test/test_floatobject.py
-- module/cpyext/test/test_frameobject.py
-- module/cpyext/test/test_funcobject.py
-- module/cpyext/test/test_genobject.py
-- module/cpyext/test/test_getargs.py
-- module/cpyext/test/test_import.py
-- module/cpyext/test/test_iterator.py
-- module/cpyext/test/test_listobject.py
-- module/cpyext/test/test_longobject.py
-- module/cpyext/test/test_mapping.py
-- module/cpyext/test/test_marshal.py
-- module/cpyext/test/test_memoryobject.py
-- module/cpyext/test/test_methodobject.py
-- module/cpyext/test/test_misc.py
-- module/cpyext/test/test_module.py
-- module/cpyext/test/test_namespaceobject.py
-- module/cpyext/test/test_ndarrayobject.py
-- module/cpyext/test/test_number.py
-- module/cpyext/test/test_object.py
-- module/cpyext/test/test_pyerrors.py
-- module/cpyext/test/test_pyfile.py
-- module/cpyext/test/test_pymem.py
-- module/cpyext/test/test_pysignals.py
-- module/cpyext/test/test_pystate.py
-- module/cpyext/test/test_pystrhex.py
-- module/cpyext/test/test_pystrtod.py
-- module/cpyext/test/test_sequence.py
-- module/cpyext/test/test_setobject.py
-- module/cpyext/test/test_sliceobject.py
-- module/cpyext/test/test_structseq.py
-- module/cpyext/test/test_sysmodule.py
-- module/cpyext/test/test_thread.py
-- module/cpyext/test/test_traceback.py
-- module/cpyext/test/test_translate.py
-- module/cpyext/test/test_tupleobject.py
-- module/cpyext/test/test_typeobject.py
-- module/cpyext/test/test_unicodeobject.py
-- module/cpyext/test/test_userslots.py
-- module/cpyext/test/test_version.py
-- module/cpyext/test/test_weakref.py
-- module/crypt/test
-- module/errno/test
-- module/exceptions/test
-- module/faulthandler/test
-- module/fcntl/test
-- module/gc/test
-- module/imp/test
-- module/itertools/test
-- module/marshal/test
-- module/math/test
-- module/micronumpy/test
-- module/mmap/test
-- module/operator/test
-- module/posix/test
-- module/pwd/test
-- module/pyexpat/test
-- module/pypyjit/test
-- module/select/test
-- module/signal/test
-- module/struct/test
-- module/sys/test
-- module/termios/test
-- module/test_lib_pypy
-- module/thread/test
-- module/time/test
-- module/token/test
-- module/unicodedata/test
-- module/zipimport/test
-- module/zlib/test
-- objspace/fake/test
-- objspace/std/test
-- objspace/test
-- sandbox/test
-- tool/bench/test
-- tool/memusage/test
-- tool/pytest/fake_pytest/test
-- tool/pytest/test
-- tool/release/test
-- tool/test
-- total: 143 to run
++ 20:19:45 starting config/test [1 started in total]
++ 20:19:45 starting interpreter/astcompiler/test [2 started in total]
++ 20:19:45 starting interpreter/pyparser/test [3 started in total]
++ 20:19:45 starting interpreter/test [4 started in total]
__ config/test [1 done in total, somefailed=False] ____________________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.py
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 161 items / 1 skipped
config/test/test_pypyoption.py .................................................................................................................................................................
==================== 161 passed, 1 skipped in 5.50 seconds =====================
++ 20:19:52 starting module/__builtin__/test [5 started in total]
__ module/__builtin__/test [2 done in total, somefailed=False] ________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 319 items
module/__builtin__/test/apptest_compile.py .....................
module/__builtin__/test/apptest_descriptor.py .....
module/__builtin__/test/apptest_operator.py ...
module/__builtin__/test/apptest_print.py ...
module/__builtin__/test/test_abstractinst.py ..........s..
module/__builtin__/test/test_breakpoint.py ........
module/__builtin__/test/test_builtin.py .......................................................................
module/__builtin__/test/test_compile.py ..
module/__builtin__/test/test_construct_singletons.py .
module/__builtin__/test/test_descriptor.py ...................................
module/__builtin__/test/test_dir.py ...........
module/__builtin__/test/test_filter.py ........
module/__builtin__/test/test_filter_pickle.py .....
module/__builtin__/test/test_format.py .
module/__builtin__/test/test_functional.py ........................................................................................
module/__builtin__/test/test_map_pickle.py ...
module/__builtin__/test/test_minmax.py .......................
module/__builtin__/test/test_rawinput.py ..
module/__builtin__/test/test_sum.py .
module/__builtin__/test/test_vars.py ...
module/__builtin__/test/test_zip.py ...........
module/__builtin__/test/test_zip_pickle.py .
==================== 318 passed, 1 skipped in 84.30 seconds ====================
++ 20:21:19 starting module/__pypy__/test [6 started in total]
__ module/__pypy__/test [3 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 81 items
module/__pypy__/test/apptest_picklebuffer.py ......
module/__pypy__/test/test_builders.py .....
module/__pypy__/test/test_bytebuffer.py ...
module/__pypy__/test/test_debug.py .......
module/__pypy__/test/test_identitydict.py ......
module/__pypy__/test/test_intop.py ...........
module/__pypy__/test/test_locals2fast.py .....
module/__pypy__/test/test_magic.py .......s..
module/__pypy__/test/test_newmemoryview.py ........
module/__pypy__/test/test_os.py .
module/__pypy__/test/test_signal.py ..s.s
module/__pypy__/test/test_special.py ............s.
==================== 77 passed, 4 skipped in 93.65 seconds =====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f0cf2e28710>> ignored
++ 20:22:54 starting module/_abc/test [7 started in total]
__ module/_abc/test [4 done in total, somefailed=False] _______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 6 items
module/_abc/test/apptest_abc.py ...
module/_abc/test/test_abc.py ...
========================== 6 passed in 30.74 seconds ===========================
++ 20:23:26 starting module/_ast/test [8 started in total]
__ interpreter/pyparser/test [5 done in total, somefailed=True] _______________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 242 items
interpreter/pyparser/test/apptest_parsestring.py ....F.
interpreter/pyparser/test/test_automata.py ...
interpreter/pyparser/test/test_future.py ...................................
interpreter/pyparser/test/test_gendfa.py ....
interpreter/pyparser/test/test_parsestring.py ............
interpreter/pyparser/test/test_pylexer.py .
interpreter/pyparser/test/test_pyparse.py .......................................................................................F........................
interpreter/pyparser/test/test_pytokenizer.py ............................................F.F............F.........
=================================== FAILURES ===================================
____________________ test_invalid_escape_syntax_error_span _____________________
def test_invalid_escape_syntax_error_span():
# When -Werror promotes the SyntaxWarning to a SyntaxError, the
# error should highlight the full string token, not just one character.
# E.g. for '"""\q"""' (8 chars) the end offset must be start+8.
with warnings.catch_warnings(record=True) as w:
warnings.simplefilter('error', category=SyntaxWarning)
with raises(SyntaxError) as excinfo:
eval('"""\\q"""')
assert not w
exc = excinfo.value
# offset is 1-based column of opening quote; end_offset covers
# the full token '"""\q"""' (8 chars).
> assert exc.end_offset - exc.offset == len('"""\\q"""')
E (application-level) AssertionError: assert (8 != 1) == 8
E + where 8 = SyntaxError("invalid escape sequence '\\q'", ('<string>', 1, 1, '"""\\q"""', 1, 8)).end_offset
E + and 1 = SyntaxError("invalid escape sequence '\\q'", ('<string>', 1, 1, '"""\\q"""', 1, 8)).offset
E + and 8 = len('"""\\q"""')
interpreter/pyparser/test/apptest_parsestring.py:69: AssertionError
____________________ TestFString.test_exception_precedence _____________________
self = <pypy.interpreter.pyparser.test.test_pyparse.TestFString instance at 0x7fd57dcf3640>
def test_exception_precedence(self):
# Tests for f-string-related error messages even under tokenization errors
with pytest.raises(SyntaxError) as excinfo:
self.parse("f'{3!:'")
assert excinfo.value.msg == "f-string: missing conversion character"
with pytest.raises(SyntaxError) as excinfo:
self.parse("f'{\n3!:'")
assert excinfo.value.msg == "'{' was never closed"
with pytest.raises(SyntaxError) as excinfo:
self.parse("f'{3!:")
assert excinfo.value.msg == "f-string: missing conversion character"
with pytest.raises(SyntaxError) as excinfo:
self.parse("f'{\n3!:")
assert excinfo.value.msg == "f-string: missing conversion character"
exc = pytest.raises(SyntaxError, self.parse, '\n\nf"{$}"').value
assert exc.msg == "f-string: expecting a valid expression after '{'"
> assert exc.text == 'f"{$}"\n'
E assert 'f"{$}"' == 'f"{$}"\n'
E f"{$}"
interpreter/pyparser/test/test_pyparse.py:591: AssertionError
________________ test_f_string[format specifier: interpolation] ________________
source = 'f"result: {value:{width}.{precision}}"\n'
expected = [(7, 'f"', 1, 0, 1, 2), (8, 'result: ', 1, 2, 1, 10), (29, '{', 1, 10, 1, 11), (1, 'value', 1, 11, 1, 16), (14, ':', 1, 16, 1, 17), (8, '', 1, 17, 1, 17), ...]
@_parametrize("source, expected", _fstring_tests)
def test_f_string(source, expected):
lines = source.splitlines(True)
tks = tokenize(source)
assert tks[: len(expected)] == [
Token(
tk_type,
value,
lineno,
col_offset,
lines[end_lineno - 1],
end_lineno,
end_col_offset,
)
> for tk_type, value, lineno, col_offset, end_lineno, end_col_offset in expected
]
E assert [Token(FSTRIN...RACE, {), ...] == [Token(FSTRING...IDDLE, ), ...]
E At index 5 diff: Token(LBRACE, {) != Token(FSTRING_MIDDLE, )
E Use -v to get the full diff
interpreter/pyparser/test/test_pytokenizer.py:796: AssertionError
________________ test_f_string[format specifier: double braces] ________________
source = 'f"{x:{{}}b"}\n'
expected = [(7, 'f"', 1, 0, 1, 2), (29, '{', 1, 2, 1, 3), (1, 'x', 1, 3, 1, 4), (14, ':', 1, 4, 1, 5), (8, '', 1, 5, 1, 5), (29, '{', 1, 5, 1, 6), ...]
@_parametrize("source, expected", _fstring_tests)
def test_f_string(source, expected):
lines = source.splitlines(True)
tks = tokenize(source)
assert tks[: len(expected)] == [
Token(
tk_type,
value,
lineno,
col_offset,
lines[end_lineno - 1],
end_lineno,
end_col_offset,
)
> for tk_type, value, lineno, col_offset, end_lineno, end_col_offset in expected
]
E assert [Token(FSTRIN...RACE, {), ...] == [Token(FSTRING...RACE, {), ...]
E At index 4 diff: Token(LBRACE, {) != Token(FSTRING_MIDDLE, )
E Use -v to get the full diff
interpreter/pyparser/test/test_pytokenizer.py:796: AssertionError
____________________ test_f_string[format specifier bug 2] _____________________
source = "f'result: {value:{width:0}.{precision:1}}'\n"
expected = [(7, "f'", 1, 0, 1, 2), (8, 'result: ', 1, 2, 1, 10), (29, '{', 1, 10, 1, 11), (1, 'value', 1, 11, 1, 16), (14, ':', 1, 16, 1, 17), (8, '', 1, 17, 1, 17), ...]
@_parametrize("source, expected", _fstring_tests)
def test_f_string(source, expected):
lines = source.splitlines(True)
tks = tokenize(source)
assert tks[: len(expected)] == [
Token(
tk_type,
value,
lineno,
col_offset,
lines[end_lineno - 1],
end_lineno,
end_col_offset,
)
> for tk_type, value, lineno, col_offset, end_lineno, end_col_offset in expected
]
E assert [Token(FSTRIN...RACE, {), ...] == [Token(FSTRING...IDDLE, ), ...]
E At index 5 diff: Token(LBRACE, {) != Token(FSTRING_MIDDLE, )
E Use -v to get the full diff
interpreter/pyparser/test/test_pytokenizer.py:796: AssertionError
=========================== short test summary info ============================
FAIL interpreter/pyparser/test/apptest_parsestring.py::test_invalid_escape_syntax_error_span
FAIL interpreter/pyparser/test/test_pyparse.py::TestFString::()::test_exception_precedence
FAIL interpreter/pyparser/test/test_pytokenizer.py::test_f_string[format specifier: interpolation]
FAIL interpreter/pyparser/test/test_pytokenizer.py::test_f_string[format specifier: double braces]
FAIL interpreter/pyparser/test/test_pytokenizer.py::test_f_string[format specifier bug 2]
==================== 5 failed, 237 passed in 47.45 seconds =====================
++ 20:23:46 starting module/_cffi_backend/test [9 started in total]
__ interpreter/astcompiler/test [6 done in total, somefailed=True] ____________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.py
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1553 items
interpreter/astcompiler/test/apptest_compiler.py ......
interpreter/astcompiler/test/apptest_exceptiongroup.py F...................F.F..
interpreter/astcompiler/test/apptest_fstring.py ........................
interpreter/astcompiler/test/apptest_misc.py ...............
interpreter/astcompiler/test/apptest_patma.py ................................F........
interpreter/astcompiler/test/test_assemble.py .......................
interpreter/astcompiler/test/test_ast.py ............
interpreter/astcompiler/test/test_astbuilder.py .......FF.................................................................................................x......
interpreter/astcompiler/test/test_compiler.py .......................................................................................................................................................................................................................................................................................................................................................................................................................................................................FF................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
interpreter/astcompiler/test/test_misc.py ...............
interpreter/astcompiler/test/test_symtable.py .................................................
interpreter/astcompiler/test/test_unparse.py ................................
interpreter/astcompiler/test/test_validate.py .....................................................
=================================== FAILURES ===================================
_______________________ test_with_try_except_as_reraise ________________________
def test_with_try_except_as_reraise():
"""with + try/except T as name where the handler raises: the new exception
must propagate through the with block's __exit__ without crashing.
Mirrors import_helper.import_module: with CM(): try: ... except E as msg: raise Other"""
class CM:
def __init__(self): self.exited = False; self.exc_type = None
def __enter__(self): return self
def __exit__(self, tp, val, tb):
self.exited = True
self.exc_type = tp
return False # do not suppress
cm = CM()
# normal_return=True exercises the normal-exit path so POP_BLOCK fires,
# mirroring import_helper.import_module which also has a normal return.
def inner(cm, raise_in_handler):
with cm:
try:
if raise_in_handler:
raise ValueError("original")
return "ok"
except ValueError as e:
raise TypeError("new")
print("=== dis(inner) ===")
> dis.dis(inner)
interpreter/astcompiler/test/apptest_exceptiongroup.py:31:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object inner, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/astcompiler/test/apptest_exceptiongroup.py", line 21>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object inner, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/astcompiler/test/apptest_exceptiongroup.py", line 21>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object inner, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/astcompiler/test/apptest_exceptiongroup.py", line 21>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x005\x00\x01\x00\t\x00|\x01r\nt\x00d\x01\x83\x01\x82\x01\t\x0...0w\x01#\x001\x00s*w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00d\x00S\x00')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('ValueError'), W_UnicodeObject('TypeError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7fae6e398310>, W_UnicodeObject('original'), W_UnicodeObject('ok'), W_UnicodeObject('new'))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7fae6d378f50>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x005\x00\x01\x00\t\x00|\x01r\nt\x00d\x01\x83\x01\x82\x01\t\x0...0w\x01#\x001\x00s*w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00d\x00S\x00')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('ValueError'), W_UnicodeObject('TypeError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7fae6e398310>, W_UnicodeObject('original'), W_UnicodeObject('ok'), W_UnicodeObject('new'))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7fae6d378f50>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7fae...ct(84), W_IntObject(86), W_IntObject(78), W_IntObject(3), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7fae69d47390>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== dis(inner) ===
22 0 LOAD_FAST 0 (cm)
2 BEFORE_WITH
4 POP_TOP
23 6 NOP
24 8 LOAD_FAST 1 (raise_in_handler)
10 POP_JUMP_IF_FALSE 10 (to 20)
25 12 LOAD_GLOBAL 0 (ValueError)
22 22 LOAD_CONST 0 (None)
24 DUP_TOP
26 DUP_TOP
_______________________ test_except_star_cleanup_lineno ________________________
def test_except_star_cleanup_lineno():
"""Cleanup opcodes (LIST_APPEND) after except* must not be attributed to a
line before the except* clause (e.g. co_firstlineno of the function) — that
would misreport where the cleanup runs."""
def func():
try:
raise KeyError
except* Exception as e:
pass
> except_star_line = _except_star_clause_line(func)
interpreter/astcompiler/test/apptest_exceptiongroup.py:372:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
func = <Function func>
def _except_star_clause_line(func):
"""Return the line number of the except* clause in func via CHECK_EG_MATCH."""
> instrs = list(dis.get_instructions(func))
interpreter/astcompiler/test/apptest_exceptiongroup.py:357:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00t\x00\x82\x01#\x00&\x01g\x00c\x02t\x01%\x00&\x01\x9a\x0b}...1\x9e\x07\x01\x00Y\x00d\x00S\x00c\x02Y\x00w\x00c\x02Y\x00w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('KeyError'), W_UnicodeObject('Exception'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7fae6e398310>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7fae6d378f50>)
line_offset = W_IntObject(0), exception_entries = W_TupleObject()
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7fae6951f490>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
_____________________ test_except_star_trace_return_lineno _____________________
def test_except_star_trace_return_lineno():
"""The 'return' trace event after an except* block should report the except*
clause line, not co_firstlineno (which was the wrong pre-fix behaviour)."""
events = []
def tracer(frame, event, arg):
if frame.f_code.co_name == 'func':
events.append((event, frame.f_lineno))
return tracer
def func():
try:
raise KeyError
except* Exception as e:
pass
> except_star_line = _except_star_clause_line(func)
interpreter/astcompiler/test/apptest_exceptiongroup.py:425:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
func = <Function func>
def _except_star_clause_line(func):
"""Return the line number of the except* clause in func via CHECK_EG_MATCH."""
> instrs = list(dis.get_instructions(func))
interpreter/astcompiler/test/apptest_exceptiongroup.py:357:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00t\x00\x82\x01#\x00&\x01g\x00c\x02t\x01%\x00&\x01\x9a\x0b}...1\x9e\x07\x01\x00Y\x00d\x00S\x00c\x02Y\x00w\x00c\x02Y\x00w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('KeyError'), W_UnicodeObject('Exception'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7fae6e398310>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7fae6d378f50>)
line_offset = W_IntObject(0), exception_entries = W_TupleObject()
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7fae69209d50>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
_______________ test_match_mapping_codegen_uses_unpack_sequence ________________
def test_match_mapping_codegen_uses_unpack_sequence():
"""MATCH_KEYS result should be unpacked with UNPACK_SEQUENCE, not
with DUP_TOP+BINARY_SUBSCR+rotation. CPython emits:
MATCH_KEYS / COPY 1 / POP_JUMP_FORWARD_IF_NONE / UNPACK_SEQUENCE n
PyPy must match that pattern to avoid emitting SWAP instructions."""
import dis
def f(x):
match x:
case {'a': a, 'b': b, 'c': _}:
return a, b
> instrs = list(dis.get_instructions(f))
interpreter/astcompiler/test/apptest_patma.py:372:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x00\x1f\x00r\x19\x1e\x00d\x01k\x05r\x19d\x02!\x00&\x01d\x00u\...x01\x00\x01\x00\x01\x00|\x01|\x02f\x02S\x00\x01\x00\x01\x00\x01\x00d\x00S\x00')
varname_from_oparg = bound method _varname_from_oparg, names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7fae6e398..._TupleObject(W_UnicodeObject('a'), W_UnicodeObject('b'), W_UnicodeObject('c')))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7fae6d378f50>)
line_offset = W_IntObject(0), exception_entries = W_TupleObject()
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7fae68696610>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
_________________________ TestAstBuilding.test_import __________________________
self = <pypy.interpreter.astcompiler.test.test_astbuilder.TestAstBuilding instance at 0x7fae69330050>
def test_import(self):
im = self.get_first_stmt("import x")
assert isinstance(im, ast.Import)
assert len(im.names) == 1
alias = im.names[0]
assert isinstance(alias, ast.alias)
assert alias.name == "x"
assert alias.asname is None
im = self.get_first_stmt("import x.y")
assert len(im.names) == 1
alias = im.names[0]
assert alias.name == "x.y"
assert alias.asname is None
im = self.get_first_stmt("import x as y")
assert len(im.names) == 1
alias = im.names[0]
assert alias.name == "x"
assert alias.asname == "y"
im = self.get_first_stmt("import x, y as w")
assert len(im.names) == 2
a1, a2 = im.names
assert a1.name == "x"
assert a1.asname is None
assert a2.name == "y"
assert a2.asname == "w"
with pytest.raises(SyntaxError) as excinfo:
self.get_ast("import x a b")
> assert excinfo.value.text == "import x a b\n"
E assert 'import x a b' == 'import x a b\n'
E import x a b
interpreter/astcompiler/test/test_astbuilder.py:151: AssertionError
_______________________ TestAstBuilding.test_from_import _______________________
self = <pypy.interpreter.astcompiler.test.test_astbuilder.TestAstBuilding instance at 0x7fae68d2a7d0>
def test_from_import(self):
im = self.get_first_stmt("from x import y")
assert isinstance(im, ast.ImportFrom)
assert im.module == "x"
assert im.level == 0
assert len(im.names) == 1
a = im.names[0]
assert isinstance(a, ast.alias)
assert a.name == "y"
assert a.asname is None
im = self.get_first_stmt("from . import y")
assert im.level == 1
assert im.module is None
im = self.get_first_stmt("from ... import y")
assert im.level == 3
assert im.module is None
im = self.get_first_stmt("from .x import y")
assert im.level == 1
assert im.module == "x"
im = self.get_first_stmt("from ..x.y import m")
assert im.level == 2
assert im.module == "x.y"
im = self.get_first_stmt("from x import *")
assert len(im.names) == 1
a = im.names[0]
assert a.name == "*"
assert a.asname is None
for input in ("from x import x, y", "from x import (x, y)"):
im = self.get_first_stmt(input)
assert len(im.names) == 2
a1, a2 = im.names
assert a1.name == "x"
assert a1.asname is None
assert a2.name == "y"
assert a2.asname is None
for input in ("from x import a as b, w", "from x import (a as b, w)"):
im = self.get_first_stmt(input)
assert len(im.names) == 2
a1, a2 = im.names
assert a1.name == "a"
assert a1.asname == "b"
assert a2.name == "w"
assert a2.asname is None
input = "from x import y a b"
with pytest.raises(SyntaxError) as excinfo:
self.get_ast(input)
> assert excinfo.value.text == input + "\n"
E assert 'from x import y a b' == 'from x import y a b\n'
E from x import y a b
interpreter/astcompiler/test/test_astbuilder.py:200: AssertionError
_____________ TestCompiler.test_load_method_position_multiline[0] ______________
self = <pypy.interpreter.astcompiler.test.test_compiler.TestCompiler instance at 0x7fae69e88af0>
source = " def fmeth(): # line 1\n ( # line 2\n o. # li... positions = list(co.co_positions())\n result = positions[opcodes.index('LOAD_METHOD')]\n "
evalexpr = 'result', expected = (4, 4, 8, 9)
def simple_test(self, source, evalexpr, expected):
> w_g = self.run(source)
interpreter/astcompiler/test/test_compiler.py:91:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
interpreter/astcompiler/test/test_compiler.py:55: in run
code.exec_code(space, w_dict, w_dict)
interpreter/eval.py:33: in exec_code
return frame.run()
interpreter/pyframe.py:257: in run
return self.execute_frame()
interpreter/pyframe.py:350: in execute_frame
executioncontext)
interpreter/pyopcode.py:68: in dispatch
next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:91: in handle_bytecode
next_instr = self.handle_operation_error(ec, operr)
interpreter/pyopcode.py:74: in handle_bytecode
next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:313: in dispatch_bytecode
self.CALL_METHOD(oparg, next_instr)
objspace/std/callmethod.py:93: in CALL_METHOD
w_callable, n, f, methodcall=w_self is not None, dropvalues=n_args+2)
interpreter/baseobjspace.py:1264: in call_valuestack
nargs, frame, methodcall=methodcall, dropvalues=dropvalues)
interpreter/function.py:204: in funccall_valuestack
return self.call_args(args)
interpreter/function.py:82: in call_args
w_res = self.getcode().funcrun(self, args)
interpreter/gateway.py:869: in funcrun
return BuiltinCode.funcrun_obj(self, func, None, args)
interpreter/gateway.py:884: in funcrun_obj
self.handle_exception(space, e)
interpreter/gateway.py:878: in funcrun_obj
w_result = activation._run(space, scope_w)
<1070-codegen /build_dir/own-linux-x86-64/build/rpython/tool/sourcetools.py:200>:3: in _run
return self.behavior(space.interp_w(W_ListObject, scope_w[0]), space, scope_w[1], scope_w[2], scope_w[3])
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = W_ListObject(<pypy.objspace.std.listobject.AsciiListStrategy object at 0x7fae6bee2f10>, ['LOAD_GLOBAL', 'RETURN_VALUE'])
space = StdObjSpace, w_value = W_UnicodeObject('LOAD_METHOD')
w_start = W_IntObject(0), w_stop = W_IntObject(9223372036854775807)
@unwrap_spec(w_start=WrappedDefault(0), w_stop=WrappedDefault(sys.maxint))
def descr_index(self, space, w_value, w_start, w_stop):
"""L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present."""
# needs to be safe against eq_w() mutating the w_list behind our back
size = self.length()
i, stop = unwrap_start_stop(space, size, w_start, w_stop)
# note that 'i' and 'stop' can be bigger than the length of the list
try:
i = self.find_or_count(w_value, i, stop)
except ValueError:
> raise oefmt(space.w_ValueError, "%R is not in list", w_value)
E OpErrFmt: [<W_TypeObject 'ValueError' at 0x7fae6d868650>: 'LOAD_METHOD' is not in list]
objspace/std/listobject.py:805: OpErrFmt
_________ TestCompiler.test_augassign_attribute_position_multiline[0] __________
self = <pypy.interpreter.astcompiler.test.test_compiler.TestCompiler instance at 0x7fae69a981e0>
source = " def faug(): # line 1\n ( # line 2\n o. # li... store_idx = opcodes.index('STORE_ATTR')\n result = (positions[load_idx], positions[store_idx])\n "
evalexpr = 'result', expected = ((4, 4, 8, 9), (4, 4, 8, 9))
def simple_test(self, source, evalexpr, expected):
> w_g = self.run(source)
interpreter/astcompiler/test/test_compiler.py:91:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
interpreter/astcompiler/test/test_compiler.py:55: in run
code.exec_code(space, w_dict, w_dict)
interpreter/eval.py:33: in exec_code
return frame.run()
interpreter/pyframe.py:257: in run
return self.execute_frame()
interpreter/pyframe.py:350: in execute_frame
executioncontext)
interpreter/pyopcode.py:68: in dispatch
next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:91: in handle_bytecode
next_instr = self.handle_operation_error(ec, operr)
interpreter/pyopcode.py:74: in handle_bytecode
next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:307: in dispatch_bytecode
self.CALL_FUNCTION(oparg, next_instr)
interpreter/pyopcode.py:1462: in CALL_FUNCTION
w_result = self.space.call_valuestack(w_function, nargs, self, dropvalues=nargs+1)
interpreter/baseobjspace.py:1264: in call_valuestack
nargs, frame, methodcall=methodcall, dropvalues=dropvalues)
interpreter/function.py:188: in funccall_valuestack
return self._flat_pycall(code, nargs, frame, dropvalues)
interpreter/function.py:215: in _flat_pycall
return new_frame.run(self.name, self.qualname)
interpreter/pyframe.py:257: in run
return self.execute_frame()
interpreter/pyframe.py:350: in execute_frame
executioncontext)
interpreter/pyopcode.py:68: in dispatch
next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:91: in handle_bytecode
next_instr = self.handle_operation_error(ec, operr)
interpreter/pyopcode.py:74: in handle_bytecode
next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:247: in dispatch_bytecode
next_instr = self.FOR_ITER(oparg, next_instr)
interpreter/pyopcode.py:1369: in FOR_ITER
w_nextitem = self.space.next(w_iterator)
interpreter/typedef.py:266: in call_shortcut
return getattr(self, shortcut_name)(space, *args_w)
<1120-codegen /build_dir/own-linux-x86-64/build/rpython/tool/sourcetools.py:200>:2: in shortcut___next__
w_res = func(self)
interpreter/generator.py:334: in descr_next
return self.send_ex(self.space.w_None)
interpreter/generator.py:67: in send_ex
return self._send_ex(w_arg_or_err)
interpreter/generator.py:90: in _send_ex
w_result = self._invoke_execute_frame(w_arg_or_err)
interpreter/generator.py:131: in _invoke_execute_frame
w_result = frame.execute_frame(w_arg_or_err)
interpreter/pyframe.py:350: in execute_frame
executioncontext)
interpreter/pyopcode.py:68: in dispatch
next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:91: in handle_bytecode
next_instr = self.handle_operation_error(ec, operr)
interpreter/pyopcode.py:74: in handle_bytecode
next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:399: in dispatch_bytecode
self.LOAD_GLOBAL(oparg, next_instr)
interpreter/pyopcode.py:1059: in LOAD_GLOBAL
LOAD_GLOBAL_cached(self, nameindex, next_instr)
objspace/std/celldict.py:281: in LOAD_GLOBAL_cached
w_value = _LOAD_GLOBAL_cached(self, nameindex, next_instr)
objspace/std/celldict.py:322: in _LOAD_GLOBAL_cached
return _load_global_fallback(self, varname)
objspace/std/celldict.py:326: in _load_global_fallback
return self._load_global(varname)
interpreter/pyopcode.py:1046: in _load_global
self._load_global_failed(w_varname)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object _get_instruct... "/build_dir/own-linux-x86-64/build/lib-python/3/dis.py", line 435> at line 483
w_varname = W_UnicodeObject('LOAD_SUPER_ATTR')
@dont_inline
def _load_global_failed(self, w_varname):
# CPython Issue #17032: The "global" in the "NameError: global
# name 'x' is not defined" error message has been removed.
raise oefmt_name_error(self.space, w_varname,
> "name %R is not defined")
E OpErrFmtWithNameError: [<W_TypeObject 'NameError' at 0x7fae6d868b10>: name 'LOAD_SUPER_ATTR' is not defined]
interpreter/pyopcode.py:1054: OpErrFmtWithNameError
=========================== short test summary info ============================
FAIL interpreter/astcompiler/test/apptest_exceptiongroup.py::test_with_try_except_as_reraise
FAIL interpreter/astcompiler/test/apptest_exceptiongroup.py::test_except_star_cleanup_lineno
FAIL interpreter/astcompiler/test/apptest_exceptiongroup.py::test_except_star_trace_return_lineno
FAIL interpreter/astcompiler/test/apptest_patma.py::test_match_mapping_codegen_uses_unpack_sequence
FAIL interpreter/astcompiler/test/test_astbuilder.py::TestAstBuilding::()::test_import
FAIL interpreter/astcompiler/test/test_astbuilder.py::TestAstBuilding::()::test_from_import
FAIL interpreter/astcompiler/test/test_compiler.py::TestCompiler::()::test_load_method_position_multiline::[0]
FAIL interpreter/astcompiler/test/test_compiler.py::TestCompiler::()::test_augassign_attribute_position_multiline::[0]
============== 8 failed, 1544 passed, 1 xfailed in 239.60 seconds ==============
++ 20:23:51 starting module/_codecs/test [10 started in total]
__ module/_ast/test [7 done in total, somefailed=True] ________________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 55 items
module/_ast/test/apptest_ast.py ...
module/_ast/test/test_ast.py .........................F.....................F....
=================================== FAILURES ===================================
_________________________ AppTestAST.test_functiondef __________________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f3981ea0390>
def test_functiondef(self):
import ast as ast_utils
import _ast as ast
fAst = ast.FunctionDef(
name="foo",
args=ast.arguments(
args=[], vararg=None, kwarg=None, defaults=[],
kwonlyargs=[], kw_defaults=[], posonlyargs=[]),
body=[ast.Expr(ast.Constant('docstring', None))],
decorator_list=[], lineno=5, col_offset=0)
exprAst = ast.Interactive(body=[fAst])
ast_utils.fix_missing_locations(exprAst)
> compiled = compile(exprAst, "<foo>", "single")
E (application-level) TypeError: required field 'type_params' missing from FunctionDef
[/build_dir/own-linux-x86-64/build/pypy/module/_ast/test/test_ast.py:349]:13: TypeError
___________ AppTestAST.test_fstring_self_documenting_feature_version ___________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f3981ea0390>
def test_fstring_self_documenting_feature_version(self):
> raises(SyntaxError, self.get_ast, "f'{x=}'", feature_version=7)
E (application-level) AssertionError: DID NOT RAISE
[/build_dir/own-linux-x86-64/build/pypy/module/_ast/test/test_ast.py:602]:2: AssertionError
=========================== short test summary info ============================
FAIL module/_ast/test/test_ast.py::AppTestAST::()::test_functiondef
FAIL module/_ast/test/test_ast.py::AppTestAST::()::test_fstring_self_documenting_feature_version
==================== 2 failed, 53 passed in 112.19 seconds =====================
++ 20:25:22 starting module/_collections/test [11 started in total]
__ module/_codecs/test [8 done in total, somefailed=False] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 98 items
module/_codecs/test/apptest_codecs.py ..
module/_codecs/test/test_codecs.py ....................sss...........................................................s......
module/_codecs/test/test_locale.py ...ss.
module/_codecs/test/test_ztranslation.py .
==================== 92 passed, 6 skipped in 136.67 seconds ====================
++ 20:26:08 starting module/_continuation/test [12 started in total]
__ module/_collections/test [9 done in total, somefailed=False] _______________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 66 items
module/_collections/test/apptest_defaultdict.py ..............
module/_collections/test/apptest_deque.py ..........................................
module/_collections/test/apptest_ordereddict.py ..........
========================== 66 passed in 75.39 seconds ==========================
++ 20:26:42 starting module/_cppyy/test [13 started in total]
__ module/_continuation/test [10 done in total, somefailed=False] _____________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 72 items / 2 skipped
module/_continuation/test/test_generator.py ....
module/_continuation/test/test_greenlet.py ............................
module/_continuation/test/test_stacklet.py ...................................s....
==================== 71 passed, 3 skipped in 76.81 seconds =====================
++ 20:27:28 starting module/_csv/test [14 started in total]
__ module/_csv/test [11 done in total, somefailed=False] ______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 34 items
module/_csv/test/apptest_writer.py ......
module/_csv/test/test_dialect.py ..............
module/_csv/test/test_reader.py .............
module/_csv/test/test_ztranslation.py .
========================== 34 passed in 50.69 seconds ==========================
++ 20:28:20 starting module/_demo/test [15 started in total]
__ module/_demo/test [12 done in total, somefailed=False] _____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/_demo/test/test_import.py ..
module/_demo/test/test_sieve.py .
========================== 3 passed in 27.89 seconds ===========================
++ 20:28:52 starting module/_hpy_universal/test/_vendored [16 started in total]
__ module/_cppyy/test [13 done in total, somefailed=False] ____________________
[platform:WARNING] cc1plus: warning: command-line option ‘-Wno-discarded-qualifiers’ is valid for C/ObjC but not for C++
[platform:WARNING] cc1plus: warning: command-line option ‘-Wno-duplicate-decl-specifier’ is valid for C/ObjC but not for C++
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 191 items
module/_cppyy/test/test_advancedcpp.py sssssssssssssssssssssssss
module/_cppyy/test/test_boost.py sssss
module/_cppyy/test/test_cpp11features.py s.s
module/_cppyy/test/test_cppyy.py ...........
module/_cppyy/test/test_crossing.py ssss
module/_cppyy/test/test_datatypes.py .......sssssssssssssss
module/_cppyy/test/test_fragile.py sssssssssssss
module/_cppyy/test/test_helper.py ......
module/_cppyy/test/test_operators.py sssssss
module/_cppyy/test/test_overloads.py sssssss
module/_cppyy/test/test_pythonify.py .....sssssssssssss
module/_cppyy/test/test_pythonization.py .ssssss
module/_cppyy/test/test_regression.py ss
module/_cppyy/test/test_stltypes.py sssssssssssssssssssssssss
module/_cppyy/test/test_templates.py sssssssssssssssssssssssssssssssss
module/_cppyy/test/test_zjit.py sss
=================== 31 passed, 160 skipped in 142.65 seconds ===================
++ 20:29:14 starting module/_hpy_universal/test/pypy [17 started in total]
__ module/_hpy_universal/test/pypy [14 done in total, somefailed=False] _______
('warning: setuptools.command.build does not exist in setuptools', '44.1.1', 'on', '2.7.18 (default, Jan 29 2025, 22:16:55) \n[GCC 10.2.1 20210130 (Red Hat 10.2.1-11)]')
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 34 items
module/_hpy_universal/test/pypy/test_apiset.py .......
module/_hpy_universal/test/pypy/test_handlemanager.py ..................s......
module/_hpy_universal/test/pypy/test_storage.py .
module/_hpy_universal/test/pypy/test_ztranslation.py s
==================== 32 passed, 2 skipped in 12.13 seconds =====================
++ 20:29:32 starting module/_io/test [18 started in total]
__ module/_cffi_backend/test [15 done in total, somefailed=False] _____________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 467 items
module/_cffi_backend/test/test_c.py ....................................................................................s....................................................s.....s.......................s.............................s........................s......
module/_cffi_backend/test/test_fastpath.py ..................
module/_cffi_backend/test/test_ffi_obj.py ..............................................
module/_cffi_backend/test/test_file.py s..
module/_cffi_backend/test/test_parse_c_type.py ..............s...
module/_cffi_backend/test/test_re_python.py ....................
module/_cffi_backend/test/test_recompiler.py .........................................................................................s..s...............................
module/_cffi_backend/test/test_unicode_literals.py .......
module/_cffi_backend/test/test_wchar_helper.py .
module/_cffi_backend/test/test_ztranslation.py s
=================== 456 passed, 11 skipped in 345.34 seconds ===================
++ 20:29:32 starting module/_jitlog/test [19 started in total]
__ module/_jitlog/test [16 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/_jitlog/test/test__jitlog.py .
========================== 1 passed in 14.48 seconds ===========================
++ 20:29:49 starting module/_locale/test [20 started in total]
__ module/_locale/test [17 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 15 items
module/_locale/test/test_locale.py sssssssssssssss
========================= 15 skipped in 10.94 seconds ==========================
++ 20:30:02 starting module/_lsprof/test [21 started in total]
__ module/_lsprof/test [18 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 6 items
module/_lsprof/test/test_cprofile.py ......
========================== 6 passed in 12.37 seconds ===========================
++ 20:30:16 starting module/_md5/test [22 started in total]
__ module/_md5/test [19 done in total, somefailed=False] ______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 8 items
module/_md5/test/test_md5.py ........
========================== 8 passed in 11.14 seconds ===========================
++ 20:30:28 starting module/_minimal_curses/test [23 started in total]
__ module/_minimal_curses/test [20 done in total, somefailed=False] ___________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 6 items
module/_minimal_curses/test/test_curses.py ......
========================== 6 passed in 73.88 seconds ===========================
++ 20:31:48 starting module/_multibytecodec/test [24 started in total]
__ interpreter/test [21 done in total, somefailed=True] _______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
PYTHON3: /usr/local/bin/python3.12
(Version 3.12.5 (main, Aug 19 2024, 06:45:53) [GCC 10.2.1 20210130 (Red Hat 10.2.1-11)])
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1374 items
interpreter/test/apptest_annotations.py ..........................
interpreter/test/apptest_annotations_string.py ......
interpreter/test/apptest_buffer.py .....
interpreter/test/apptest_class.py ................
interpreter/test/apptest_coroutine.py .....................................................
interpreter/test/apptest_descrtypecheck.py ..
interpreter/test/apptest_exceptions.py ....................F...F.
interpreter/test/apptest_exctable_dis.py FFFFFF..F
interpreter/test/apptest_exec.py .........................
interpreter/test/apptest_extcall.py .....
interpreter/test/apptest_function.py .....................................s.....................................................
interpreter/test/apptest_generator.py ...................................................................
interpreter/test/apptest_nestedscope.py ..................
interpreter/test/apptest_pep695.py ...............................
interpreter/test/apptest_pycode.py ....
interpreter/test/apptest_pyframe.py ................................................................
interpreter/test/apptest_raise.py ..........F.......F..................................
interpreter/test/apptest_settrace_jump.py .
interpreter/test/apptest_sys_settrace.py ..............................................................................................................................................
interpreter/test/apptest_traceback.py ....F.F.
interpreter/test/apptest_unraisable.py ....
interpreter/test/apptest_with_leak.py .....FFFF
interpreter/test/test_app_main.py ....................s....................s...s.......................s....X.s...s..........
interpreter/test/test_appinterp.py .............
interpreter/test/test_argument.py ..............................................
interpreter/test/test_buffer.py ...
interpreter/test/test_cellfamily.py .......
interpreter/test/test_code.py ............
interpreter/test/test_compiler.py ...................................................................F.........................F..F..F........F
interpreter/test/test_error.py ..............
interpreter/test/test_exceptcomp.py .........
interpreter/test/test_executioncontext.py ................
interpreter/test/test_extmodules.py .
interpreter/test/test_fsencode.py ...
interpreter/test/test_function.py .............
interpreter/test/test_gateway.py .........................................ss.........................
interpreter/test/test_generator.py .
interpreter/test/test_interpreter.py .................................................
interpreter/test/test_location.py ..........
interpreter/test/test_main.py .....
interpreter/test/test_mixedmodule.py ......
interpreter/test/test_module.py .......FF.F............
interpreter/test/test_objspace.py .............................................
interpreter/test/test_pycode.py ..
interpreter/test/test_pyframe.py ................................
interpreter/test/test_reverse_debugging.py ..
interpreter/test/test_special.py ...
interpreter/test/test_syntax.py ............................FFF..........................
interpreter/test/test_targetpypy.py ..
interpreter/test/test_typedef.py ...................
interpreter/test/test_unicodehelper.py ..........
interpreter/test/test_zpy.py .......F
interpreter/test/test_zzpickle_and_slow.py s.....s..s..sss........ss...s.
=================================== FAILURES ===================================
_______________________ test_nested_except_raise_stored ________________________
def test_nested_except_raise_stored():
# CPython 3.11 exception table for this pattern:
# try body -> outer_handler
# inner try body -> inner_handler
# inner handler check+STORE -> inner outer_cleanup
# inner handler body (incl RAISE_VARARGS) -> inner cleanup_end
# inner cleanup_end -> inner outer_cleanup
# outer handler check -> outer outer_cleanup
import dis
def f():
try:
z = 0
try:
"x" + 1
except TypeError as e:
z = 5
raise e
except TypeError:
return z
print()
> dis.dis(f)
interpreter/test/apptest_exceptions.py:320:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object f, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exceptions.py", line 309>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object f, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exceptions.py", line 309>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object f, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exceptions.py", line 309>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00\t\x00d\x02d\x03\x17\x00\x01\x00d\x00S\x00#\x00...\x01#\x00t\x00$\x00r%\x01\x00|\x00\x06\x00Y\x00S\x00w\x01w\x00&\x03Y\x00w\x01')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('TypeError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(0), W_UnicodeObject('x'), W_IntObject(1), W_IntObject(5))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00\t\x00d\x02d\x03\x17\x00\x01\x00d\x00S\x00#\x00...\x01#\x00t\x00$\x00r%\x01\x00|\x00\x06\x00Y\x00S\x00w\x01w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('TypeError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(0), W_UnicodeObject('x'), W_IntObject(1), W_IntObject(5))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(72), W_IntObject(76), W_IntObject(76), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f6637abc090>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
310 0 NOP
311 2 LOAD_CONST 1 (0)
4 STORE_FAST 0 (z)
312 6 NOP
313 8 LOAD_CONST 2 ('x')
10 LOAD_CONST 3 (1)
12 BINARY_ADD
14 POP_TOP
16 LOAD_CONST 0 (None)
18 RETURN_VALUE
>> 20 PUSH_EXC_INFO
314 22 LOAD_GLOBAL 0 (TypeError)
32 STORE_FAST 0 (z)
316 34 LOAD_FAST 1 (e)
________________________ test_try_except_finally_nested ________________________
def test_try_except_finally_nested():
import dis
def run():
x = 5
try:
try:
if x > 2:
raise ValueError
finally:
x += 1
except ValueError:
x *= 7
return x
print()
> dis.dis(run)
interpreter/test/apptest_exceptions.py:385:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object run, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exceptions.py", line 373>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object run, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exceptions.py", line 373>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object run, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exceptions.py", line 373>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('d\x01}\x00\t\x00\t\x00|\x00d\x02k\x04r\nt\x00\x82\x01|\x00d\x03...00r%\x01\x00|\x00d\x049\x00}\x00Y\x00n\x05w\x01w\x00&\x03Y\x00w\x01|\x00S\x00')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(5), W_IntObject(2), W_IntObject(1), W_IntObject(7))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('d\x01}\x00\t\x00\t\x00|\x00d\x02k\x04r\nt\x00\x82\x01|\x00d\x03...00r%\x01\x00|\x00d\x049\x00}\x00Y\x00n\x05w\x01w\x00&\x03Y\x00w\x01|\x00S\x00')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(5), W_IntObject(2), W_IntObject(1), W_IntObject(7))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(72), W_IntObject(76), W_IntObject(76), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f663782c590>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
374 0 LOAD_CONST 1 (5)
2 STORE_FAST 0 (x)
375 4 NOP
376 6 NOP
377 8 LOAD_FAST 0 (x)
10 LOAD_CONST 2 (2)
12 COMPARE_OP 4 (<)
378 16 LOAD_GLOBAL 0 (ValueError)
26 STORE_FAST 0 (x)
28 JUMP_FORWARD 9 (to 48)
>> 30 PUSH_EXC_INFO
32 LOAD_FAST 0 (x)
34 LOAD_CONST 3 (1)
36 INPLACE_ADD
38 STORE_FAST 0 (x)
____________________________ test_dis_try_except_as ____________________________
def test_dis_try_except_as():
print()
print("=== try/except T as name ===")
> dis.dis(_try_except_as)
interpreter/test/apptest_exctable_dis.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object _try_except_as, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 11>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_except_as, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 11>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_except_as, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 11>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00t\x00$\x00r\x14}\x01Y\x00d\x00}\x01~\x01d\x00S\x00d\x00}\x01~\x01w\x01w\x00&\x03Y\x00w\x01')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00t\x00$\x00r\x14}\x01Y\x00d\x00}\x01~\x01d\x00S\x00d\x00}\x01~\x01w\x01w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(32), W_IntObject(42), W_IntObject(42), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f66377f3910>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== try/except T as name ===
12 0 NOP
13 2 LOAD_CONST 1 (1)
4 STORE_FAST 0 (x)
6 LOAD_CONST 0 (None)
8 RETURN_VALUE
>> 10 PUSH_EXC_INFO
14 12 LOAD_GLOBAL 0 (ValueError)
22 LOAD_CONST 0 (None)
24 STORE_FAST 1 (e)
26 DELETE_FAST 1 (e)
28 LOAD_CONST 0 (None)
30 RETURN_VALUE
32 LOAD_CONST 0 (None)
34 STORE_FAST 1 (e)
36 DELETE_FAST 1 (e)
_________________________ test_dis_try_except_no_name __________________________
def test_dis_try_except_no_name():
print()
print("=== try/except T (no name) ===")
> dis.dis(_try_except_no_name)
interpreter/test/apptest_exctable_dis.py:60:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object _try_except_no_name, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 18>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_except_no_name, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 18>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_except_no_name, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 18>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00t\x00$\x00r\x0e\x01\x00Y\x00d\x00S\x00w\x01w\x00&\x03Y\x00w\x01')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00t\x00$\x00r\x0e\x01\x00Y\x00d\x00S\x00w\x01w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(26), W_IntObject(30), W_IntObject(30), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f66384ef7d0>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== try/except T (no name) ===
19 0 NOP
20 2 LOAD_CONST 1 (1)
4 STORE_FAST 0 (x)
6 LOAD_CONST 0 (None)
8 RETURN_VALUE
>> 10 PUSH_EXC_INFO
21 12 LOAD_GLOBAL 0 (ValueError)
22 LOAD_CONST 0 (None)
24 RETURN_VALUE
__________________________ test_dis_try_except_multi ___________________________
def test_dis_try_except_multi():
print()
print("=== try/except with two handlers (both as name) ===")
> dis.dis(_try_except_multi_handler)
interpreter/test/apptest_exctable_dis.py:66:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object _try_except_multi_handler, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 25>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_except_multi_handler, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 25>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_except_multi_handler, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 25>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00t\x00$\x00r\x14}\x01Y\x00d\x00}\...r"}\x01Y\x00d\x00}\x01~\x01d\x00S\x00d\x00}\x01~\x01w\x01w\x00&\x03Y\x00w\x01')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('TypeError'), W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00t\x00$\x00r\x14}\x01Y\x00d\x00}\...r"}\x01Y\x00d\x00}\x01~\x01d\x00S\x00d\x00}\x01~\x01w\x01w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('TypeError'), W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(60), W_IntObject(70), W_IntObject(70), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f6638583ed0>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== try/except with two handlers (both as name) ===
26 0 NOP
27 2 LOAD_CONST 1 (1)
4 STORE_FAST 0 (x)
6 LOAD_CONST 0 (None)
8 RETURN_VALUE
>> 10 PUSH_EXC_INFO
28 12 LOAD_GLOBAL 0 (TypeError)
22 LOAD_CONST 0 (None)
24 STORE_FAST 1 (e)
26 DELETE_FAST 1 (e)
28 LOAD_CONST 0 (None)
30 RETURN_VALUE
32 LOAD_CONST 0 (None)
34 STORE_FAST 1 (e)
36 DELETE_FAST 1 (e)
_____________________________ test_dis_try_finally _____________________________
def test_dis_try_finally():
print()
print("=== try/finally ===")
> dis.dis(_try_finally)
interpreter/test/apptest_exctable_dis.py:75:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object _try_finally, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 34>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_finally, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 34>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_finally, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 34>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00w\x00&\x03Y\x00w\x01')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg, names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(10), W_IntObject(14), W_IntObject(14), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f66377b0750>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== try/finally ===
35 0 NOP
36 2 LOAD_CONST 1 (1)
4 STORE_FAST 0 (x)
38 6 LOAD_CONST 0 (None)
8 RETURN_VALUE
>> 10 PUSH_EXC_INFO
_______________________________ test_dis_nested ________________________________
def test_dis_nested():
print()
print("=== nested try/except inside except handler ===")
> dis.dis(_nested_try_except_in_except)
interpreter/test/apptest_exctable_dis.py:84:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object _nested_try_except_in_except, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 41>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _nested_try_except_in_except, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 41>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _nested_try_except_in_except, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 41>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00t\x00$\x00r \x01\x00\t\x00d\x02}...00d\x00S\x00w\x01w\x00&\x03Y\x00w\x01Y\x00d\x00S\x00w\x01w\x00&\x03Y\x00w\x01')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('OSError'), W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1), W_IntObject(2))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00d\x01}\x00d\x00S\x00#\x00t\x00$\x00r \x01\x00\t\x00d\x02}...00d\x00S\x00w\x01w\x00&\x03Y\x00w\x01Y\x00d\x00S\x00w\x01w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('OSError'), W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_IntObject(1), W_IntObject(2))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(62), W_IntObject(66), W_IntObject(66), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f6637896850>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== nested try/except inside except handler ===
42 0 NOP
43 2 LOAD_CONST 1 (1)
4 STORE_FAST 0 (x)
6 LOAD_CONST 0 (None)
8 RETURN_VALUE
>> 10 PUSH_EXC_INFO
44 12 LOAD_GLOBAL 0 (OSError)
46 22 LOAD_CONST 2 (2)
24 STORE_FAST 1 (y)
26 JUMP_FORWARD 14 (to 56)
>> 28 PUSH_EXC_INFO
47 30 LOAD_GLOBAL 1 (NULL + OSError)
40 POP_EXCEPT
42 LOAD_CONST 0 (None)
44 RETURN_VALUE
_____________________________ test_dis_try_in_try ______________________________
def test_dis_try_in_try():
print()
print("=== nested try-in-try (settrace lineno test) ===")
> dis.dis(_try_in_try)
interpreter/test/apptest_exctable_dis.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object _try_in_try, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 87>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_in_try, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 87>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _try_in_try, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 87>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00\t\x00d\x00S\x00#\x00t\x00$\x00r\x13}\x00Y\x00d\x00}\x00~...03Y\x00w\x01#\x00t\x00$\x00r \x01\x00Y\x00d\x00S\x00w\x01w\x00&\x03Y\x00w\x01')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('Exception'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00\t\x00d\x00S\x00#\x00t\x00$\x00r\x13}\x00Y\x00d\x00}\x00~...03Y\x00w\x01#\x00t\x00$\x00r \x01\x00Y\x00d\x00S\x00w\x01w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('Exception'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(62), W_IntObject(66), W_IntObject(66), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f66379581d0>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== nested try-in-try (settrace lineno test) ===
88 0 NOP
89 2 NOP
90 4 LOAD_CONST 0 (None)
6 RETURN_VALUE
8 PUSH_EXC_INFO
91 10 LOAD_GLOBAL 0 (Exception)
20 LOAD_CONST 0 (None)
22 STORE_FAST 0 (ex)
24 DELETE_FAST 0 (ex)
26 LOAD_CONST 0 (None)
28 RETURN_VALUE
30 LOAD_CONST 0 (None)
32 STORE_FAST 0 (ex)
34 DELETE_FAST 0 (ex)
_______________________ test_except_star_cleanup_lineno ________________________
def test_except_star_cleanup_lineno():
# GH-101517 / pdb test: after the except* body runs, the RETURN_VALUE for
# the "all exceptions caught" path must be attributed to the except* clause
# line, not to the body line. pdb relies on this to display the right line.
import sys
print()
print("=== except* cleanup lineno dis ===")
> dis.dis(_except_star_all_caught)
interpreter/test/apptest_exctable_dis.py:173:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object _except_star_all_caught, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 158>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _except_star_all_caught, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 158>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _except_star_all_caught, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_exctable_dis.py", line 158>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00t\x00\x82\x01#\x00&\x01g\x00c\x02t\x01%\x00&\x01\x9a\x0b}...1\x9e\x07\x01\x00Y\x00d\x00S\x00c\x02Y\x00w\x00c\x02Y\x00w\x00&\x03Y\x00w\x01')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('KeyError'), W_UnicodeObject('Exception'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\t\x00t\x00\x82\x01#\x00&\x01g\x00c\x02t\x01%\x00&\x01\x9a\x0b}...1\x9e\x07\x01\x00Y\x00d\x00S\x00c\x02Y\x00w\x00c\x02Y\x00w\x00&\x03Y\x00w\x01')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('KeyError'), W_UnicodeObject('Exception'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(24), W_IntObject(56), W_IntObject(74), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f66377772d0>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== except* cleanup lineno dis ===
159 0 NOP
160 2 LOAD_GLOBAL 0 (KeyError)
________________________ test_revert_exc_info_2_finally ________________________
def test_revert_exc_info_2_finally():
import sys, dis
def the_test():
assert sys.exc_info() == (None, None, None)
try:
try:
raise ValueError
finally:
try:
try:
raise IndexError
finally:
assert sys.exc_info()[0] is IndexError
except IndexError:
pass
assert sys.exc_info()[0] is ValueError
except ValueError:
pass
assert sys.exc_info() == (None, None, None)
> dis.dis(the_test)
interpreter/test/apptest_raise.py:101:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object the_test, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_raise.py", line 83>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object the_test, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_raise.py", line 83>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object the_test, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_raise.py", line 83>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\x89\x00j\x00}\x00|\x00\x83\x00}\x01d\x01}\x02|\x01|\x02k\x02}\...01\x83\x01\x82\x01d\x00\x08\x00}\x00\x08\x00}\x01\x08\x00}\x03}\x02d\x00S\x00')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('exc_info'), W_UnicodeObject('@pytest'), W_Unico...at_explanation'), W_UnicodeObject('ValueError'), W_UnicodeObject('IndexError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768...leObject(W_UnicodeObject('%(py1)s is %(py3)s')), W_UnicodeObject('ValueError'))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\x89\x00j\x00}\x00|\x00\x83\x00}\x01d\x01}\x02|\x01|\x02k\x02}\...01\x83\x01\x82\x01d\x00\x08\x00}\x00\x08\x00}\x01\x08\x00}\x03}\x02d\x00S\x00')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('exc_info'), W_UnicodeObject('@pytest'), W_Unico...at_explanation'), W_UnicodeObject('ValueError'), W_UnicodeObject('IndexError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768...leObject(W_UnicodeObject('%(py1)s is %(py3)s')), W_UnicodeObject('ValueError'))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...486), W_IntObject(490), W_IntObject(490), W_IntObject(1), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f6636ea1490>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
84 0 LOAD_DEREF 0 (@py_assert1)
2 LOAD_ATTR 0 (exc_info)
22 STORE_FAST 3 (@py_assert5)
24 LOAD_FAST 3 (@py_assert5)
26 POP_JUMP_IF_TRUE 70 (to 140)
28 LOAD_GLOBAL 1 (NULL + exc_info)
38 LOAD_CONST 3 (('%(py4)s\n{%(py4)s = %(py2)s\n{%(py2)s = %(py0)s.exc_info\n}()\n} == %(py7)s',))
40 LOAD_FAST 1 (@py_assert3)
42 LOAD_FAST 2 (@py_assert6)
_____________________________ test_with_reraise_2 ______________________________
def test_with_reraise_2():
import dis
class Context:
def __enter__(self):
return self
def __exit__(self, exc_type, exc_value, exc_tb):
return True
def the_test():
def fn():
try:
raise ValueError("foo")
except:
with Context():
raise KeyError("caught")
raise
with pytest.raises(ValueError):
fn()
> dis.dis(the_test)
interpreter/test/apptest_raise.py:222:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object the_test, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_raise.py", line 211>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object the_test, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_raise.py", line 211>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object the_test, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_raise.py", line 211>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\x88\x00f\x01d\x01\x84\x08}\x00t\x00\xa0\x01t\x02\xa1\x015\x00\...x00#\x001\x00s\x1cw\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00d\x00S\x00')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('pytest'), W_UnicodeObject('raises'), W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768..._dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_raise.py", line 212>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('\x88\x00f\x01d\x01\x84\x08}\x00t\x00\xa0\x01t\x02\xa1\x015\x00\...x00#\x001\x00s\x1cw\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00d\x00S\x00')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('pytest'), W_UnicodeObject('raises'), W_UnicodeObject('ValueError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768..._dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_raise.py", line 212>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...ct(56), W_IntObject(58), W_IntObject(50), W_IntObject(3), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f6636f8ff10>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
212 0 LOAD_CLOSURE 0 (fn)
_________________ test_traceback_positions_trailing_whitespace _________________
def test_traceback_positions_trailing_whitespace():
# issue gh-5219
def name_error():
# note this has excess trailing whitespace
a = b
with raises(NameError) as exc_info:
name_error()
original_std_err = sys.stderr
sys.stderr = buffer = Buffer()
original_exc_format = sys.excepthook(
exc_info.type, exc_info.value, exc_info.value.__traceback__
)
sys.stderr = original_exc_format
expected_exc_format = [
' a = b',
' ^',
"NameError: name 'b' is not defined"
]
> assert buffer.get_lines()[-3:] == expected_exc_format
E (application-level) AssertionError: assert [' a = b', ' ^', "NameError: name 'b' is not defined"] == [' a = b', ' ^', "NameError: name 'b' is not defined"]
interpreter/test/apptest_traceback.py:121: AssertionError
___________________________ test_colors_in_traceback ___________________________
def test_colors_in_traceback():
import os
def division_by_zero(a, b):
return (
a + b / 0 # abc
)
old_value = os.environ.get('FORCE_COLOR', None)
os.environ['FORCE_COLOR'] = '1'
try:
from _colorize import can_colorize, ANSIColors
assert can_colorize()
with raises(ZeroDivisionError) as exc_info:
division_by_zero(1, 2)
original_std_err = sys.stderr
sys.stderr = buffer = Buffer()
original_exc_format = sys.excepthook(
exc_info.type, exc_info.value, exc_info.value.__traceback__
)
sys.stderr = original_std_err
expected_exc_format = [
f' a + {ANSIColors.BOLD_RED}b / 0{ANSIColors.RESET} # abc',
f' {ANSIColors.BOLD_RED}~~^~~{ANSIColors.RESET}',
f'{ANSIColors.BOLD_MAGENTA}ZeroDivisionError{ANSIColors.RESET}: {ANSIColors.MAGENTA}division by zero{ANSIColors.RESET}'
]
> assert buffer.get_lines()[-3:] == expected_exc_format
E (application-level) AssertionError: assert [' a + b / 0 # abc', ' ~~^~~', 'ZeroDivisionError: division by zero'] == [' a + \x1b[1;31mb / 0\x1b[0m # abc', ' \x1b[1;31m~~^~~\x1b[0m', '\x1b[1;35mZeroDivisionError\x1b[0m: \x1b[35mdivision by zero\x1b[0m']
interpreter/test/apptest_traceback.py:192: AssertionError
_____________________________ test_shutil_pattern ______________________________
def test_shutil_pattern():
# Reproduce the shutil.copyfile failure.
# Multiple early returns inside the inner with cause duplicate_exits_without_lineno
# to copy the with-exit code, which confuses the linear exception table scan and
# leaves the fallback path (copyfileobj) with no exception table coverage.
# Structure mirrors shutil.copyfile:
# outer with (suppresses) -> try/except -> inner with (raises in __exit__)
# -> fast paths with early returns -> fallback that raises via None return
class InnerCM:
def __enter__(self):
return None # intentional -- fallback body raises AttributeError
def __exit__(self, exc_type, exc_val, exc_tb):
if exc_type is not None:
raise OSError("dest close failed")
return False
class OuterCM:
exited_with = 'not called'
def __enter__(self): return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.exited_with = exc_type
return True # suppress everything
class GiveupOnFastCopy(Exception):
pass
def copyfile(use_fast1, use_fast2):
result = []
outer = OuterCM()
with outer:
try:
with InnerCM() as f:
if use_fast1:
try:
result.append('fast1')
return result
except GiveupOnFastCopy:
pass
elif use_fast2:
try:
result.append('fast2')
return result
except GiveupOnFastCopy:
pass
# fallback: f is None, raises AttributeError
result.append(f.read)
except IsADirectoryError:
pass
return outer
import dis
> dis.dis(copyfile)
interpreter/test/apptest_with_leak.py:131:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object copyfile, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 106>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object copyfile, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 106>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object copyfile, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 106>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject("g\x00}\x02\x89\x02\x83\x00}\x03|\x035\x00\x01\x00\t\x00\x89\x01...x86#\x001\x00s\x82w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00|\x03S\x00")
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('append'), W_UnicodeObject('read'), W_UnicodeObject('IsADirectoryError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_UnicodeObject('fast1'), W_UnicodeObject('fast2'))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject("g\x00}\x02\x89\x02\x83\x00}\x03|\x035\x00\x01\x00\t\x00\x89\x01...x86#\x001\x00s\x82w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00|\x03S\x00")
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('append'), W_UnicodeObject('read'), W_UnicodeObject('IsADirectoryError'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_UnicodeObject('fast1'), W_UnicodeObject('fast2'))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...260), W_IntObject(262), W_IntObject(254), W_IntObject(3), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f6638b2fc10>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
___________________ test_lru_cache_style_with_lock_exception ___________________
def test_lru_cache_style_with_lock_exception():
# Reproduces WITH_EXCEPT_START crash: a wrapper using 'with lock:' around a
# cache lookup where the wrapped function raises between the two with-blocks.
import dis
from _thread import RLock
def make_cached(user_function):
cache = {}
lock = RLock()
def wrapper(*args):
key = args
with lock:
if key in cache:
return cache[key]
result = user_function(*args)
with lock:
cache[key] = result
return result
return wrapper
@make_cached
def func(i):
return 'abc'[i]
> dis.dis(func) # dis the wrapper to aid debugging
interpreter/test/apptest_with_leak.py:170:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object wrapper, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 154>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object wrapper, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 154>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object wrapper, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 154>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x00}\x01\x89\x015\x00\x01\x00|\x01\x89\x00v\x00r\x13\x89\x00|...0\x99@#\x001\x00s<w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00|\x02S\x00')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x00}\x01\x89\x015\x00\x01\x00|\x01\x89\x00v\x00r\x13\x89\x00|...0\x99@#\x001\x00s<w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00|\x02S\x00')
varname_from_oparg = bound method _varname_from_oparg, names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...120), W_IntObject(122), W_IntObject(114), W_IntObject(3), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f66376d3090>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
155 0 LOAD_FAST 0 (args)
2 STORE_FAST 1 (key)
156 4 LOAD_DEREF 1 (key)
6 BEFORE_WITH
8 POP_TOP
157 10 LOAD_FAST 1 (key)
12 LOAD_DEREF 0 (args)
_____________________ test_lru_cache_exception_no_context ______________________
def test_lru_cache_exception_no_context():
# test_functools.TestLRU.test_lru_with_exceptions: exception raised between
# the two 'with lock:' blocks must not gain __context__ from lock cleanup.
import dis
from _thread import RLock
def make_cached(user_function):
cache = {}
lock = RLock()
def wrapper(*args):
key = args
with lock:
if key in cache:
return cache[key]
result = user_function(*args)
with lock:
cache[key] = result
return result
return wrapper
@make_cached
def func(i):
return 'abc'[i]
print("\n=== apptest double-with wrapper dis ===")
> dis.dis(func)
interpreter/test/apptest_with_leak.py:208:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object wrapper, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 191>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object wrapper, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 191>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object wrapper, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 191>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x00}\x01\x89\x015\x00\x01\x00|\x01\x89\x00v\x00r\x13\x89\x00|...0\x99@#\x001\x00s<w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00|\x02S\x00')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x00}\x01\x89\x015\x00\x01\x00|\x01\x89\x00v\x00r\x13\x89\x00|...0\x99@#\x001\x00s<w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00|\x02S\x00')
varname_from_oparg = bound method _varname_from_oparg, names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...120), W_IntObject(122), W_IntObject(114), W_IntObject(3), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f663673ca90>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== apptest double-with wrapper dis ===
192 0 LOAD_FAST 0 (args)
2 STORE_FAST 1 (key)
193 4 LOAD_DEREF 1 (key)
6 BEFORE_WITH
8 POP_TOP
194 10 LOAD_FAST 1 (key)
12 LOAD_DEREF 0 (args)
_________________ test_except_pass_around_lru_style_exception __________________
def test_except_pass_around_lru_style_exception():
# typing.py inner() pattern: try: return cached(...) except TypeError: pass
# then raise ValueError. The ValueError must have no __context__ from the
# suppressed TypeError caught inside the two-with-lock wrapper.
import dis
from _thread import RLock
def make_cached(user_function):
cache = {}
lock = RLock()
def wrapper(*args):
key = args
with lock:
if key in cache:
return cache[key]
result = user_function(*args)
with lock:
cache[key] = result
return result
return wrapper
@make_cached
def cached(x):
if x < 0:
raise TypeError("bad arg")
return x
def inner(x):
try:
return cached(x)
except TypeError:
pass
raise ValueError("fallback error")
print("\n=== apptest cached wrapper dis ===")
> dis.dis(cached)
interpreter/test/apptest_with_leak.py:265:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object wrapper, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 239>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object wrapper, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 239>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object wrapper, file "/build_dir/own-linux-x86-64/build/pypy/interpreter/test/apptest_with_leak.py", line 239>
lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x00}\x01\x89\x015\x00\x01\x00|\x01\x89\x00v\x00r\x13\x89\x00|...0\x99@#\x001\x00s<w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00|\x02S\x00')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x00}\x01\x89\x015\x00\x01\x00|\x01\x89\x00v\x00r\x13\x89\x00|...0\x99@#\x001\x00s<w\x02&\x03Y\x00w\x01\x01\x00Y\x00\x01\x00\x01\x00|\x02S\x00')
varname_from_oparg = bound method _varname_from_oparg, names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f66...120), W_IntObject(122), W_IntObject(114), W_IntObject(3), W_BoolObject(True))])
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f6636b9d290>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
----------------------------- Captured stdout call -----------------------------
=== apptest cached wrapper dis ===
240 0 LOAD_FAST 0 (args)
2 STORE_FAST 1 (key)
241 4 LOAD_DEREF 1 (key)
6 BEFORE_WITH
8 POP_TOP
242 10 LOAD_FAST 1 (key)
12 LOAD_DEREF 0 (args)
____________________ AppTestCompiler.test_cpython_issue2301 ____________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f6636a06a90>
def test_cpython_issue2301(self):
try:
compile(b"# coding: utf7\nprint '+XnQ-'", "dummy", "exec")
except SyntaxError as v:
> assert v.text == "print '\u5e74'\n"
E (application-level) AssertionError
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_compiler.py:997]:5: AssertionError
_____________ AppTestOptimizer.test_folding_of_binops_on_constants _____________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f6636309650>
def test_folding_of_binops_on_constants(self):
def disassemble(func):
from io import StringIO
import sys, dis
f = StringIO()
tmp = sys.stdout
sys.stdout = f
dis.dis(func)
sys.stdout = tmp
result = f.getvalue()
f.close()
return result
def dis_single(line):
return disassemble(compile(line, '', 'single'))
for line, elem in (
('a = 2+3+4', '(9)'), # chained fold
('"@"*4', "('@@@@')"), # check string ops
('a="abc" + "def"', "('abcdef')"), # check string ops
('a = 3**4', '(81)'), # binary power
('a = 3*4', '(12)'), # binary multiply
('a = 13//4', '(3)'), # binary floor divide
('a = 14%4', '(2)'), # binary modulo
('a = 2+3', '(5)'), # binary add
('a = 13-4', '(9)'), # binary subtract
('a = (12,13)[1]', '(13)'), # binary subscr
('a = 13 << 2', '(52)'), # binary lshift
('a = 13 >> 2', '(3)'), # binary rshift
('a = 13 & 7', '(5)'), # binary and
('a = 13 ^ 7', '(10)'), # binary xor
('a = 13 | 7', '(15)'), # binary or
):
> asm = dis_single(line)
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_compiler.py:1351]:34:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
line = W_UnicodeObject('a = 2+3+4')
def dis_single(line):
> return disassemble(compile(line, '', 'single'))
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_compiler.py:1351]:15:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
func = <code object <module>, file "", line 1>
def disassemble(func):
from io import StringIO
import sys, dis
f = StringIO()
tmp = sys.stdout
sys.stdout = f
> dis.dis(func)
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_compiler.py:1351]:8:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object <module>, file "", line 1>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object <module>, file "", line 1>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object <module>, file "", line 1>, lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('d\x00Z\x00d\x01S\x00'), lasti = W_IntObject(-1)
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('a'))
co_consts = W_TupleObject(W_IntObject(9), <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('d\x00Z\x00d\x01S\x00')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('a'))
co_consts = W_TupleObject(W_IntObject(9), <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.EmptyListStrategy object at 0x7f663979cf50>, None)
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f6636633cd0>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
> elif deop == LOAD_SUPER_ATTR:
E (application-level) NameError: name 'LOAD_SUPER_ATTR' is not defined
../lib-python/3/dis.py:483: NameError
___________________ AppTestOptimizer.test_optimize_list_comp ___________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f6636309650>
def test_optimize_list_comp(self):
source = """def _f(a):
return [x for x in a if None]
"""
ns = {}
exec(source, ns)
code = ns['_f'].__code__
import sys, dis
from io import StringIO
s = StringIO()
out = sys.stdout
sys.stdout = s
try:
> dis.dis(code)
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_compiler.py:1423]:15:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object _f, file "<string>", line 1>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _f, file "<string>", line 1>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _f, file "<string>", line 1>, lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('d\x01\x84\x00|\x00D\x00\x83\x01S\x00')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, <code object <listcomp>, file "<string>", line 2>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('d\x01\x84\x00|\x00D\x00\x83\x01S\x00')
varname_from_oparg = bound method _varname_from_oparg, names = W_TupleObject()
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, <code object <listcomp>, file "<string>", line 2>)
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.EmptyListStrategy object at 0x7f663979cf50>, None)
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f66367514d0>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
elif deop == LOAD_SUPER_ATTR:
argval, argrepr = _get_name_info(arg//4, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
else:
argval, argrepr = _get_name_info(arg, get_name)
elif deop in hasjabs:
argval = arg*2
argrepr = "to " + repr(argval)
elif deop in hasjrel:
signed_arg = -arg if _is_backward_jump(deop) else arg
argval = offset + 2 + signed_arg*2
argval += 2 * caches
argrepr = "to " + repr(argval)
elif deop in haslocal or deop in hasfree:
argval, argrepr = _get_name_info(arg, varname_from_oparg)
elif deop in hascompare:
argval = cmp_op[arg>>4]
argrepr = argval
elif deop == FORMAT_VALUE:
argval, argrepr = FORMAT_VALUE_CONVERTERS[arg & 0x3]
argval = (argval, bool(arg & 0x4))
if argval[1]:
if argrepr:
argrepr += ', '
argrepr += 'with format'
elif deop == MAKE_FUNCTION:
argrepr = ', '.join(s for i, s in enumerate(MAKE_FUNCTION_FLAGS)
if arg & (1<<i))
> elif deop == BINARY_OP:
E (application-level) NameError: name 'BINARY_OP' is not defined
../lib-python/3/dis.py:512: NameError
___________________ AppTestOptimizer.test_call_method_kwargs ___________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f6636309650>
def test_call_method_kwargs(self):
if not self.is_pypy():
skip("CALL_METHOD exists only on pypy")
source = """def _f(a):
return a.f(a=a)
"""
ns = {}
exec(source, ns)
code = ns['_f'].__code__
import sys, dis
from io import StringIO
s = StringIO()
out = sys.stdout
sys.stdout = s
try:
> dis.dis(code)
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_compiler.py:1457]:17:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
x = <code object _f, file "<string>", line 1>
def dis(x=None, *, file=None, depth=None, show_caches=False, adaptive=False):
"""Disassemble classes, methods, functions, and other compiled objects.
With no argument, disassemble the last traceback.
Compiled objects currently include generator objects, async generator
objects, and coroutine objects, all of which store their code object
in a special attribute.
"""
if x is None:
distb(file=file, show_caches=show_caches, adaptive=adaptive)
return
# Extract functions from methods.
if hasattr(x, '__func__'):
x = x.__func__
# Extract compiled code objects from...
if hasattr(x, '__code__'): # ...a function, or
x = x.__code__
elif hasattr(x, 'gi_code'): #...a generator object, or
x = x.gi_code
elif hasattr(x, 'ag_code'): #...an asynchronous generator object, or
x = x.ag_code
elif hasattr(x, 'cr_code'): #...a coroutine.
x = x.cr_code
# Perform the disassembly.
if hasattr(x, '__dict__'): # Class or module
items = sorted(x.__dict__.items())
for name, x1 in items:
if isinstance(x1, _have_code):
print("Disassembly of %s:" % name, file=file)
try:
dis(x1, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
except TypeError as msg:
print("Sorry:", msg, file=file)
print(file=file)
elif hasattr(x, 'co_code'): # Code object
> _disassemble_recursive(x, file=file, depth=depth, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:114:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _f, file "<string>", line 1>
def _disassemble_recursive(co, *, file=None, depth=None, show_caches=False, adaptive=False):
> disassemble(co, file=file, show_caches=show_caches, adaptive=adaptive)
../lib-python/3/dis.py:555:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
co = <code object _f, file "<string>", line 1>, lasti = W_IntObject(-1)
def disassemble(co, lasti=-1, *, file=None, show_caches=False, adaptive=False):
"""Disassemble a code object."""
linestarts = dict(findlinestarts(co))
exception_entries = _parse_exception_table(co)
> _disassemble_bytes(_get_code_array(co, adaptive),
../lib-python/3/dis.py:548:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x00\xa0\x00|\x00d\x01\xcc\x01S\x00')
lasti = W_IntObject(-1), varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('f'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_TupleObject(W_UnicodeObject('a')))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
def _disassemble_bytes(code, lasti=-1, varname_from_oparg=None,
names=None, co_consts=None, linestarts=None,
*, file=None, line_offset=0, exception_entries=(),
co_positions=None, show_caches=False):
# Omit the line number column entirely if we have no line number info
show_lineno = bool(linestarts)
if show_lineno:
maxlineno = max(linestarts.values()) + line_offset
if maxlineno >= 1000:
lineno_width = len(str(maxlineno))
else:
lineno_width = 3
else:
lineno_width = 0
maxoffset = len(code) - 2
if maxoffset >= 10000:
offset_width = len(str(maxoffset))
else:
offset_width = 4
> for instr in _get_instructions_bytes(code, varname_from_oparg, names,
../lib-python/3/dis.py:586:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
code = W_BytesObject('|\x00\xa0\x00|\x00d\x01\xcc\x01S\x00')
varname_from_oparg = bound method _varname_from_oparg
names = W_TupleObject(W_UnicodeObject('f'))
co_consts = W_TupleObject(<pypy.objspace.std.noneobject.W_NoneObject object at 0x7f663b768dd0>, W_TupleObject(W_UnicodeObject('a')))
linestarts = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f663ad3f090>)
line_offset = W_IntObject(0)
exception_entries = W_ListObject(<pypy.objspace.std.listobject.EmptyListStrategy object at 0x7f663979cf50>, None)
co_positions = <pypy.objspace.std.iterobject.W_FastListIterObject object at 0x7f66381baad0>
show_caches = W_BoolObject(False)
def _get_instructions_bytes(code, varname_from_oparg=None,
names=None, co_consts=None,
linestarts=None, line_offset=0,
exception_entries=(), co_positions=None,
show_caches=False):
"""Iterate over the instructions in a bytecode string.
Generates a sequence of Instruction namedtuples giving the details of each
opcode. Additional information about the code's runtime environment
(e.g. variable names, co_consts) can be specified using optional
arguments.
"""
co_positions = co_positions or iter(())
get_name = None if names is None else names.__getitem__
labels = set(findlabels(code))
for start, end, target, _, _ in exception_entries:
for i in range(start, end):
labels.add(target)
starts_line = None
for offset, op, arg in _unpack_opargs(code):
if linestarts is not None:
starts_line = linestarts.get(offset, None)
if starts_line is not None:
starts_line += line_offset
is_jump_target = offset in labels
argval = None
argrepr = ''
positions = Positions(*next(co_positions, ()))
deop = _deoptop(op)
caches = _inline_cache_entries[deop]
if arg is not None:
# Set argval to the dereferenced value of the argument when
# available, and argrepr to the string representation of argval.
# _disassemble_bytes needs the string repr of the
# raw name index for LOAD_GLOBAL, LOAD_CONST, etc.
argval = arg
if deop in hasconst:
argval, argrepr = _get_const_info(deop, arg, co_consts)
elif deop in hasname:
if deop == LOAD_GLOBAL:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL + " + argrepr
elif deop == LOAD_ATTR:
argval, argrepr = _get_name_info(arg//2, get_name)
if (arg & 1) and argrepr:
argrepr = "NULL|self + " + argrepr
> elif deop == LOAD_SUPER_ATTR:
E (application-level) NameError: name 'LOAD_SUPER_ATTR' is not defined
../lib-python/3/dis.py:483: NameError
____________ AppTestExceptions.test_asterror_has_line_without_file _____________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f66367485d0>
def test_asterror_has_line_without_file(self):
code = u"print(1)\na/2 = 5\n"
with raises(SyntaxError) as excinfo:
compile(code, 'not a file!', 'exec')
> assert excinfo.value.text == "a/2 = 5\n"
E (application-level) AssertionError
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_compiler.py:1586]:5: AssertionError
______ AppTest_ModuleObject.test_repr_with_loader_with_valid_module_repr _______
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f66348aa810>
def test_repr_with_loader_with_valid_module_repr(self):
import sys
test_module = type(sys)("test_module", "doc")
# If the module has a __loader__ and that loader has a module_repr()
# method, call it with a single argument, which is the module object.
# The value returned is used as the module's repr.
class CustomLoader:
@classmethod
def module_repr(cls, module):
mod_repr = ("<module {mod_name}: "
"{cls} Test>".format(mod_name=repr(module.__name__),
cls=repr(cls.__name__)))
return mod_repr
test_module.__loader__ = CustomLoader
> assert repr(test_module) == "<module 'test_module': 'CustomLoader' Test>"
E (application-level) AssertionError
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_module.py:82]:16: AssertionError
____ AppTest_ModuleObject.test_repr_with_loader_with_module_repr_wrong_type ____
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f66348aa810>
def test_repr_with_loader_with_module_repr_wrong_type(self):
import sys
test_module = type(sys)("test_module", "doc")
# This return value must be a string.
class BuggyCustomLoader:
@classmethod
def module_repr(cls, module):
return 5
test_module.__loader__ = BuggyCustomLoader
> raises(TypeError, repr, test_module)
E (application-level) AssertionError: DID NOT RAISE
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_module.py:99]:12: AssertionError
_____ AppTest_ModuleObject.test_repr_with_loader_with_raising_module_repr2 _____
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f66348aa810>
def test_repr_with_loader_with_raising_module_repr2(self):
import sys
test_module = type(sys)("test_module", "doc")
# If an exception occurs in module_repr(), the exception is caught
# and discarded, and the calculation of the module's repr continues
# as if module_repr() did not exist.
class CustomLoaderWithRaisingRepr:
@classmethod
def module_repr(cls, module):
raise KeyboardInterrupt
test_module.__loader__ = CustomLoaderWithRaisingRepr
> raises(KeyboardInterrupt, 'repr(test_module)')
E (application-level) AssertionError: DID NOT RAISE
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_module.py:132]:13: AssertionError
_______________ AppTestSyntaxError.test_tokenizer_error_location _______________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f6631a50350>
def test_tokenizer_error_location(self):
line4 = "if ?: pass\n"
try:
exec("print\nprint\nprint\n" + line4)
except SyntaxError as e:
assert e.lineno == 4
> assert e.text == line4
E (application-level) AssertionError
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_syntax.py:608]:7: AssertionError
________________ AppTestSyntaxError.test_grammar_error_location ________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f6631a50350>
def test_grammar_error_location(self):
try:
exec("""if 1:
class Foo:
bla
a as e
bar
""")
except SyntaxError as e:
assert e.lineno == 4
> assert e.text.endswith('a as e\n')
E (application-level) AssertionError
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_syntax.py:619]:11: AssertionError
______________ AppTestSyntaxError.test_astbuilder_error_location _______________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f6631a50350>
def test_astbuilder_error_location(self):
program = "(1, 2) += (3, 4)\n"
try:
exec(program)
except SyntaxError as e:
assert e.lineno == 1
> assert e.text == program
E (application-level) AssertionError
[/build_dir/own-linux-x86-64/build/pypy/interpreter/test/test_syntax.py:635]:7: AssertionError
_____________________________ test_pytrace_dis_bug _____________________________
def test_pytrace_dis_bug():
output = run(sys.executable, pypypath, '-S',
stdin="__pytrace__ = 1\nfor i in range(1): i += 1\n")
output = output.replace('\r\n', '\n')
assert """\
\t<module>: LOAD_NAME 0 (range)
\t<module>: LOAD_CONST 0 (1)
\t<module>: CALL_FUNCTION 1
\t<module>: GET_ITER 0
\t<module>: FOR_ITER 6 (to 20)
\t<module>: STORE_NAME 1 (i)
\t<module>: LOAD_NAME 1 (i)
\t<module>: LOAD_CONST 0 (1)
\t<module>: INPLACE_ADD 0
\t<module>: STORE_NAME 1 (i)
\t<module>: JUMP_ABSOLUTE 4 (to 8)
\t<module>: FOR_ITER 6 (to 20)
\t<module>: LOAD_CONST 1 (None)
\t<module>: RETURN_VALUE 0
> """ in output
E assert '\t<module>: LOAD_NAME 0 (range)\n\t<module>: LOAD_CONST 0 (1)\n\t<module>: CALL_F... FOR_ITER 6 (to 20)\n\t<module>: LOAD_CONST 1 (None)\n\t<module>: RETURN_VALUE 0\n' in '>>>> Tracing enabled\n>>>> \t<module>: LOAD_NAME 0 (range)\n\t<module>: LOAD_CONST 0 (1)\n\... FOR_ITER 6 (to 20)\n\t<module>: LOAD_CONST 1 (None)\n\t<module>: RETURN_VALUE 0 \n>>>> '
interpreter/test/test_zpy.py:170: AssertionError
----------------------------- Captured stdout call -----------------------------
--- stdout ---
>>>> Tracing enabled
>>>> <module>: LOAD_NAME 0 (range)
<module>: LOAD_CONST 0 (1)
<module>: CALL_FUNCTION 1
<module>: GET_ITER 0
<module>: FOR_ITER 6 (to 20)
<module>: STORE_NAME 1 (i)
<module>: LOAD_NAME 1 (i)
<module>: LOAD_CONST 0 (1)
<module>: INPLACE_ADD 0
<module>: STORE_NAME 1 (i)
<module>: <153> 4
<module>: FOR_ITER 6 (to 20)
<module>: LOAD_CONST 1 (None)
<module>: RETURN_VALUE 0
>>>>
()
--- stderr ---
None
()
----------------------------- Captured stderr call -----------------------------
PyPy 7.3.24-alpha0 in StdObjSpace on top of Python 2.7.18 (startuptime: 10.09 secs)
=========================== short test summary info ============================
FAIL interpreter/test/apptest_exceptions.py::test_nested_except_raise_stored
FAIL interpreter/test/apptest_exceptions.py::test_try_except_finally_nested
FAIL interpreter/test/apptest_exctable_dis.py::test_dis_try_except_as
FAIL interpreter/test/apptest_exctable_dis.py::test_dis_try_except_no_name
FAIL interpreter/test/apptest_exctable_dis.py::test_dis_try_except_multi
FAIL interpreter/test/apptest_exctable_dis.py::test_dis_try_finally
FAIL interpreter/test/apptest_exctable_dis.py::test_dis_nested
FAIL interpreter/test/apptest_exctable_dis.py::test_dis_try_in_try
FAIL interpreter/test/apptest_exctable_dis.py::test_except_star_cleanup_lineno
FAIL interpreter/test/apptest_raise.py::test_revert_exc_info_2_finally
FAIL interpreter/test/apptest_raise.py::test_with_reraise_2
FAIL interpreter/test/apptest_traceback.py::test_traceback_positions_trailing_whitespace
FAIL interpreter/test/apptest_traceback.py::test_colors_in_traceback
FAIL interpreter/test/apptest_with_leak.py::test_shutil_pattern
FAIL interpreter/test/apptest_with_leak.py::test_lru_cache_style_with_lock_exception
FAIL interpreter/test/apptest_with_leak.py::test_lru_cache_exception_no_context
FAIL interpreter/test/apptest_with_leak.py::test_except_pass_around_lru_style_exception
FAIL interpreter/test/test_compiler.py::AppTestCompiler::()::test_cpython_issue2301
FAIL interpreter/test/test_compiler.py::AppTestOptimizer::()::test_folding_of_binops_on_constants
FAIL interpreter/test/test_compiler.py::AppTestOptimizer::()::test_optimize_list_comp
FAIL interpreter/test/test_compiler.py::AppTestOptimizer::()::test_call_method_kwargs
FAIL interpreter/test/test_compiler.py::AppTestExceptions::()::test_asterror_has_line_without_file
FAIL interpreter/test/test_module.py::AppTest_ModuleObject::()::test_repr_with_loader_with_valid_module_repr
FAIL interpreter/test/test_module.py::AppTest_ModuleObject::()::test_repr_with_loader_with_module_repr_wrong_type
FAIL interpreter/test/test_module.py::AppTest_ModuleObject::()::test_repr_with_loader_with_raising_module_repr2
FAIL interpreter/test/test_syntax.py::AppTestSyntaxError::()::test_tokenizer_error_location
FAIL interpreter/test/test_syntax.py::AppTestSyntaxError::()::test_grammar_error_location
FAIL interpreter/test/test_syntax.py::AppTestSyntaxError::()::test_astbuilder_error_location
FAIL interpreter/test/test_zpy.py::test_pytrace_dis_bug
======= 29 failed, 1326 passed, 18 skipped, 1 xpassed in 740.06 seconds ========
++ 20:32:10 starting module/_multiprocessing/test [25 started in total]
__ module/_multibytecodec/test [22 done in total, somefailed=False] ___________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 67 items
module/_multibytecodec/test/apptest_codecs.py ...................
module/_multibytecodec/test/apptest_incremental.py ....................
module/_multibytecodec/test/apptest_stream.py .....
module/_multibytecodec/test/test_c_codecs.py ..................s
module/_multibytecodec/test/test_multibtye_codecs.py ...
module/_multibytecodec/test/test_translation.py s
==================== 65 passed, 2 skipped in 53.75 seconds =====================
++ 20:32:47 starting module/_opcode/test [26 started in total]
__ module/_opcode/test [23 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 5 items
module/_opcode/test/apptest_opcode.py .....
========================== 5 passed in 14.84 seconds ===========================
++ 20:33:04 starting module/_pickle/test [27 started in total]
__ module/_multiprocessing/test [24 done in total, somefailed=False] __________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 12 items
module/_multiprocessing/test/test_interp_semaphore.py .
module/_multiprocessing/test/test_semaphore.py .........
module/_multiprocessing/test/test_win32.py s
module/_multiprocessing/test/test_ztranslation.py .
==================== 11 passed, 1 skipped in 122.57 seconds ====================
++ 20:34:13 starting module/_pickle_support/test [28 started in total]
__ module/_pickle_support/test [25 done in total, somefailed=False] ___________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/_pickle_support/test/apptest__pickle_support.py .
========================== 1 passed in 10.93 seconds ===========================
++ 20:34:26 starting module/_posixsubprocess/test [29 started in total]
__ module/_pickle/test [26 done in total, somefailed=True] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 29 items / 1 errors
module/_pickle/test/apptest_optional_frames.py FF
module/_pickle/test/apptest_pypy_extensions.py ...........................
==================================== ERRORS ====================================
_________ ERROR collecting pypy/module/_pickle/test/apptest_pickle.py __________
tool/pytest/apptest2.py:37: in collect
w_mod = create_module(space, w_name, fname, source)
tool/pytest/apptest2.py:56: in create_module
space.exec_(source, w_dict, w_dict, filename=filename)
interpreter/baseobjspace.py:1419: in exec_
return statement.exec_code(self, w_globals, w_locals)
interpreter/eval.py:33: in exec_code
return frame.run()
interpreter/pyframe.py:257: in run
return self.execute_frame()
interpreter/pyframe.py:350: in execute_frame
executioncontext)
interpreter/pyopcode.py:68: in dispatch
next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:91: in handle_bytecode
next_instr = self.handle_operation_error(ec, operr)
interpreter/pyopcode.py:74: in handle_bytecode
next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:347: in dispatch_bytecode
self.IMPORT_FROM(oparg, next_instr)
interpreter/pyopcode.py:1205: in IMPORT_FROM
self.pushvalue(self.import_from(w_module, w_name))
interpreter/pyopcode.py:1246: in import_from
w_pkgpath,
interpreter/error.py:891: in raise_import_error
raise OperationError(space.w_ImportError, w_exc)
E OperationError: [<W_TypeObject 'ImportError' at 0x7f11f9664a50>: W_ImportError([W_UnicodeObject("cannot import name 'PickleBuffer' from 'pickle' (/build_dir/own-linux-x86-64/build/lib-python/3/pickle.py)")])]
=================================== FAILURES ===================================
_______________________ test_oob_buffers_py_dump_c_load ________________________
def test_oob_buffers_py_dump_c_load():
import sys, io, pickle, pickletools, _pickle
mod = type(sys)('apptest_optional_frames')
mod.ZeroCopyBytes = ZeroCopyBytes
mod.ZeroCopyBytearray = ZeroCopyBytearray
ZeroCopyBytes.__module__ = 'apptest_optional_frames'
ZeroCopyBytearray.__module__ = 'apptest_optional_frames'
sys.modules.setdefault('apptest_optional_frames', mod)
def count_opcode(code, pickled):
n = 0
for op, _, _ in pickletools.genops(pickled):
if op.code == code.decode('latin-1'):
n += 1
return n
def dumps(obj, proto, buffer_callback=None):
buf = io.BytesIO()
pickle._Pickler(buf, proto, buffer_callback=buffer_callback).dump(obj)
return buf.getvalue()
def loads(data, buffers=None):
return _pickle.loads(data, buffers=buffers)
if pickle.HIGHEST_PROTOCOL < 5:
return
bytestring = b"abcdefgh"
for obj in (ZeroCopyBytes(bytestring), ZeroCopyBytearray(bytestring)):
for proto in range(5, pickle.HIGHEST_PROTOCOL + 1):
buffers = []
buffer_callback = lambda pb: buffers.append(pb.raw())
> data = dumps(obj, proto, buffer_callback=buffer_callback)
module/_pickle/test/apptest_optional_frames.py:89:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj = W_BytesObjectUserDictWeakrefable('abcdefgh'), proto = W_IntObject(5)
buffer_callback = <Function <lambda>>
def dumps(obj, proto, buffer_callback=None):
buf = io.BytesIO()
> pickle._Pickler(buf, proto, buffer_callback=buffer_callback).dump(obj)
module/_pickle/test/apptest_optional_frames.py:75:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f11f6919150>
obj = W_BytesObjectUserDictWeakrefable('abcdefgh')
def dump(self, obj):
"""Write a pickled representation of obj to the open file."""
# Check whether Pickler was initialized correctly. This is
# only needed to mimic the behavior of _pickle.Pickler.dump().
if not hasattr(self, "_file_write"):
raise PicklingError("Pickler.__init__() was not called by "
"%s.__init__()" % (self.__class__.__name__,))
if self.proto >= 2:
> self.write(PROTO + pack("<B", self.proto))
E (application-level) AttributeError: '_Pickler' object has no attribute 'write'
../lib-python/3/pickle.py:496: AttributeError
_____________________ test_optional_frames_py_dump_c_load ______________________
def test_optional_frames_py_dump_c_load():
import io, pickle, pickletools, _pickle
FRAME_SIZE_TARGET = 64 * 1024
def dumps(obj, proto, **kwargs):
buf = io.BytesIO()
pickle._Pickler(buf, proto, **kwargs).dump(obj)
return buf.getvalue()
def loads(data):
return _pickle.loads(data)
def count_opcode(code, pickled):
n = 0
for op, _, _ in pickletools.genops(pickled):
if op.name == code:
n += 1
return n
def remove_frames(pickled, keep_frame=None):
frame_starts = []
frame_opcode_size = 9
for opcode, _, pos in pickletools.genops(pickled):
if opcode.name == 'FRAME':
frame_starts.append(pos)
newpickle = bytearray()
last_frame_end = 0
for i, pos in enumerate(frame_starts):
if keep_frame and keep_frame(i):
continue
newpickle += pickled[last_frame_end:pos]
last_frame_end = pos + frame_opcode_size
newpickle += pickled[last_frame_end:]
return newpickle
if pickle.HIGHEST_PROTOCOL < 4:
return
frame_size = FRAME_SIZE_TARGET
num_frames = 20
for bytes_type in (bytes, bytearray):
obj = {i: bytes_type([i]) * frame_size for i in range(num_frames)}
for proto in range(4, pickle.HIGHEST_PROTOCOL + 1):
> pickled = dumps(obj, proto)
module/_pickle/test/apptest_optional_frames.py:155:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
obj = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f11f8e60f10>)
proto = W_IntObject(4)
kwargs = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f11f9221490>)
buf = <pypy.module._io.interp_bytesio.W_BytesIO object at 0x7f11f6fc6610>
def dumps(obj, proto, **kwargs):
buf = io.BytesIO()
> pickle._Pickler(buf, proto, **kwargs).dump(obj)
module/_pickle/test/apptest_optional_frames.py:118:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f11f6fc6990>
obj = W_DictObject(<pypy.objspace.std.dictmultiobject.IntDictStrategy object at 0x7f11f8e60f10>)
def dump(self, obj):
"""Write a pickled representation of obj to the open file."""
# Check whether Pickler was initialized correctly. This is
# only needed to mimic the behavior of _pickle.Pickler.dump().
if not hasattr(self, "_file_write"):
raise PicklingError("Pickler.__init__() was not called by "
"%s.__init__()" % (self.__class__.__name__,))
if self.proto >= 2:
> self.write(PROTO + pack("<B", self.proto))
E (application-level) AttributeError: '_Pickler' object has no attribute 'write'
../lib-python/3/pickle.py:496: AttributeError
=========================== short test summary info ============================
FAIL module/_pickle/test/apptest_optional_frames.py::test_oob_buffers_py_dump_c_load
FAIL module/_pickle/test/apptest_optional_frames.py::test_optional_frames_py_dump_c_load
================ 2 failed, 27 passed, 1 error in 93.92 seconds =================
++ 20:34:39 starting module/_pypyjson/test [30 started in total]
__ module/_pypyjson/test [27 done in total, somefailed=False] _________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 55 items
module/_pypyjson/test/apptest__pypyjson.py ........
module/_pypyjson/test/test__pypyjson.py ............................................
module/_pypyjson/test/test_simd.py ...
========================== 55 passed in 66.06 seconds ==========================
++ 20:35:51 starting module/_random/test [31 started in total]
__ module/_random/test [28 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 13 items
module/_random/test/test_random.py ............
module/_random/test/test_ztranslation.py .
========================== 13 passed in 21.63 seconds ==========================
++ 20:36:15 starting module/_rawffi/alt/test [32 started in total]
__ module/_io/test [29 done in total, somefailed=False] _______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 286 items / 1 skipped
module/_io/test/apptest_bufferedio.py .
module/_io/test/apptest_bytesio.py .................
module/_io/test/apptest_io.py ...........................................
module/_io/test/apptest_stringio.py ...........................
module/_io/test/apptest_textio.py ..............................s.................
module/_io/test/test_bufferedio.py .......................................................................ss................................
module/_io/test/test_fileio.py ....................................
module/_io/test/test_interp_textio.py .........
=================== 283 passed, 4 skipped in 407.57 seconds ====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fa795285110>> ignored
++ 20:36:23 starting module/_rawffi/test [33 started in total]
__ module/_rawffi/alt/test [30 done in total, somefailed=False] _______________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 73 items
module/_rawffi/alt/test/test_ffitype.py .....
module/_rawffi/alt/test/test_funcptr.py ..................................ssssss.s
module/_rawffi/alt/test/test_struct.py ...............
module/_rawffi/alt/test/test_type_converter.py ...........
==================== 66 passed, 7 skipped in 23.37 seconds =====================
++ 20:36:39 starting module/_socket/test [34 started in total]
__ module/_posixsubprocess/test [31 done in total, somefailed=False] __________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 10 items
module/_posixsubprocess/test/apptest_subprocess.py .........
module/_posixsubprocess/test/test_ztranslation.py .
========================= 10 passed in 140.08 seconds ==========================
++ 20:36:51 starting module/_sre/test [35 started in total]
__ module/_rawffi/test [32 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 85 items
module/_rawffi/test/apptest_rawffi.py ..
module/_rawffi/test/test__rawffi.py .....s.............................................s..........s...n: 2
Arg 0: 3
Arg 1: 15
...
module/_rawffi/test/test_exit.py .
module/_rawffi/test/test_nested.py ......
module/_rawffi/test/test_struct.py ...
module/_rawffi/test/test_tracker.py ...
module/_rawffi/test/test_ztranslation.py .
==================== 82 passed, 3 skipped in 90.92 seconds =====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fc96e935f50>> ignored
++ 20:37:58 starting module/_vmprof/test [36 started in total]
__ module/_vmprof/test [33 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 7 items
module/_vmprof/test/test__vmprof.py .....
module/_vmprof/test/test_direct.py ..
========================== 7 passed in 54.25 seconds ===========================
++ 20:38:56 starting module/_warnings/test [37 started in total]
__ module/_socket/test [34 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 87 items
module/_socket/test/apptest_socket.py .....................ss..................s................s...
module/_socket/test/test_sock_app.py .................ss.....
module/_socket/test/test_ztranslation.py .
==================== 81 passed, 6 skipped in 164.74 seconds ====================
++ 20:39:26 starting module/_weakref/test [38 started in total]
__ module/_warnings/test [35 done in total, somefailed=True] __________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 17 items
module/_warnings/test/apptest_warnings.py ........s.s.....
module/_warnings/test/test_warnings.py F
=================================== FAILURES ===================================
_________________________ test_warn_globals_immutable __________________________
space = StdObjSpace
def test_warn_globals_immutable(space):
w_import = space.builtin.getdictvalue(space, '__import__')
w_warnings = space.call_function(w_import, space.newtext("warnings"))
# the test fails if the following line returns an ObjectMutableCell (which
# has no .name)
w_warn = w_warnings.w_dict.dstorage._x['warn']
> assert w_warn.name == 'warn'
E AttributeError: 'ObjectMutableCell' object has no attribute 'name'
module/_warnings/test/test_warnings.py:7: AttributeError
=========================== short test summary info ============================
FAIL module/_warnings/test/test_warnings.py::test_warn_globals_immutable
=============== 1 failed, 14 passed, 2 skipped in 33.07 seconds ================
++ 20:39:34 starting module/_winreg/test [39 started in total]
__ module/_winreg/test [36 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 0 items / 1 skipped
========================== 1 skipped in 0.03 seconds ===========================
++ 20:39:34 starting module/array/test [40 started in total]
__ module/_sre/test [37 done in total, somefailed=False] ______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 163 items
module/_sre/test/apptest_sre.py .....................................................................
module/_sre/test/test_app_sre.py .........................................s.s......................
module/_sre/test/test_sre_buf.py ............................
=================== 161 passed, 2 skipped in 161.05 seconds ====================
++ 20:39:37 starting module/atexit/test [41 started in total]
__ module/atexit/test [38 done in total, somefailed=False] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 2 items
module/atexit/test/apptest_atexit.py ..
========================== 2 passed in 19.48 seconds ===========================
++ 20:39:57 starting module/binascii/test [42 started in total]
__ module/binascii/test [39 done in total, somefailed=False] __________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 18 items
module/binascii/test/test_binascii.py ..................
========================== 18 passed in 22.51 seconds ==========================
++ 20:40:21 starting module/bz2/test [43 started in total]
__ module/_weakref/test [40 done in total, somefailed=False] __________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 43 items
module/_weakref/test/apptest_weakref.py ...........................................
========================== 43 passed in 76.65 seconds ==========================
++ 20:40:46 starting module/cmath/test [44 started in total]
__ module/cmath/test [41 done in total, somefailed=False] _____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 18 items
module/cmath/test/test_cmath.py ..................
========================== 18 passed in 12.13 seconds ==========================
++ 20:41:00 starting module/cpyext/test/test_api.py [45 started in total]
__ module/array/test [42 done in total, somefailed=False] _____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 64 items
module/array/test/apptest_array.py ...
module/array/test/test_array.py .....................s..................s...................
module/array/test/test_ztranslation.py .
==================== 62 passed, 2 skipped in 109.50 seconds ====================
++ 20:41:31 starting module/cpyext/test/test_arraymodule.py [46 started in total]
__ module/cpyext/test/test_api.py [43 done in total, somefailed=False] ________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 4 items
module/cpyext/test/test_api.py ....
========================== 4 passed in 29.35 seconds ===========================
++ 20:41:44 starting module/cpyext/test/test_async_iter.py [47 started in total]
__ module/cpyext/test/test_async_iter.py [44 done in total, somefailed=False] _
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/cpyext/test/test_async_iter.py sss
========================== 3 skipped in 25.63 seconds ==========================
++ 20:42:28 starting module/cpyext/test/test_boolobject.py [48 started in total]
__ module/cpyext/test/test_arraymodule.py [45 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 18 items
module/cpyext/test/test_arraymodule.py ..........x.......
==================== 17 passed, 1 xfailed in 93.77 seconds =====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fb50c700850>> ignored
Exception TypeError: "'NoneType' object is not callable" in <function callback at 0x7fb50c1b9d50> ignored
Exception TypeError: "'NoneType' object is not callable" in <function callback at 0x7fb50c4e8450> ignored
++ 20:43:19 starting module/cpyext/test/test_borrow.py [49 started in total]
__ module/cpyext/test/test_boolobject.py [46 done in total, somefailed=False] _
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 4 items
module/cpyext/test/test_boolobject.py ....
========================== 4 passed in 46.22 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7ff04edf78d0>> ignored
++ 20:43:34 starting module/cpyext/test/test_buffer.py [50 started in total]
__ module/bz2/test [47 done in total, somefailed=False] _______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 53 items
module/bz2/test/apptest_bz2_compdecomp.py .s...
module/bz2/test/test_bz2_compdecomp.py ..s.............
module/bz2/test/test_bz2_file.py ............................
module/bz2/test/test_interpbz2.py ...
module/bz2/test/test_large.py s
==================== 50 passed, 3 skipped in 227.47 seconds ====================
++ 20:44:13 starting module/cpyext/test/test_bytearrayobject.py [51 started in total]
__ module/cpyext/test/test_borrow.py [48 done in total, somefailed=False] _____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/cpyext/test/test_borrow.py ...
========================== 3 passed in 45.31 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f5380c56850>> ignored
++ 20:44:18 starting module/cpyext/test/test_bytesobject.py [52 started in total]
__ module/cpyext/test/test_buffer.py [49 done in total, somefailed=False] _____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 5 items
module/cpyext/test/test_buffer.py .....
========================== 5 passed in 64.58 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7ff5affa7610>> ignored
++ 20:44:54 starting module/cpyext/test/test_capsule.py [53 started in total]
__ module/cpyext/test/test_bytearrayobject.py [50 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 6 items
module/cpyext/test/test_bytearrayobject.py ......
========================== 6 passed in 52.52 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f1963650ad0>> ignored
++ 20:45:18 starting module/cpyext/test/test_cell.py [54 started in total]
__ module/cpyext/test/test_bytesobject.py [51 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 20 items
module/cpyext/test/test_bytesobject.py ....................
========================== 20 passed in 86.15 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fc003241810>> ignored
++ 20:46:00 starting module/cpyext/test/test_classobject.py [55 started in total]
__ module/cpyext/test/test_capsule.py [52 done in total, somefailed=False] ____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/cpyext/test/test_capsule.py ...
========================== 3 passed in 60.75 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fa9959af790>> ignored
++ 20:46:14 starting module/cpyext/test/test_codecs.py [56 started in total]
__ module/cpyext/test/test_cell.py [53 done in total, somefailed=False] _______
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_cell.py .
========================== 1 passed in 41.73 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7eff19bcce50>> ignored
++ 20:46:17 starting module/cpyext/test/test_complexobject.py [57 started in total]
__ module/cpyext/test/test_classobject.py [54 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 2 items
module/cpyext/test/test_classobject.py ..
========================== 2 passed in 41.77 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f2b068ffa10>> ignored
++ 20:46:58 starting module/cpyext/test/test_contextvars.py [58 started in total]
__ module/cpyext/test/test_codecs.py [55 done in total, somefailed=False] _____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/cpyext/test/test_codecs.py ...
========================== 3 passed in 46.06 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fa418a08b50>> ignored
++ 20:47:20 starting module/cpyext/test/test_cpyext.py [59 started in total]
__ module/cpyext/test/test_complexobject.py [56 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 6 items
module/cpyext/test/test_complexobject.py ......
========================== 6 passed in 53.07 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fe1179d49d0>> ignored
++ 20:47:22 starting module/cpyext/test/test_datetime.py [60 started in total]
__ module/cpyext/test/test_contextvars.py [57 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_contextvars.py .
========================== 1 passed in 62.00 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f574b67c810>> ignored
++ 20:48:18 starting module/cpyext/test/test_dictobject.py [61 started in total]
__ module/cpyext/test/test_datetime.py [58 done in total, somefailed=True] ____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 16 items
module/cpyext/test/test_datetime.py .....FF.F.......
=================================== FAILURES ===================================
______________________ TestDatetime.test_basicsize[Time] _______________________
self = <pypy.module.cpyext.test.test_datetime.TestDatetime object at 0x7f4bf58f41d0>
space = StdObjSpace, name = 'Time'
@pytest.mark.parametrize('name', ['Time', 'DateTime', 'Date', 'Delta'])
def test_basicsize(self, space, name):
datetime = _PyDateTime_Import(space)
py_size = getattr(datetime, "c_%sType" % name).c_tp_basicsize
c_size = rffi.sizeof(cts.gettype("PyDateTime_%s" % name))
> assert py_size == c_size
E assert 24 == 40
module/cpyext/test/test_datetime.py:124: AssertionError
____________________ TestDatetime.test_basicsize[DateTime] _____________________
self = <pypy.module.cpyext.test.test_datetime.TestDatetime object at 0x7f4bf5905050>
space = StdObjSpace, name = 'DateTime'
@pytest.mark.parametrize('name', ['Time', 'DateTime', 'Date', 'Delta'])
def test_basicsize(self, space, name):
datetime = _PyDateTime_Import(space)
py_size = getattr(datetime, "c_%sType" % name).c_tp_basicsize
c_size = rffi.sizeof(cts.gettype("PyDateTime_%s" % name))
> assert py_size == c_size
E assert 24 == 40
module/cpyext/test/test_datetime.py:124: AssertionError
______________________ TestDatetime.test_basicsize[Delta] ______________________
self = <pypy.module.cpyext.test.test_datetime.TestDatetime object at 0x7f4bf5c17690>
space = StdObjSpace, name = 'Delta'
@pytest.mark.parametrize('name', ['Time', 'DateTime', 'Date', 'Delta'])
def test_basicsize(self, space, name):
datetime = _PyDateTime_Import(space)
py_size = getattr(datetime, "c_%sType" % name).c_tp_basicsize
c_size = rffi.sizeof(cts.gettype("PyDateTime_%s" % name))
> assert py_size == c_size
E assert 24 == 40
module/cpyext/test/test_datetime.py:124: AssertionError
=========================== short test summary info ============================
FAIL module/cpyext/test/test_datetime.py::TestDatetime::()::test_basicsize[Time]
FAIL module/cpyext/test/test_datetime.py::TestDatetime::()::test_basicsize[DateTime]
FAIL module/cpyext/test/test_datetime.py::TestDatetime::()::test_basicsize[Delta]
===================== 3 failed, 13 passed in 94.75 seconds =====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f4bf5595850>> ignored
++ 20:49:11 starting module/cpyext/test/test_eval.py [62 started in total]
__ module/cpyext/test/test_cpyext.py [59 done in total, somefailed=False] _____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 26 items
module/cpyext/test/test_cpyext.py ..s........s..............
==================== 24 passed, 2 skipped in 108.03 seconds ====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7feb433cb190>> ignored
++ 20:49:23 starting module/cpyext/test/test_exception.py [63 started in total]
__ module/cpyext/test/test_dictobject.py [60 done in total, somefailed=False] _
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 19 items
module/cpyext/test/test_dictobject.py ...................
========================== 19 passed in 84.71 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f09c7737910>> ignored
++ 20:50:00 starting module/cpyext/test/test_fileobject.py [64 started in total]
__ module/_hpy_universal/test/_vendored [61 done in total, somefailed=False] __
('warning: setuptools.command.build does not exist in setuptools', '44.1.1', 'on', '2.7.18 (default, Jan 29 2025, 22:16:55) \n[GCC 10.2.1 20210130 (Red Hat 10.2.1-11)]')
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 784 items
module/_hpy_universal/test/_vendored/test_00_basic.py ..........................................................
module/_hpy_universal/test/_vendored/test_argparse.py ..........................................................................................
module/_hpy_universal/test/_vendored/test_call.py ..........
module/_hpy_universal/test/_vendored/test_capsule.py ..........
module/_hpy_universal/test/_vendored/test_capsule_legacy.py ..
module/_hpy_universal/test/_vendored/test_contextvar.py ..
module/_hpy_universal/test/_vendored/test_cpy_compat.py ................
module/_hpy_universal/test/_vendored/test_eval.py ....
module/_hpy_universal/test/_vendored/test_helpers.py ......
module/_hpy_universal/test/_vendored/test_hpybuildvalue.py ..............
module/_hpy_universal/test/_vendored/test_hpybytes.py ............
module/_hpy_universal/test/_vendored/test_hpydict.py ............
module/_hpy_universal/test/_vendored/test_hpyerr.py ..ss..............................ss..
module/_hpy_universal/test/_vendored/test_hpyfield.py ssss........ssss..
module/_hpy_universal/test/_vendored/test_hpyglobal.py ..
module/_hpy_universal/test/_vendored/test_hpyimport.py ..
module/_hpy_universal/test/_vendored/test_hpyiter.py ....
module/_hpy_universal/test/_vendored/test_hpylist.py ..........
module/_hpy_universal/test/_vendored/test_hpylong.py ....................................
module/_hpy_universal/test/_vendored/test_hpymodule.py ................
module/_hpy_universal/test/_vendored/test_hpyslice.py ......
module/_hpy_universal/test/_vendored/test_hpystructseq.py ....
module/_hpy_universal/test/_vendored/test_hpytuple.py ........
module/_hpy_universal/test/_vendored/test_hpytype.py ......................ss..................................................
module/_hpy_universal/test/_vendored/test_hpytype_legacy.py ....................ss..............................................................
module/_hpy_universal/test/_vendored/test_hpyunicode.py ..........................................
module/_hpy_universal/test/_vendored/test_importing.py ss
module/_hpy_universal/test/_vendored/test_legacy_forbidden.py ....ssss
module/_hpy_universal/test/_vendored/test_number.py ..................
module/_hpy_universal/test/_vendored/test_object.py ..................................................
module/_hpy_universal/test/_vendored/test_slots.py ..........................................
module/_hpy_universal/test/_vendored/test_slots_legacy.py ......................................................
module/_hpy_universal/test/_vendored/test_tracker.py ............
module/_hpy_universal/test/_vendored/debug/apptest_builder_invalid.py ....
module/_hpy_universal/test/_vendored/debug/apptest_handles.py ..........sss
module/_hpy_universal/test/_vendored/debug/apptest_handles_invalid.py .
================== 759 passed, 25 skipped in 1275.25 seconds ===================
Exception TypeError: "'NoneType' object is not callable" in <function callback at 0x7f5389de6850> ignored
Exception TypeError: "'NoneType' object is not callable" in <function callback at 0x7f5389b62b50> ignored
++ 20:50:15 starting module/cpyext/test/test_floatobject.py [65 started in total]
__ module/cpyext/test/test_exception.py [62 done in total, somefailed=False] __
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 6 items
module/cpyext/test/test_exception.py ......
========================== 6 passed in 52.67 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fc39c68af10>> ignored
++ 20:50:29 starting module/cpyext/test/test_frameobject.py [66 started in total]
__ module/cpyext/test/test_eval.py [63 done in total, somefailed=False] _______
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 19 items
module/cpyext/test/test_eval.py ...................
========================== 19 passed in 85.75 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f8a3d522f90>> ignored
++ 20:50:53 starting module/cpyext/test/test_funcobject.py [67 started in total]
__ module/cpyext/test/test_fileobject.py [64 done in total, somefailed=False] _
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_fileobject.py .
========================== 1 passed in 40.18 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fbddb0ce850>> ignored
++ 20:50:58 starting module/cpyext/test/test_genobject.py [68 started in total]
__ module/cpyext/test/test_frameobject.py [65 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 4 items
module/cpyext/test/test_frameobject.py ....
========================== 4 passed in 52.89 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f61574dde10>> ignored
++ 20:51:42 starting module/cpyext/test/test_getargs.py [69 started in total]
__ module/cpyext/test/test_floatobject.py [66 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 14 items
module/cpyext/test/test_floatobject.py ..............
========================== 14 passed in 74.45 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f20b4bc1f50>> ignored
++ 20:51:43 starting module/cpyext/test/test_import.py [70 started in total]
__ module/cpyext/test/test_genobject.py [67 done in total, somefailed=False] __
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/cpyext/test/test_genobject.py ...
========================== 3 passed in 95.92 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f6fa403f450>> ignored
++ 20:52:47 starting module/cpyext/test/test_iterator.py [71 started in total]
__ module/cpyext/test/test_funcobject.py [68 done in total, somefailed=False] _
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 14 items
module/cpyext/test/test_funcobject.py ..............
========================= 14 passed in 113.39 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fd5531e6650>> ignored
++ 20:53:04 starting module/cpyext/test/test_listobject.py [72 started in total]
__ module/cpyext/test/test_getargs.py [69 done in total, somefailed=False] ____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 16 items
module/cpyext/test/test_getargs.py ................
========================== 16 passed in 75.01 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fe07a644a90>> ignored
++ 20:53:16 starting module/cpyext/test/test_longobject.py [73 started in total]
__ module/cpyext/test/test_iterator.py [70 done in total, somefailed=False] ___
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 6 items
module/cpyext/test/test_iterator.py ......
========================== 6 passed in 49.55 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f0762623bd0>> ignored
++ 20:53:53 starting module/cpyext/test/test_mapping.py [74 started in total]
__ module/cpyext/test/test_import.py [71 done in total, somefailed=True] ______
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 8 items
module/cpyext/test/test_import.py ...FF...
=================================== FAILURES ===================================
____________________________ TestImport.test_reload ____________________________
self = <pypy.module.cpyext.test.test_import.TestImport object at 0x7ff509077710>
space = StdObjSpace
def test_reload(self, space):
stat = PyImport_Import(space, space.wrap("stat"))
space.delattr(stat, space.wrap("S_IMODE"))
> stat = PyImport_ReloadModule(space, stat)
module/cpyext/test/test_import.py:40:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
module/cpyext/api.py:449: in unwrapper
result = self.callable(space, *newargs)
module/cpyext/import_.py:79: in PyImport_ReloadModule
w_imp = space.call_function(w_import, space.newtext('imp'))
interpreter/baseobjspace.py:1237: in call_function
return w_func.funccall(*args_w)
interpreter/function.py:138: in funccall
return self.call_args(Arguments(self.space, list(args_w)))
interpreter/function.py:82: in call_args
w_res = self.getcode().funcrun(self, args)
interpreter/gateway.py:869: in funcrun
return BuiltinCode.funcrun_obj(self, func, None, args)
interpreter/gateway.py:884: in funcrun_obj
self.handle_exception(space, e)
interpreter/gateway.py:878: in funcrun_obj
w_result = activation._run(space, scope_w)
<2206-codegen /build_dir/own-linux-x86-64/build/rpython/tool/sourcetools.py:200>:3: in _run
return self.behavior(space, scope_w[0], scope_w[1], scope_w[2], scope_w[3], scope_w[4])
module/_frozen_importlib/interp_import.py:96: in interp___import__
w_level)
interpreter/baseobjspace.py:1241: in call_function
return self.call_args(w_func, args)
objspace/descroperation.py:192: in call_args
return w_obj.call_args(args)
interpreter/function.py:82: in call_args
w_res = self.getcode().funcrun(self, args)
interpreter/pycode.py:280: in funcrun
return frame.run(func.name, func.qualname)
interpreter/pyframe.py:257: in run
return self.execute_frame()
interpreter/pyframe.py:350: in execute_frame
executioncontext)
interpreter/pyopcode.py:68: in dispatch
next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:91: in handle_bytecode
next_instr = self.handle_operation_error(ec, operr)
interpreter/pyopcode.py:74: in handle_bytecode
next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:307: in dispatch_bytecode
self.CALL_FUNCTION(oparg, next_instr)
interpreter/pyopcode.py:1462: in CALL_FUNCTION
w_result = self.space.call_valuestack(w_function, nargs, self, dropvalues=nargs+1)
interpreter/baseobjspace.py:1264: in call_valuestack
nargs, frame, methodcall=methodcall, dropvalues=dropvalues)
interpreter/function.py:194: in funccall_valuestack
natural_arity - nargs, dropvalues)
interpreter/function.py:232: in _flat_pycall_defaults
return new_frame.run(self.name, self.qualname)
interpreter/pyframe.py:257: in run
return self.execute_frame()
interpreter/pyframe.py:350: in execute_frame
executioncontext)
interpreter/pyopcode.py:68: in dispatch
next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:91: in handle_bytecode
next_instr = self.handle_operation_error(ec, operr)
interpreter/pyopcode.py:74: in handle_bytecode
next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:307: in dispatch_bytecode
self.CALL_FUNCTION(oparg, next_instr)
interpreter/pyopcode.py:1462: in CALL_FUNCTION
w_result = self.space.call_valuestack(w_function, nargs, self, dropvalues=nargs+1)
interpreter/baseobjspace.py:1264: in call_valuestack
nargs, frame, methodcall=methodcall, dropvalues=dropvalues)
interpreter/function.py:188: in funccall_valuestack
return self._flat_pycall(code, nargs, frame, dropvalues)
interpreter/function.py:215: in _flat_pycall
return new_frame.run(self.name, self.qualname)
interpreter/pyframe.py:257: in run
return self.execute_frame()
interpreter/pyframe.py:350: in execute_frame
executioncontext)
interpreter/pyopcode.py:68: in dispatch
next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:95: in handle_bytecode
reraise_lasti=e.lasti)
interpreter/pyopcode.py:74: in handle_bytecode
next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:245: in dispatch_bytecode
return self.RERAISE(oparg, next_instr)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object _find_and_load, file "<frozen importlib._bootstrap>", line 1349> at line 1360
oparg = 1, next_instr = 122L
def RERAISE(self, oparg, next_instr):
# CPython 3.11 RERAISE N semantics: if N > 0, read the lasti (int)
# from PEEK(N + 1) [i.e., N slots below TOS after pushing exc], set
# self.last_instr to it so the re-raised exception's traceback/lineno
# reflect the original raise site, then pop the exception and raise.
# N == 0 is a plain reraise of TOS. Stack before: [..., lasti, exc]
# for N == 1; after: [..., lasti]. The surrounding handler is
# expected to have already done its POP_EXCEPT if sys.exc_info needs
# restoring (PyPy no longer bundles POP_EXCEPT into RERAISE 1).
if oparg:
# PEEK(oparg + 1): 0 == TOS (exc), oparg is the lasti slot.
# Pass via RaiseWithExplicitTraceback rather than self.last_instr:
# the table lookup must use the RERAISE site offset, not lasti.
reraise_lasti = self.space.int_w(self.peekvalue(oparg))
else:
reraise_lasti = -1
w_exc = self.popvalue()
from pypy.module.exceptions.interp_exceptions import W_BaseException
space = self.space
w_value = space.interp_w(W_BaseException, w_exc)
w_type = space.type(w_exc)
operr = OperationError(w_type, w_exc, w_value.w_traceback)
# Raise as RaiseWithExplicitTraceback so that handle_bytecode
# dispatches via its 'except RaiseWithExplicitTraceback' branch
# (calling handle_operation_error with attach_tb=False). This
# avoids a spurious traceback entry and exception_trace call that
# would occur if the OperationError bubbled up to the plain
# 'except OperationError' branch in handle_bytecode.
> raise RaiseWithExplicitTraceback(operr, reraise_lasti)
E OperationError: [<W_TypeObject 'ModuleNotFoundError' at 0x7ff50ab79790>: W_ImportErrorUserWeakrefable([W_UnicodeObject("No module named 'imp'")])]
interpreter/pyopcode.py:1456: OperationError
___________________ TestImport.test_ImportModuleLevelObject ____________________
self = <pypy.module.cpyext.test.test_import.TestImport object at 0x7ff5088e6f50>
space = StdObjSpace
def test_ImportModuleLevelObject(self, space):
w_mod = PyImport_ImportModuleLevelObject(
space, space.wrap('stat'), None, None, None, 0)
assert w_mod
> assert space.getattr(w_mod, space.wrap("S_IMODE"))
module/cpyext/test/test_import.py:47:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
objspace/std/objspace.py:670: in getattr
return self._handle_getattribute(w_descr, w_obj, w_name)
objspace/descroperation.py:238: in _handle_getattribute
return space.get_and_call_function(w_descr, w_obj, w_name)
objspace/descroperation.py:183: in get_and_call_function
return w_descr.funccall(w_obj, *args_w)
interpreter/function.py:115: in funccall
return code.fastcall_2(self.space, self, args_w[0], args_w[1])
interpreter/gateway.py:1006: in fastcall_2
self.handle_exception(space, e)
interpreter/gateway.py:1001: in fastcall_2
w_result = self.fastfunc_2(space, w1, w2)
<314-codegen /build_dir/own-linux-x86-64/build/rpython/tool/sourcetools.py:200>:3: in fastfunc_descr_getattribute_2
return func(space.interp_w(Module, w0), space, w1)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.module.Module object at 0x7ff509345dd0>
space = StdObjSpace, w_attr = W_UnicodeObject('S_IMODE')
def descr_getattribute(self, space, w_attr):
from pypy.objspace.descroperation import object_getattribute
from pypy.module.imp.importing import (is_spec_initializing,
is_spec_uninitialized_submodule)
try:
return space.call_function(object_getattribute(space), self, w_attr)
except OperationError as e:
if not e.match(space, space.w_AttributeError):
raise
w_dict = self.w_dict
w_getattr = space.finditem(w_dict, space.newtext('__getattr__'))
if w_getattr is not None:
return space.call_function(w_getattr, w_attr)
w_name = space.finditem(self.w_dict, space.newtext('__name__'))
w_spec = space.finditem(self.w_dict, space.newtext('__spec__'))
if w_name is None:
raise oefmt(space.w_AttributeError,
"module has no attribute %R", w_attr)
elif w_spec is not None and is_spec_initializing(space, w_spec):
raise oefmt(space.w_AttributeError,
"partially initialized "
"module %R has no attribute %R "
"(most likely due to a circular import)",
w_name, w_attr
)
elif w_spec is not None and is_spec_uninitialized_submodule(space, w_spec, w_attr):
raise oefmt(space.w_AttributeError,
"cannot access submodule %R of module %R "
"(most likely due to a circular import)",
w_attr, w_name)
else:
raise oefmt(space.w_AttributeError,
> "module %R has no attribute %R", w_name, w_attr)
E OpErrFmt: [<W_TypeObject 'AttributeError' at 0x7ff50ab20950>: module 'stat' has no attribute 'S_IMODE']
interpreter/module.py:162: OpErrFmt
=========================== short test summary info ============================
FAIL module/cpyext/test/test_import.py::TestImport::()::test_reload
FAIL module/cpyext/test/test_import.py::TestImport::()::test_ImportModuleLevelObject
===================== 2 failed, 6 passed in 120.32 seconds =====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7ff507cf6890>> ignored
++ 20:54:00 starting module/cpyext/test/test_marshal.py [75 started in total]
__ module/cpyext/test/test_listobject.py [72 done in total, somefailed=False] _
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 14 items
module/cpyext/test/test_listobject.py ..............
========================== 14 passed in 69.47 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f8479f87c90>> ignored
++ 20:54:31 starting module/cpyext/test/test_memoryobject.py [76 started in total]
__ module/cpyext/test/test_mapping.py [73 done in total, somefailed=False] ____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 5 items
module/cpyext/test/test_mapping.py .....
========================== 5 passed in 37.50 seconds ===========================
++ 20:54:44 starting module/cpyext/test/test_methodobject.py [77 started in total]
__ module/cpyext/test/test_marshal.py [74 done in total, somefailed=False] ____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 2 items
module/cpyext/test/test_marshal.py ..
========================== 2 passed in 45.01 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f4d14bed850>> ignored
++ 20:54:59 starting module/cpyext/test/test_misc.py [78 started in total]
__ module/cpyext/test/test_longobject.py [75 done in total, somefailed=False] _
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 25 items
module/cpyext/test/test_longobject.py .........................
========================== 25 passed in 91.02 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f92bfc8a890>> ignored
++ 20:55:05 starting module/cpyext/test/test_module.py [79 started in total]
__ module/cpyext/test/test_memoryobject.py [76 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 13 items
module/cpyext/test/test_memoryobject.py ...s..s......
==================== 11 passed, 2 skipped in 67.19 seconds =====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f4b5ad4d850>> ignored
Exception TypeError: "'NoneType' object is not callable" in <function callback at 0x7f4b5abf8d50> ignored
Exception TypeError: "'NoneType' object is not callable" in <function callback at 0x7f4b5ac08950> ignored
++ 20:55:51 starting module/cpyext/test/test_namespaceobject.py [80 started in total]
__ module/cpyext/test/test_misc.py [77 done in total, somefailed=False] _______
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_misc.py .
========================== 1 passed in 41.27 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fac0acaae10>> ignored
++ 20:55:57 starting module/cpyext/test/test_ndarrayobject.py [81 started in total]
__ module/cpyext/test/test_ndarrayobject.py [78 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 0 items / 1 skipped
========================== 1 skipped in 0.20 seconds ===========================
++ 20:56:12 starting module/cpyext/test/test_number.py [82 started in total]
__ module/cpyext/test/test_methodobject.py [79 done in total, somefailed=True]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 14 items
module/cpyext/test/test_methodobject.py ............FF
=================================== FAILURES ===================================
_____________________ AppTestMethodObject.test_module_name _____________________
self = <CallInfo when='call' exception: command 'gcc' failed with exit status 1>
func = <function <lambda> at 0x7f9c8e6804d0>, when = 'call'
def __init__(self, func, when):
#: context of invocation: one of "setup", "call",
#: "teardown", "memocollect"
self.when = when
self.start = time()
try:
> self.result = func()
../_pytest/runner.py:150:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> return CallInfo(lambda: ihook(item=item, **kwds), when=when)
../_pytest/runner.py:138:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_HookCaller 'pytest_runtest_call'>
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_module_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_module_name'>}
def __call__(self, **kwargs):
assert not self.is_historic()
> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
../_pytest/vendored_packages/pluggy.py:724:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.config.PytestPluginManager object at 0x7f9c9793df10>
hook = <_HookCaller 'pytest_runtest_call'>
methods = [<_pytest.vendored_packages.pluggy.HookImpl instance at 0x7f9c90d8e140>]
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_module_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_module_name'>}
def _hookexec(self, hook, methods, kwargs):
# called from all hookcaller instances.
# enable_tracing will set its own wrapping function at self._inner_hookexec
> return self._inner_hookexec(hook, methods, kwargs)
../_pytest/vendored_packages/pluggy.py:338:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
hook = <_HookCaller 'pytest_runtest_call'>
methods = [<_pytest.vendored_packages.pluggy.HookImpl instance at 0x7f9c90d8e140>]
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_module_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_module_name'>}
self._inner_hookexec = lambda hook, methods, kwargs: \
> _MultiCall(methods, kwargs, hook.spec_opts).execute()
../_pytest/vendored_packages/pluggy.py:333:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_module_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>
def execute(self):
all_kwargs = self.kwargs
self.results = results = []
firstresult = self.specopts.get("firstresult")
while self.hook_impls:
hook_impl = self.hook_impls.pop()
args = [all_kwargs[argname] for argname in hook_impl.argnames]
if hook_impl.hookwrapper:
> return _wrapped_call(hook_impl.function(*args), self.execute)
../_pytest/vendored_packages/pluggy.py:595:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
wrap_controller = <generator object pytest_runtest_call at 0x7f9c90675d20>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...odule_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def _wrapped_call(wrap_controller, func):
""" Wrap calling to a function with a generator which needs to yield
exactly once. The yield point will trigger calling the wrapped function
and return its _CallOutcome to the yield point. The generator then needs
to finish (raise StopIteration) in order for the wrapped call to complete.
"""
try:
next(wrap_controller) # first yield
except StopIteration:
_raise_wrapfail(wrap_controller, "did not yield")
call_outcome = _CallOutcome(func)
try:
wrap_controller.send(call_outcome)
_raise_wrapfail(wrap_controller, "has second yield")
except StopIteration:
pass
> return call_outcome.get_result()
../_pytest/vendored_packages/pluggy.py:253:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f9c90675640>
def get_result(self):
if self.excinfo is None:
return self.result
else:
ex = self.excinfo
if _py3:
raise ex[1].with_traceback(ex[2])
> _reraise(*ex) # noqa
../_pytest/vendored_packages/pluggy.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f9c90675640>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...odule_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def __init__(self, func):
try:
> self.result = func()
../_pytest/vendored_packages/pluggy.py:264:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_module_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>
def execute(self):
all_kwargs = self.kwargs
self.results = results = []
firstresult = self.specopts.get("firstresult")
while self.hook_impls:
hook_impl = self.hook_impls.pop()
args = [all_kwargs[argname] for argname in hook_impl.argnames]
if hook_impl.hookwrapper:
> return _wrapped_call(hook_impl.function(*args), self.execute)
../_pytest/vendored_packages/pluggy.py:595:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
wrap_controller = <generator object pytest_runtest_call at 0x7f9c90675e60>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...odule_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def _wrapped_call(wrap_controller, func):
""" Wrap calling to a function with a generator which needs to yield
exactly once. The yield point will trigger calling the wrapped function
and return its _CallOutcome to the yield point. The generator then needs
to finish (raise StopIteration) in order for the wrapped call to complete.
"""
try:
next(wrap_controller) # first yield
except StopIteration:
_raise_wrapfail(wrap_controller, "did not yield")
call_outcome = _CallOutcome(func)
try:
wrap_controller.send(call_outcome)
_raise_wrapfail(wrap_controller, "has second yield")
except StopIteration:
pass
> return call_outcome.get_result()
../_pytest/vendored_packages/pluggy.py:253:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f9c90675dc0>
def get_result(self):
if self.excinfo is None:
return self.result
else:
ex = self.excinfo
if _py3:
raise ex[1].with_traceback(ex[2])
> _reraise(*ex) # noqa
../_pytest/vendored_packages/pluggy.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f9c90675dc0>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...odule_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def __init__(self, func):
try:
> self.result = func()
../_pytest/vendored_packages/pluggy.py:264:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_module_name'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>
def execute(self):
all_kwargs = self.kwargs
self.results = results = []
firstresult = self.specopts.get("firstresult")
while self.hook_impls:
hook_impl = self.hook_impls.pop()
args = [all_kwargs[argname] for argname in hook_impl.argnames]
if hook_impl.hookwrapper:
return _wrapped_call(hook_impl.function(*args), self.execute)
> res = hook_impl.function(*args)
../_pytest/vendored_packages/pluggy.py:596:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
item = <AppTestMethod 'test_module_name'>
def pytest_runtest_call(item):
try:
> item.runtest()
../_pytest/runner.py:91:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <AppTestMethod 'test_module_name'>
def runtest(self):
target = self.obj
src = extract_docstring_if_empty_function(target.im_func)
space = target.im_self.space
if self.config.option.runappdirect:
appexec_definitions = self.parent.obj.__dict__
spaceconfig = getattr(self.parent.obj, 'spaceconfig', None)
usemodules = spaceconfig.get('usemodules') if spaceconfig else None
return run_with_python(self.config.option.python, src, usemodules,
**appexec_definitions)
filename = self._getdynfilename(target)
func = app2interp_temp(src, filename=filename)
w_instance = self.parent.w_instance
> self.execute_appex(space, func, space, w_instance)
tool/pytest/apptest.py:331:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <AppTestMethod 'test_module_name'>, space = StdObjSpace
target = <function test_module_name at 0x7f9c8e7aebd0>
args = (StdObjSpace, <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>)
def execute_appex(self, space, target, *args):
self.space = space
space.getexecutioncontext().set_sys_exc_info(None)
try:
> target(*args)
tool/pytest/apptest.py:267:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
space = StdObjSpace
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>,)
w_func = <Function test_module_name>
args = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>
def appcaller(space, *args_w):
if not isinstance(space, ObjSpace):
raise TypeError("first argument must be a space instance.")
# the last argument can be an Arguments
w_func = self.wget(space, name)
if not args_w:
return space.call_function(w_func)
else:
args = args_w[-1]
assert args is not None
if not isinstance(args, Arguments):
> return space.call_function(w_func, *args_w)
interpreter/gateway.py:1409:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = StdObjSpace, w_func = <Function test_module_name>
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>,)
nargs = 1, Function = <class 'pypy.interpreter.function.Function'>
_Method = <class 'pypy.interpreter.function._Method'>
def call_function(self, w_func, *args_w):
nargs = len(args_w) # used for pruning funccall versions
if not self.config.objspace.disable_call_speedhacks and nargs < 5:
# start of hack for performance
from pypy.interpreter.function import Function, _Method
if isinstance(w_func, _Method):
if nargs < 4:
func = w_func.w_function
if isinstance(func, Function):
return func.funccall(w_func.w_instance, *args_w)
if isinstance(w_func, Function):
> return w_func.funccall(*args_w)
interpreter/baseobjspace.py:1237:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Function test_module_name>
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>,)
gateway = <module 'pypy.interpreter.gateway' from '/build_dir/own-linux-x86-64/build/pypy/interpreter/gateway.pyc'>
PyCode = <class 'pypy.interpreter.pycode.PyCode'>
code = <code object test_module_name, file "[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1>
def funccall(self, *args_w): # speed hack
from pypy.interpreter import gateway
from pypy.interpreter.pycode import PyCode
code = self.getcode() # hook for the jit
nargs = len(args_w)
fast_natural_arity = code.fast_natural_arity
if nargs == fast_natural_arity:
if nargs == 0:
assert isinstance(code, gateway.BuiltinCode0)
return code.fastcall_0(self.space, self)
elif nargs == 1:
assert isinstance(code, gateway.BuiltinCode1)
return code.fastcall_1(self.space, self, args_w[0])
elif nargs == 2:
assert isinstance(code, gateway.BuiltinCode2)
return code.fastcall_2(self.space, self, args_w[0], args_w[1])
elif nargs == 3:
assert isinstance(code, gateway.BuiltinCode3)
return code.fastcall_3(self.space, self, args_w[0],
args_w[1], args_w[2])
elif nargs == 4:
assert isinstance(code, gateway.BuiltinCode4)
return code.fastcall_4(self.space, self, args_w[0],
args_w[1], args_w[2], args_w[3])
elif (nargs | PyCode.FLATPYCALL) == fast_natural_arity:
assert isinstance(code, PyCode)
if nargs < 5:
new_frame = self.space.createframe(code, self.w_func_globals,
self)
for i in funccallunrolling:
if i < nargs:
new_frame.locals_cells_stack_w[i] = args_w[i]
> return new_frame.run(self.name, self.qualname)
interpreter/function.py:132:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_module_n...-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1> at line 3
name = 'test_module_name', qualname = 'test_module_name'
def run(self, name=None, qualname=None):
"""Start this frame's execution."""
if self._is_generator_or_coroutine():
return self.initialize_as_generator(name, qualname)
else:
> return self.execute_frame()
interpreter/pyframe.py:257:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_module_n...-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1> at line 3
w_arg_or_err = None
def execute_frame(self, w_arg_or_err=None):
"""Execute this frame. Main entry point to the interpreter.
'w_arg_or_err' is non-None iff we are starting or resuming
a generator or coroutine frame; in that case, w_arg_or_err
is the input argument -or- an SApplicationException instance.
"""
from pypy.interpreter import pyopcode as pyopcode
# the following 'assert' is an annotation hint: it hides from
# the annotator all methods that are defined in PyFrame but
# overridden in the {,Host}FrameClass subclasses of PyFrame.
assert (isinstance(self, self.space.FrameClass) or
not self.space.config.translating)
executioncontext = self.space.getexecutioncontext()
executioncontext.enter(self)
got_exception = True
w_exitvalue = self.space.w_None
try:
executioncontext.call_trace(self)
#
# Execution starts just after the last_instr. Initially,
# last_instr is -1. After a generator suspends it points to
# the YIELD_VALUE/YIELD_FROM instruction.
try:
try:
if w_arg_or_err is None:
assert self.last_instr == -1
next_instr = r_uint(0)
else:
next_instr = self.resume_execute_frame(w_arg_or_err)
except pyopcode.Yield:
w_exitvalue = self.popvalue()
else:
w_exitvalue = self.dispatch(self.pycode, next_instr,
executioncontext)
except OperationError:
raise
except Exception as e: # general fall-back
> raise self._convert_unexpected_exception(e)
interpreter/pyframe.py:354:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_module_n...-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1> at line 3
e = CompileError(DistutilsExecError("command 'gcc' failed with exit status 1",),)
def _convert_unexpected_exception(self, e):
from pypy.interpreter import error
> operr = error.get_converted_unexpected_exception(self.space, e)
interpreter/pyframe.py:845:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_module_n...-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1> at line 3
w_arg_or_err = None
def execute_frame(self, w_arg_or_err=None):
"""Execute this frame. Main entry point to the interpreter.
'w_arg_or_err' is non-None iff we are starting or resuming
a generator or coroutine frame; in that case, w_arg_or_err
is the input argument -or- an SApplicationException instance.
"""
from pypy.interpreter import pyopcode as pyopcode
# the following 'assert' is an annotation hint: it hides from
# the annotator all methods that are defined in PyFrame but
# overridden in the {,Host}FrameClass subclasses of PyFrame.
assert (isinstance(self, self.space.FrameClass) or
not self.space.config.translating)
executioncontext = self.space.getexecutioncontext()
executioncontext.enter(self)
got_exception = True
w_exitvalue = self.space.w_None
try:
executioncontext.call_trace(self)
#
# Execution starts just after the last_instr. Initially,
# last_instr is -1. After a generator suspends it points to
# the YIELD_VALUE/YIELD_FROM instruction.
try:
try:
if w_arg_or_err is None:
assert self.last_instr == -1
next_instr = r_uint(0)
else:
next_instr = self.resume_execute_frame(w_arg_or_err)
except pyopcode.Yield:
w_exitvalue = self.popvalue()
else:
w_exitvalue = self.dispatch(self.pycode, next_instr,
> executioncontext)
interpreter/pyframe.py:350:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_module_n...-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1> at line 3
pycode = <code object test_module_name, file "[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1>
next_instr = 0L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x7f9c8f008b90>
def dispatch(self, pycode, next_instr, ec):
# For the sequel, force 'next_instr' to be unsigned for performance
next_instr = r_uint(next_instr)
co_code = pycode.co_code
try:
while True:
assert next_instr & 1 == 0
> next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:68:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_module_n...-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1> at line 3
co_code = '|\x00\xa0\x00d\x01d\x02\xcc\x01}\x01|\x01j\x01j\x02d\x01k\x02s\x0eJ\x00\x82\x01d\x00S\x00'
next_instr = 0L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x7f9c8f008b90>
def handle_bytecode(self, co_code, next_instr, ec):
try:
> next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:74:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_module_n...-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1> at line 3
co_code = '|\x00\xa0\x00d\x01d\x02\xcc\x01}\x01|\x01j\x01j\x02d\x01k\x02s\x0eJ\x00\x82\x01d\x00S\x00'
next_instr = 10L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x7f9c8f008b90>
@jit.unroll_safe
def dispatch_bytecode(self, co_code, next_instr, ec):
while True:
assert next_instr & 1 == 0
self.last_instr = intmask(next_instr)
if jit.we_are_jitted():
_d = self.debugdata
if ec.space.reverse_debugging or (
_d is not None and _d.w_f_trace is not None):
ec.bytecode_only_trace(self)
next_instr = r_uint(self.last_instr)
else:
# Only reload next_instr from last_instr when something that
# can modify it actually ran (trace function or action
# dispatcher). In the common case (no trace, positive ticker)
# next_instr is unchanged and the round-trip is skipped.
_d = self.debugdata
if ec.space.reverse_debugging or (
_d is not None and _d.w_f_trace is not None) or (
not we_are_translated() and
'bytecode_only_trace' in ec.__dict__):
ec.bytecode_only_trace(self)
next_instr = r_uint(self.last_instr)
actionflag = ec.space.actionflag
if actionflag.decrement_ticker(TICK_COUNTER_STEP) < 0:
actionflag.action_dispatcher(ec, self)
next_instr = r_uint(self.last_instr)
opcode = ord(co_code[next_instr])
oparg = ord(co_code[next_instr + 1])
next_instr += 2
# note: the structure of the code here is such that it makes
# (after translation) a big "if/elif" chain, which is then
# turned into computed gotos.
while opcode == opcodedesc.EXTENDED_ARG.index:
opcode = ord(co_code[next_instr])
arg = ord(co_code[next_instr + 1])
if opcode < HAVE_ARGUMENT:
raise BytecodeCorruption
next_instr += 2
oparg = (oparg * 256) | arg
if opcode == opcodedesc.RETURN_VALUE.index:
self.frame_finished_execution = True # for generators
raise Return
elif opcode == opcodedesc.JUMP_ABSOLUTE.index:
return self.jump_absolute(oparg, next_instr, ec)
elif opcode == opcodedesc.RERAISE.index:
return self.RERAISE(oparg, next_instr)
elif opcode == opcodedesc.FOR_ITER.index:
next_instr = self.FOR_ITER(oparg, next_instr)
elif opcode == opcodedesc.JUMP_FORWARD.index:
next_instr = self.JUMP_FORWARD(oparg, next_instr)
elif opcode == opcodedesc.JUMP_IF_FALSE_OR_POP.index:
return self.JUMP_IF_FALSE_OR_POP(oparg, next_instr, ec)
elif opcode == opcodedesc.JUMP_IF_TRUE_OR_POP.index:
return self.JUMP_IF_TRUE_OR_POP(oparg, next_instr, ec)
elif opcode == opcodedesc.POP_JUMP_IF_FALSE.index:
return self.POP_JUMP_IF_FALSE(oparg, next_instr, ec)
elif opcode == opcodedesc.POP_JUMP_IF_TRUE.index:
return self.POP_JUMP_IF_TRUE(oparg, next_instr, ec)
elif opcode == opcodedesc.POP_JUMP_FORWARD_IF_NONE.index:
next_instr = self.POP_JUMP_FORWARD_IF_NONE(oparg, next_instr)
elif opcode == opcodedesc.POP_JUMP_FORWARD_IF_NOT_NONE.index:
next_instr = self.POP_JUMP_FORWARD_IF_NOT_NONE(oparg, next_instr)
elif opcode == opcodedesc.JUMP_IF_NOT_EXC_MATCH.index:
next_instr = self.JUMP_IF_NOT_EXC_MATCH(oparg, next_instr)
elif opcode == opcodedesc.BINARY_ADD.index:
self.BINARY_ADD(oparg, next_instr)
elif opcode == opcodedesc.BINARY_AND.index:
self.BINARY_AND(oparg, next_instr)
elif opcode == opcodedesc.BINARY_FLOOR_DIVIDE.index:
self.BINARY_FLOOR_DIVIDE(oparg, next_instr)
elif opcode == opcodedesc.BINARY_MATRIX_MULTIPLY.index:
self.BINARY_MATRIX_MULTIPLY(oparg, next_instr)
elif opcode == opcodedesc.BINARY_LSHIFT.index:
self.BINARY_LSHIFT(oparg, next_instr)
elif opcode == opcodedesc.BINARY_MODULO.index:
self.BINARY_MODULO(oparg, next_instr)
elif opcode == opcodedesc.BINARY_MULTIPLY.index:
self.BINARY_MULTIPLY(oparg, next_instr)
elif opcode == opcodedesc.BINARY_OR.index:
self.BINARY_OR(oparg, next_instr)
elif opcode == opcodedesc.BINARY_POWER.index:
self.BINARY_POWER(oparg, next_instr)
elif opcode == opcodedesc.BINARY_RSHIFT.index:
self.BINARY_RSHIFT(oparg, next_instr)
elif opcode == opcodedesc.BINARY_SUBSCR.index:
self.BINARY_SUBSCR(oparg, next_instr)
elif opcode == opcodedesc.BINARY_SUBTRACT.index:
self.BINARY_SUBTRACT(oparg, next_instr)
elif opcode == opcodedesc.BINARY_TRUE_DIVIDE.index:
self.BINARY_TRUE_DIVIDE(oparg, next_instr)
elif opcode == opcodedesc.BINARY_XOR.index:
self.BINARY_XOR(oparg, next_instr)
elif opcode == opcodedesc.BUILD_CONST_KEY_MAP.index:
self.BUILD_CONST_KEY_MAP(oparg, next_instr)
elif opcode == opcodedesc.BUILD_LIST.index:
self.BUILD_LIST(oparg, next_instr)
elif opcode == opcodedesc.BUILD_LIST_FROM_ARG.index:
self.BUILD_LIST_FROM_ARG(oparg, next_instr)
elif opcode == opcodedesc.BUILD_MAP.index:
self.BUILD_MAP(oparg, next_instr)
elif opcode == opcodedesc.BUILD_SET.index:
self.BUILD_SET(oparg, next_instr)
elif opcode == opcodedesc.BUILD_SLICE.index:
self.BUILD_SLICE(oparg, next_instr)
elif opcode == opcodedesc.BUILD_TUPLE.index:
self.BUILD_TUPLE(oparg, next_instr)
elif opcode == opcodedesc.CALL_FUNCTION.index:
self.CALL_FUNCTION(oparg, next_instr)
elif opcode == opcodedesc.CALL_FUNCTION_KW.index:
self.CALL_FUNCTION_KW(oparg, next_instr)
elif opcode == opcodedesc.CALL_FUNCTION_EX.index:
self.CALL_FUNCTION_EX(oparg, next_instr)
elif opcode == opcodedesc.CALL_METHOD.index:
self.CALL_METHOD(oparg, next_instr)
elif opcode == opcodedesc.CALL_METHOD_KW.index:
> self.CALL_METHOD_KW(oparg, next_instr)
interpreter/pyopcode.py:315:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_module_n...-64/build/pypy/module/cpyext/test/test_methodobject.py:305]", line 1> at line 3
n_arguments = 0, ignored = (10L,)
W_AbstractTupleObject = <class 'pypy.objspace.std.tupleobject.W_AbstractTupleObject'>
w_self = None, space = StdObjSpace
@jit.unroll_safe
def CALL_METHOD_KW(f, n_arguments, *ignored):
from pypy.objspace.std.tupleobject import W_AbstractTupleObject
# opargs contains the arg + kwarg count, excluding the implicit 'self'
w_self = f.peekvalue_maybe_none(n_arguments + 1)
space = f.space
# like in BUILD_CONST_KEY_MAP we can't use space.fixedview because then
# the immutability of the tuple is lost
w_tup_varnames = space.interp_w(W_AbstractTupleObject, f.popvalue())
n_keywords = space.len_w(w_tup_varnames)
keyword_names_w = [None] * n_keywords
keywords_w = [None] * n_keywords
for i in range(n_keywords):
keyword_names_w[i] = w_tup_varnames.getitem(space, i)
w_value = f.peekvalue(n_keywords - 1 - i)
keywords_w[i] = w_value
f.dropvalues(n_keywords)
n_arguments -= n_keywords
n = n_arguments + (w_self is not None)
arguments = f.popvalues(n) # includes w_self if it is not None
if w_self is None:
f.popvalue_maybe_none() # removes w_self, which is None
w_callable = f.popvalue()
args = f.argument_factory(
arguments, keyword_names_w, keywords_w, None, None,
methodcall=w_self is not None, w_function=w_callable)
if f.get_is_being_profiled() and function.is_builtin_code(w_callable):
w_result = f.space.call_args_and_c_profile(f, w_callable, args)
else:
> w_result = f.space.call_args(w_callable, args)
objspace/std/callmethod.py:126:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
space = StdObjSpace, w_obj = <FunctionWithFixedCode import_module>
args = Arguments([], ['name'], [W_UnicodeObject('test_func')])
def call_args(space, w_obj, args):
# two special cases for performance
if isinstance(w_obj, Function):
> return w_obj.call_args(args)
objspace/descroperation.py:192:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <FunctionWithFixedCode import_module>
args = Arguments([], ['name'], [W_UnicodeObject('test_func')])
def call_args(self, args):
# delegate activation to code
> w_res = self.getcode().funcrun(self, args)
interpreter/function.py:82:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f9c8e7aa290>
func = <FunctionWithFixedCode import_module>
args = Arguments([], ['name'], [W_UnicodeObject('test_func')])
def funcrun(self, func, args):
> return BuiltinCode.funcrun_obj(self, func, None, args)
interpreter/gateway.py:869:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f9c8e7aa290>
func = <FunctionWithFixedCode import_module>, w_obj = None
args = Arguments([], ['name'], [W_UnicodeObject('test_func')])
def funcrun_obj(self, func, w_obj, args):
space = func.space
activation = self.activation
scope_w = args.parse_obj(w_obj, func.qualname, self.sig,
func.defs_w, func.w_kw_defs, self.minargs)
try:
w_result = activation._run(space, scope_w)
except DescrMismatch:
if w_obj is not None:
args = args.prepend(w_obj)
return self._type_unwrap_mismatch(space, args)
except Exception as e:
> self.handle_exception(space, e)
interpreter/gateway.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f9c8e7aa290>
space = StdObjSpace
e = CompileError(DistutilsExecError("command 'gcc' failed with exit status 1",),)
def handle_exception(self, space, e):
try:
if not we_are_translated():
raise
raise e
except OperationError:
raise
except Exception as e: # general fall-back
from pypy.interpreter import error
> raise error.get_converted_unexpected_exception(space, e)
interpreter/gateway.py:908:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f9c8e7aa290>
func = <FunctionWithFixedCode import_module>, w_obj = None
args = Arguments([], ['name'], [W_UnicodeObject('test_func')])
def funcrun_obj(self, func, w_obj, args):
space = func.space
activation = self.activation
scope_w = args.parse_obj(w_obj, func.qualname, self.sig,
func.defs_w, func.w_kw_defs, self.minargs)
try:
> w_result = activation._run(space, scope_w)
interpreter/gateway.py:878:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinActivation_UwS_ObjSpace_text_text_or_none_text_fsencode_or_none_W_Root_bool_bool object at 0x7f9c8e7a8ed0>
space = StdObjSpace
scope_w = [W_UnicodeObject('test_func'), <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f9c9239e790>, W_UnicodeObject(''), <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f9c9239e790>, None, W_BoolObject(False), ...]
def _run(self, space, scope_w):
> return self.behavior(space, space.text_w(scope_w[0]), space.text_or_none_w(scope_w[1]), space.text_w(scope_w[2]), space.fsencode_or_none_w(scope_w[3]), scope_w[4], space.is_true(scope_w[5]), space.is_true(scope_w[6]))
<2731-codegen /build_dir/own-linux-x86-64/build/rpython/tool/sourcetools.py:200>:3:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
space = StdObjSpace, name = 'test_func', init = None, body = '', filename = None
w_include_dirs = None, PY_SSIZE_T_CLEAN = False, use_imp = False
@unwrap_spec(name='text', init='text_or_none', body='text',
filename='fsencode_or_none', PY_SSIZE_T_CLEAN=bool,
use_imp=bool)
def import_module(space, name, init=None, body='',
filename=None, w_include_dirs=None,
PY_SSIZE_T_CLEAN=False, use_imp=False):
include_dirs = _unwrap_include_dirs(space, w_include_dirs)
# For file-based imports (no inline code), reuse the previously
# loaded module from our own cache -- avoids re-running PyInit_xxx
# (the expensive part) on every test in the class.
# We use a separate cache (not sys.modules) so that an
# import_extension() call with the same name doesn't shadow the
# file-based module.
if init is None and not body:
if name in self._file_module_cache:
self.record_imported_module(name)
return self._file_module_cache[name]
# About to overwrite sys.modules[name] -- save the displaced
# module (if any) so that its raw allocations aren't freed
# during a later test's leakfinder tracking window.
w_modules = space.sys.get('modules')
try:
w_old = space.getitem(w_modules, space.newtext(name))
self._module_keepalive.append(w_old)
except OperationError:
pass
w_result = self.sys_info.import_module(
name, init, body, filename, include_dirs, PY_SSIZE_T_CLEAN,
> use_imp)
module/cpyext/test/test_cpyext.py:391:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.cpyext.test.test_cpyext.SpaceCompiler object at 0x7f9c8efddd10>
name = 'test_func', init = None, body = ''
filename = local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_func.c')
include_dirs = None, PY_SSIZE_T_CLEAN = False, use_imp = False
def import_module(self, name, init=None, body='', filename=None,
include_dirs=None, PY_SSIZE_T_CLEAN=False, use_imp=False):
"""
init specifies the overall template of the module.
if init is None, the module source will be loaded from a file in this
test directory, give a name given by the filename parameter.
if filename is None, the module name will be used to construct the
filename.
"""
if body or init:
if init is None:
init = "return PyModule_Create(&moduledef);"
if init is not None:
code = make_source(name, init, body, PY_SSIZE_T_CLEAN)
kwds = dict(source_strings=[code])
else:
assert not PY_SSIZE_T_CLEAN
if filename is None:
filename = name
filename = HERE / (filename + ".c")
kwds = dict(source_files=[filename])
mod = self.compile_extension_module(
> name, include_dirs=include_dirs, **kwds)
tool/cpyext/extbuild.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.cpyext.test.test_cpyext.SpaceCompiler object at 0x7f9c8efddd10>
name = 'test_func', include_dirs = []
source_files = [local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_func.c')]
source_strings = None
def compile_extension_module(self, name, include_dirs=None,
source_files=None, source_strings=None):
"""
Build an extension module and return the filename of the resulting
native code file.
name is the name of the module, possibly including dots if it is a
module inside a package.
"""
include_dirs = include_dirs or []
modname = name.split('.')[-1]
dirname = self.get_builddir(name=modname)
if source_strings:
assert not source_files
files = convert_sources_to_files(source_strings, dirname)
source_files = files
soname = c_compile(source_files, outputfilename=str(dirname / modname),
compile_extra=self.compile_extra,
link_extra=self.link_extra,
include_dirs=self.include_extra + include_dirs,
> libraries=self.extra_libs)
tool/cpyext/extbuild.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cfilenames = [local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_func.c')]
outputfilename = local('/tmp/pytest/usession-py3.12-586/test_func-0/test_func.so')
compile_extra = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC']
link_extra = ['-g']
include_dirs = [local('/tmp/pytest/usession-py3.12-586'), local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include'), loca...dir/own-linux-x86-64/build/pypy/module/cpyext/parse'), local('/build_dir/own-linux-x86-64/build/rpython/translator/c')]
libraries = [], library_dirs = []
def c_compile(cfilenames, outputfilename,
compile_extra=None, link_extra=None,
include_dirs=None, libraries=None, library_dirs=None):
compile_extra = compile_extra or []
link_extra = link_extra or []
include_dirs = include_dirs or []
libraries = libraries or []
library_dirs = library_dirs or []
if sys.platform == 'win32':
link_extra = link_extra + ['/DEBUG'] # generate .pdb file
if sys.platform == 'darwin':
# support Fink & Darwinports
for s in ('/sw/', '/opt/local/'):
if (s + 'include' not in include_dirs
and os.path.exists(s + 'include')):
include_dirs.append(s + 'include')
if s + 'lib' not in library_dirs and os.path.exists(s + 'lib'):
library_dirs.append(s + 'lib')
outputfilename = py.path.local(outputfilename).new(ext=so_ext)
saved_environ = os.environ.copy()
try:
_build(
cfilenames, outputfilename,
compile_extra, link_extra,
> include_dirs, libraries, library_dirs)
tool/cpyext/extbuild.py:202:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cfilenames = [local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_func.c')]
outputfilename = local('/tmp/pytest/usession-py3.12-586/test_func-0/test_func.so')
compile_extra = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC']
link_extra = ['-g']
include_dirs = [local('/tmp/pytest/usession-py3.12-586'), local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include'), loca...dir/own-linux-x86-64/build/pypy/module/cpyext/parse'), local('/build_dir/own-linux-x86-64/build/rpython/translator/c')]
libraries = [], library_dirs = []
def _build(cfilenames, outputfilename, compile_extra, link_extra,
include_dirs, libraries, library_dirs):
try:
# monkeypatch distutils for some versions of msvc compiler
import setuptools
except ImportError:
# XXX if this fails and is required,
# we must call pypy -mensurepip after translation
pass
from distutils.ccompiler import new_compiler
from distutils import sysconfig
# XXX for Darwin running old versions of CPython 2.7.x
sysconfig.get_config_vars()
compiler = new_compiler(force=1)
sysconfig.customize_compiler(compiler) # XXX
objects = []
for cfile in cfilenames:
cfile = py.path.local(cfile)
old = cfile.dirpath().chdir()
try:
res = compiler.compile([cfile.basename],
> include_dirs=include_dirs, extra_preargs=compile_extra)
tool/cpyext/extbuild.py:234:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <distutils.unixccompiler.UnixCCompiler instance at 0x7f9c8eef7410>
sources = ['test_func.c'], output_dir = None, macros = []
include_dirs = [local('/tmp/pytest/usession-py3.12-586'), local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include'), loca...dir/own-linux-x86-64/build/pypy/module/cpyext/parse'), local('/build_dir/own-linux-x86-64/build/rpython/translator/c')]
debug = 0
extra_preargs = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC']
extra_postargs = [], depends = None
def compile(self, sources, output_dir=None, macros=None,
include_dirs=None, debug=0, extra_preargs=None,
extra_postargs=None, depends=None):
"""Compile one or more source files.
'sources' must be a list of filenames, most likely C/C++
files, but in reality anything that can be handled by a
particular compiler and compiler class (eg. MSVCCompiler can
handle resource files in 'sources'). Return a list of object
filenames, one per source filename in 'sources'. Depending on
the implementation, not all source files will necessarily be
compiled, but all corresponding object filenames will be
returned.
If 'output_dir' is given, object files will be put under it, while
retaining their original path component. That is, "foo/bar.c"
normally compiles to "foo/bar.o" (for a Unix implementation); if
'output_dir' is "build", then it would compile to
"build/foo/bar.o".
'macros', if given, must be a list of macro definitions. A macro
definition is either a (name, value) 2-tuple or a (name,) 1-tuple.
The former defines a macro; if the value is None, the macro is
defined without an explicit value. The 1-tuple case undefines a
macro. Later definitions/redefinitions/ undefinitions take
precedence.
'include_dirs', if given, must be a list of strings, the
directories to add to the default include file search path for this
compilation only.
'debug' is a boolean; if true, the compiler will be instructed to
output debug symbols in (or alongside) the object file(s).
'extra_preargs' and 'extra_postargs' are implementation- dependent.
On platforms that have the notion of a command-line (e.g. Unix,
DOS/Windows), they are most likely lists of strings: extra
command-line arguments to prepand/append to the compiler command
line. On other platforms, consult the implementation class
documentation. In any event, they are intended as an escape hatch
for those occasions when the abstract compiler framework doesn't
cut the mustard.
'depends', if given, is a list of filenames that all targets
depend on. If a source file is older than any file in
depends, then the source file will be recompiled. This
supports dependency tracking, but only at a coarse
granularity.
Raises CompileError on failure.
"""
# A concrete compiler class can either override this method
# entirely or implement _compile().
macros, objects, extra_postargs, pp_opts, build = \
self._setup_compile(output_dir, macros, include_dirs, sources,
depends, extra_postargs)
cc_args = self._get_cc_args(pp_opts, debug, extra_preargs)
for obj in objects:
try:
src, ext = build[obj]
except KeyError:
continue
> self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
/usr/local/lib/python2.7/distutils/ccompiler.py:574:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <distutils.unixccompiler.UnixCCompiler instance at 0x7f9c8eef7410>
obj = 'test_func.o', src = 'test_func.c', ext = '.c'
cc_args = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC', '-I/tmp/pytest/usession-py3.12-586', ...]
extra_postargs = []
pp_opts = ['-I/tmp/pytest/usession-py3.12-586', '-I/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include', '-I/build_dir/own-linux-x86-64/build/pypy/module/cpyext/parse', '-I/build_dir/own-linux-x86-64/build/rpython/translator/c']
def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
compiler_so = self.compiler_so
if sys.platform == 'darwin':
compiler_so = _osx_support.compiler_fixup(compiler_so,
cc_args + extra_postargs)
try:
self.spawn(compiler_so + cc_args + [src, '-o', obj] +
extra_postargs)
except DistutilsExecError, msg:
> raise CompileError, msg
E CompileError: command 'gcc' failed with exit status 1
/usr/local/lib/python2.7/distutils/unixccompiler.py:124: CompileError
----------------------------- Captured stderr call -----------------------------
test_func.c: In function \u2018__Pyx_PyCode_New\u2019:\ntest_func.c:592:9: error: implicit declaration of function \u2018PyUnstable_Code_NewWithPosOnlyArgs\u2019; did you mean \u2018PyCode_NewWithPosOnlyArgs\u2019? [-Werror=implicit-function-declaration]\n 592 | PyUnstable_Code_NewWithPosOnlyArgs\n | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n | PyCode_NewWithPosOnlyArgs\ntest_func.c:590:12: error: assignment to \u2018PyCodeObject *\u2019 from \u2018int\u2019 makes pointer from integer without a cast [-Werror=int-conversion]\n 590 | result =\n | ^\ncc1: all warnings being treated as errors
_______________________ AppTestMethodObject.test_min_max _______________________
self = <CallInfo when='call' exception: command 'gcc' failed with exit status 1>
func = <function <lambda> at 0x7f9c8e680250>, when = 'call'
def __init__(self, func, when):
#: context of invocation: one of "setup", "call",
#: "teardown", "memocollect"
self.when = when
self.start = time()
try:
> self.result = func()
../_pytest/runner.py:150:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> return CallInfo(lambda: ihook(item=item, **kwds), when=when)
../_pytest/runner.py:138:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_HookCaller 'pytest_runtest_call'>
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_min_max'>}
def __call__(self, **kwargs):
assert not self.is_historic()
> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
../_pytest/vendored_packages/pluggy.py:724:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.config.PytestPluginManager object at 0x7f9c9793df10>
hook = <_HookCaller 'pytest_runtest_call'>
methods = [<_pytest.vendored_packages.pluggy.HookImpl instance at 0x7f9c90d8e140>]
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_min_max'>}
def _hookexec(self, hook, methods, kwargs):
# called from all hookcaller instances.
# enable_tracing will set its own wrapping function at self._inner_hookexec
> return self._inner_hookexec(hook, methods, kwargs)
../_pytest/vendored_packages/pluggy.py:338:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
hook = <_HookCaller 'pytest_runtest_call'>
methods = [<_pytest.vendored_packages.pluggy.HookImpl instance at 0x7f9c90d8e140>]
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_min_max'>}
self._inner_hookexec = lambda hook, methods, kwargs: \
> _MultiCall(methods, kwargs, hook.spec_opts).execute()
../_pytest/vendored_packages/pluggy.py:333:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>
def execute(self):
all_kwargs = self.kwargs
self.results = results = []
firstresult = self.specopts.get("firstresult")
while self.hook_impls:
hook_impl = self.hook_impls.pop()
args = [all_kwargs[argname] for argname in hook_impl.argnames]
if hook_impl.hookwrapper:
> return _wrapped_call(hook_impl.function(*args), self.execute)
../_pytest/vendored_packages/pluggy.py:595:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
wrap_controller = <generator object pytest_runtest_call at 0x7f9c8e402730>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...st_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def _wrapped_call(wrap_controller, func):
""" Wrap calling to a function with a generator which needs to yield
exactly once. The yield point will trigger calling the wrapped function
and return its _CallOutcome to the yield point. The generator then needs
to finish (raise StopIteration) in order for the wrapped call to complete.
"""
try:
next(wrap_controller) # first yield
except StopIteration:
_raise_wrapfail(wrap_controller, "did not yield")
call_outcome = _CallOutcome(func)
try:
wrap_controller.send(call_outcome)
_raise_wrapfail(wrap_controller, "has second yield")
except StopIteration:
pass
> return call_outcome.get_result()
../_pytest/vendored_packages/pluggy.py:253:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f9c8e402820>
def get_result(self):
if self.excinfo is None:
return self.result
else:
ex = self.excinfo
if _py3:
raise ex[1].with_traceback(ex[2])
> _reraise(*ex) # noqa
../_pytest/vendored_packages/pluggy.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f9c8e402820>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...st_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def __init__(self, func):
try:
> self.result = func()
../_pytest/vendored_packages/pluggy.py:264:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>
def execute(self):
all_kwargs = self.kwargs
self.results = results = []
firstresult = self.specopts.get("firstresult")
while self.hook_impls:
hook_impl = self.hook_impls.pop()
args = [all_kwargs[argname] for argname in hook_impl.argnames]
if hook_impl.hookwrapper:
> return _wrapped_call(hook_impl.function(*args), self.execute)
../_pytest/vendored_packages/pluggy.py:595:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
wrap_controller = <generator object pytest_runtest_call at 0x7f9c8e402460>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...st_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def _wrapped_call(wrap_controller, func):
""" Wrap calling to a function with a generator which needs to yield
exactly once. The yield point will trigger calling the wrapped function
and return its _CallOutcome to the yield point. The generator then needs
to finish (raise StopIteration) in order for the wrapped call to complete.
"""
try:
next(wrap_controller) # first yield
except StopIteration:
_raise_wrapfail(wrap_controller, "did not yield")
call_outcome = _CallOutcome(func)
try:
wrap_controller.send(call_outcome)
_raise_wrapfail(wrap_controller, "has second yield")
except StopIteration:
pass
> return call_outcome.get_result()
../_pytest/vendored_packages/pluggy.py:253:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f9c8e402a00>
def get_result(self):
if self.excinfo is None:
return self.result
else:
ex = self.excinfo
if _py3:
raise ex[1].with_traceback(ex[2])
> _reraise(*ex) # noqa
../_pytest/vendored_packages/pluggy.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f9c8e402a00>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...st_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def __init__(self, func):
try:
> self.result = func()
../_pytest/vendored_packages/pluggy.py:264:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_min_max'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>
def execute(self):
all_kwargs = self.kwargs
self.results = results = []
firstresult = self.specopts.get("firstresult")
while self.hook_impls:
hook_impl = self.hook_impls.pop()
args = [all_kwargs[argname] for argname in hook_impl.argnames]
if hook_impl.hookwrapper:
return _wrapped_call(hook_impl.function(*args), self.execute)
> res = hook_impl.function(*args)
../_pytest/vendored_packages/pluggy.py:596:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
item = <AppTestMethod 'test_min_max'>
def pytest_runtest_call(item):
try:
> item.runtest()
../_pytest/runner.py:91:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <AppTestMethod 'test_min_max'>
def runtest(self):
target = self.obj
src = extract_docstring_if_empty_function(target.im_func)
space = target.im_self.space
if self.config.option.runappdirect:
appexec_definitions = self.parent.obj.__dict__
spaceconfig = getattr(self.parent.obj, 'spaceconfig', None)
usemodules = spaceconfig.get('usemodules') if spaceconfig else None
return run_with_python(self.config.option.python, src, usemodules,
**appexec_definitions)
filename = self._getdynfilename(target)
func = app2interp_temp(src, filename=filename)
w_instance = self.parent.w_instance
> self.execute_appex(space, func, space, w_instance)
tool/pytest/apptest.py:331:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <AppTestMethod 'test_min_max'>, space = StdObjSpace
target = <function test_min_max at 0x7f9c8e422450>
args = (StdObjSpace, <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>)
def execute_appex(self, space, target, *args):
self.space = space
space.getexecutioncontext().set_sys_exc_info(None)
try:
> target(*args)
tool/pytest/apptest.py:267:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
space = StdObjSpace
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>,)
w_func = <Function test_min_max>
args = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>
def appcaller(space, *args_w):
if not isinstance(space, ObjSpace):
raise TypeError("first argument must be a space instance.")
# the last argument can be an Arguments
w_func = self.wget(space, name)
if not args_w:
return space.call_function(w_func)
else:
args = args_w[-1]
assert args is not None
if not isinstance(args, Arguments):
> return space.call_function(w_func, *args_w)
interpreter/gateway.py:1409:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = StdObjSpace, w_func = <Function test_min_max>
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>,)
nargs = 1, Function = <class 'pypy.interpreter.function.Function'>
_Method = <class 'pypy.interpreter.function._Method'>
def call_function(self, w_func, *args_w):
nargs = len(args_w) # used for pruning funccall versions
if not self.config.objspace.disable_call_speedhacks and nargs < 5:
# start of hack for performance
from pypy.interpreter.function import Function, _Method
if isinstance(w_func, _Method):
if nargs < 4:
func = w_func.w_function
if isinstance(func, Function):
return func.funccall(w_func.w_instance, *args_w)
if isinstance(w_func, Function):
> return w_func.funccall(*args_w)
interpreter/baseobjspace.py:1237:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Function test_min_max>
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f9c8f0ea3d0>,)
gateway = <module 'pypy.interpreter.gateway' from '/build_dir/own-linux-x86-64/build/pypy/interpreter/gateway.pyc'>
PyCode = <class 'pypy.interpreter.pycode.PyCode'>
code = <code object test_min_max, file "[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1>
def funccall(self, *args_w): # speed hack
from pypy.interpreter import gateway
from pypy.interpreter.pycode import PyCode
code = self.getcode() # hook for the jit
nargs = len(args_w)
fast_natural_arity = code.fast_natural_arity
if nargs == fast_natural_arity:
if nargs == 0:
assert isinstance(code, gateway.BuiltinCode0)
return code.fastcall_0(self.space, self)
elif nargs == 1:
assert isinstance(code, gateway.BuiltinCode1)
return code.fastcall_1(self.space, self, args_w[0])
elif nargs == 2:
assert isinstance(code, gateway.BuiltinCode2)
return code.fastcall_2(self.space, self, args_w[0], args_w[1])
elif nargs == 3:
assert isinstance(code, gateway.BuiltinCode3)
return code.fastcall_3(self.space, self, args_w[0],
args_w[1], args_w[2])
elif nargs == 4:
assert isinstance(code, gateway.BuiltinCode4)
return code.fastcall_4(self.space, self, args_w[0],
args_w[1], args_w[2], args_w[3])
elif (nargs | PyCode.FLATPYCALL) == fast_natural_arity:
assert isinstance(code, PyCode)
if nargs < 5:
new_frame = self.space.createframe(code, self.w_func_globals,
self)
for i in funccallunrolling:
if i < nargs:
new_frame.locals_cells_stack_w[i] = args_w[i]
> return new_frame.run(self.name, self.qualname)
interpreter/function.py:132:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_min_max,...-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1> at line 2
name = 'test_min_max', qualname = 'test_min_max'
def run(self, name=None, qualname=None):
"""Start this frame's execution."""
if self._is_generator_or_coroutine():
return self.initialize_as_generator(name, qualname)
else:
> return self.execute_frame()
interpreter/pyframe.py:257:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_min_max,...-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1> at line 2
w_arg_or_err = None
def execute_frame(self, w_arg_or_err=None):
"""Execute this frame. Main entry point to the interpreter.
'w_arg_or_err' is non-None iff we are starting or resuming
a generator or coroutine frame; in that case, w_arg_or_err
is the input argument -or- an SApplicationException instance.
"""
from pypy.interpreter import pyopcode as pyopcode
# the following 'assert' is an annotation hint: it hides from
# the annotator all methods that are defined in PyFrame but
# overridden in the {,Host}FrameClass subclasses of PyFrame.
assert (isinstance(self, self.space.FrameClass) or
not self.space.config.translating)
executioncontext = self.space.getexecutioncontext()
executioncontext.enter(self)
got_exception = True
w_exitvalue = self.space.w_None
try:
executioncontext.call_trace(self)
#
# Execution starts just after the last_instr. Initially,
# last_instr is -1. After a generator suspends it points to
# the YIELD_VALUE/YIELD_FROM instruction.
try:
try:
if w_arg_or_err is None:
assert self.last_instr == -1
next_instr = r_uint(0)
else:
next_instr = self.resume_execute_frame(w_arg_or_err)
except pyopcode.Yield:
w_exitvalue = self.popvalue()
else:
w_exitvalue = self.dispatch(self.pycode, next_instr,
executioncontext)
except OperationError:
raise
except Exception as e: # general fall-back
> raise self._convert_unexpected_exception(e)
interpreter/pyframe.py:354:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_min_max,...-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1> at line 2
e = CompileError(DistutilsExecError("command 'gcc' failed with exit status 1",),)
def _convert_unexpected_exception(self, e):
from pypy.interpreter import error
> operr = error.get_converted_unexpected_exception(self.space, e)
interpreter/pyframe.py:845:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_min_max,...-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1> at line 2
w_arg_or_err = None
def execute_frame(self, w_arg_or_err=None):
"""Execute this frame. Main entry point to the interpreter.
'w_arg_or_err' is non-None iff we are starting or resuming
a generator or coroutine frame; in that case, w_arg_or_err
is the input argument -or- an SApplicationException instance.
"""
from pypy.interpreter import pyopcode as pyopcode
# the following 'assert' is an annotation hint: it hides from
# the annotator all methods that are defined in PyFrame but
# overridden in the {,Host}FrameClass subclasses of PyFrame.
assert (isinstance(self, self.space.FrameClass) or
not self.space.config.translating)
executioncontext = self.space.getexecutioncontext()
executioncontext.enter(self)
got_exception = True
w_exitvalue = self.space.w_None
try:
executioncontext.call_trace(self)
#
# Execution starts just after the last_instr. Initially,
# last_instr is -1. After a generator suspends it points to
# the YIELD_VALUE/YIELD_FROM instruction.
try:
try:
if w_arg_or_err is None:
assert self.last_instr == -1
next_instr = r_uint(0)
else:
next_instr = self.resume_execute_frame(w_arg_or_err)
except pyopcode.Yield:
w_exitvalue = self.popvalue()
else:
w_exitvalue = self.dispatch(self.pycode, next_instr,
> executioncontext)
interpreter/pyframe.py:350:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_min_max,...-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1> at line 2
pycode = <code object test_min_max, file "[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1>
next_instr = 0L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x7f9c8f008b90>
def dispatch(self, pycode, next_instr, ec):
# For the sequel, force 'next_instr' to be unsigned for performance
next_instr = r_uint(next_instr)
co_code = pycode.co_code
try:
while True:
assert next_instr & 1 == 0
> next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:68:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_min_max,...-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1> at line 2
co_code = '|\x00\xa0\x00d\x01d\x02\xcc\x01}\x01|\x01\xa0\x01\xa1\x00\x01\x00d\x00S\x00'
next_instr = 0L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x7f9c8f008b90>
def handle_bytecode(self, co_code, next_instr, ec):
try:
> next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:74:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_min_max,...-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1> at line 2
co_code = '|\x00\xa0\x00d\x01d\x02\xcc\x01}\x01|\x01\xa0\x01\xa1\x00\x01\x00d\x00S\x00'
next_instr = 10L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x7f9c8f008b90>
@jit.unroll_safe
def dispatch_bytecode(self, co_code, next_instr, ec):
while True:
assert next_instr & 1 == 0
self.last_instr = intmask(next_instr)
if jit.we_are_jitted():
_d = self.debugdata
if ec.space.reverse_debugging or (
_d is not None and _d.w_f_trace is not None):
ec.bytecode_only_trace(self)
next_instr = r_uint(self.last_instr)
else:
# Only reload next_instr from last_instr when something that
# can modify it actually ran (trace function or action
# dispatcher). In the common case (no trace, positive ticker)
# next_instr is unchanged and the round-trip is skipped.
_d = self.debugdata
if ec.space.reverse_debugging or (
_d is not None and _d.w_f_trace is not None) or (
not we_are_translated() and
'bytecode_only_trace' in ec.__dict__):
ec.bytecode_only_trace(self)
next_instr = r_uint(self.last_instr)
actionflag = ec.space.actionflag
if actionflag.decrement_ticker(TICK_COUNTER_STEP) < 0:
actionflag.action_dispatcher(ec, self)
next_instr = r_uint(self.last_instr)
opcode = ord(co_code[next_instr])
oparg = ord(co_code[next_instr + 1])
next_instr += 2
# note: the structure of the code here is such that it makes
# (after translation) a big "if/elif" chain, which is then
# turned into computed gotos.
while opcode == opcodedesc.EXTENDED_ARG.index:
opcode = ord(co_code[next_instr])
arg = ord(co_code[next_instr + 1])
if opcode < HAVE_ARGUMENT:
raise BytecodeCorruption
next_instr += 2
oparg = (oparg * 256) | arg
if opcode == opcodedesc.RETURN_VALUE.index:
self.frame_finished_execution = True # for generators
raise Return
elif opcode == opcodedesc.JUMP_ABSOLUTE.index:
return self.jump_absolute(oparg, next_instr, ec)
elif opcode == opcodedesc.RERAISE.index:
return self.RERAISE(oparg, next_instr)
elif opcode == opcodedesc.FOR_ITER.index:
next_instr = self.FOR_ITER(oparg, next_instr)
elif opcode == opcodedesc.JUMP_FORWARD.index:
next_instr = self.JUMP_FORWARD(oparg, next_instr)
elif opcode == opcodedesc.JUMP_IF_FALSE_OR_POP.index:
return self.JUMP_IF_FALSE_OR_POP(oparg, next_instr, ec)
elif opcode == opcodedesc.JUMP_IF_TRUE_OR_POP.index:
return self.JUMP_IF_TRUE_OR_POP(oparg, next_instr, ec)
elif opcode == opcodedesc.POP_JUMP_IF_FALSE.index:
return self.POP_JUMP_IF_FALSE(oparg, next_instr, ec)
elif opcode == opcodedesc.POP_JUMP_IF_TRUE.index:
return self.POP_JUMP_IF_TRUE(oparg, next_instr, ec)
elif opcode == opcodedesc.POP_JUMP_FORWARD_IF_NONE.index:
next_instr = self.POP_JUMP_FORWARD_IF_NONE(oparg, next_instr)
elif opcode == opcodedesc.POP_JUMP_FORWARD_IF_NOT_NONE.index:
next_instr = self.POP_JUMP_FORWARD_IF_NOT_NONE(oparg, next_instr)
elif opcode == opcodedesc.JUMP_IF_NOT_EXC_MATCH.index:
next_instr = self.JUMP_IF_NOT_EXC_MATCH(oparg, next_instr)
elif opcode == opcodedesc.BINARY_ADD.index:
self.BINARY_ADD(oparg, next_instr)
elif opcode == opcodedesc.BINARY_AND.index:
self.BINARY_AND(oparg, next_instr)
elif opcode == opcodedesc.BINARY_FLOOR_DIVIDE.index:
self.BINARY_FLOOR_DIVIDE(oparg, next_instr)
elif opcode == opcodedesc.BINARY_MATRIX_MULTIPLY.index:
self.BINARY_MATRIX_MULTIPLY(oparg, next_instr)
elif opcode == opcodedesc.BINARY_LSHIFT.index:
self.BINARY_LSHIFT(oparg, next_instr)
elif opcode == opcodedesc.BINARY_MODULO.index:
self.BINARY_MODULO(oparg, next_instr)
elif opcode == opcodedesc.BINARY_MULTIPLY.index:
self.BINARY_MULTIPLY(oparg, next_instr)
elif opcode == opcodedesc.BINARY_OR.index:
self.BINARY_OR(oparg, next_instr)
elif opcode == opcodedesc.BINARY_POWER.index:
self.BINARY_POWER(oparg, next_instr)
elif opcode == opcodedesc.BINARY_RSHIFT.index:
self.BINARY_RSHIFT(oparg, next_instr)
elif opcode == opcodedesc.BINARY_SUBSCR.index:
self.BINARY_SUBSCR(oparg, next_instr)
elif opcode == opcodedesc.BINARY_SUBTRACT.index:
self.BINARY_SUBTRACT(oparg, next_instr)
elif opcode == opcodedesc.BINARY_TRUE_DIVIDE.index:
self.BINARY_TRUE_DIVIDE(oparg, next_instr)
elif opcode == opcodedesc.BINARY_XOR.index:
self.BINARY_XOR(oparg, next_instr)
elif opcode == opcodedesc.BUILD_CONST_KEY_MAP.index:
self.BUILD_CONST_KEY_MAP(oparg, next_instr)
elif opcode == opcodedesc.BUILD_LIST.index:
self.BUILD_LIST(oparg, next_instr)
elif opcode == opcodedesc.BUILD_LIST_FROM_ARG.index:
self.BUILD_LIST_FROM_ARG(oparg, next_instr)
elif opcode == opcodedesc.BUILD_MAP.index:
self.BUILD_MAP(oparg, next_instr)
elif opcode == opcodedesc.BUILD_SET.index:
self.BUILD_SET(oparg, next_instr)
elif opcode == opcodedesc.BUILD_SLICE.index:
self.BUILD_SLICE(oparg, next_instr)
elif opcode == opcodedesc.BUILD_TUPLE.index:
self.BUILD_TUPLE(oparg, next_instr)
elif opcode == opcodedesc.CALL_FUNCTION.index:
self.CALL_FUNCTION(oparg, next_instr)
elif opcode == opcodedesc.CALL_FUNCTION_KW.index:
self.CALL_FUNCTION_KW(oparg, next_instr)
elif opcode == opcodedesc.CALL_FUNCTION_EX.index:
self.CALL_FUNCTION_EX(oparg, next_instr)
elif opcode == opcodedesc.CALL_METHOD.index:
self.CALL_METHOD(oparg, next_instr)
elif opcode == opcodedesc.CALL_METHOD_KW.index:
> self.CALL_METHOD_KW(oparg, next_instr)
interpreter/pyopcode.py:315:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_min_max,...-64/build/pypy/module/cpyext/test/test_methodobject.py:310]", line 1> at line 2
n_arguments = 0, ignored = (10L,)
W_AbstractTupleObject = <class 'pypy.objspace.std.tupleobject.W_AbstractTupleObject'>
w_self = None, space = StdObjSpace
@jit.unroll_safe
def CALL_METHOD_KW(f, n_arguments, *ignored):
from pypy.objspace.std.tupleobject import W_AbstractTupleObject
# opargs contains the arg + kwarg count, excluding the implicit 'self'
w_self = f.peekvalue_maybe_none(n_arguments + 1)
space = f.space
# like in BUILD_CONST_KEY_MAP we can't use space.fixedview because then
# the immutability of the tuple is lost
w_tup_varnames = space.interp_w(W_AbstractTupleObject, f.popvalue())
n_keywords = space.len_w(w_tup_varnames)
keyword_names_w = [None] * n_keywords
keywords_w = [None] * n_keywords
for i in range(n_keywords):
keyword_names_w[i] = w_tup_varnames.getitem(space, i)
w_value = f.peekvalue(n_keywords - 1 - i)
keywords_w[i] = w_value
f.dropvalues(n_keywords)
n_arguments -= n_keywords
n = n_arguments + (w_self is not None)
arguments = f.popvalues(n) # includes w_self if it is not None
if w_self is None:
f.popvalue_maybe_none() # removes w_self, which is None
w_callable = f.popvalue()
args = f.argument_factory(
arguments, keyword_names_w, keywords_w, None, None,
methodcall=w_self is not None, w_function=w_callable)
if f.get_is_being_profiled() and function.is_builtin_code(w_callable):
w_result = f.space.call_args_and_c_profile(f, w_callable, args)
else:
> w_result = f.space.call_args(w_callable, args)
objspace/std/callmethod.py:126:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
space = StdObjSpace, w_obj = <FunctionWithFixedCode import_module>
args = Arguments([], ['name'], [W_UnicodeObject('builtin_min_max')])
def call_args(space, w_obj, args):
# two special cases for performance
if isinstance(w_obj, Function):
> return w_obj.call_args(args)
objspace/descroperation.py:192:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <FunctionWithFixedCode import_module>
args = Arguments([], ['name'], [W_UnicodeObject('builtin_min_max')])
def call_args(self, args):
# delegate activation to code
> w_res = self.getcode().funcrun(self, args)
interpreter/function.py:82:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f9c8e41aed0>
func = <FunctionWithFixedCode import_module>
args = Arguments([], ['name'], [W_UnicodeObject('builtin_min_max')])
def funcrun(self, func, args):
> return BuiltinCode.funcrun_obj(self, func, None, args)
interpreter/gateway.py:869:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f9c8e41aed0>
func = <FunctionWithFixedCode import_module>, w_obj = None
args = Arguments([], ['name'], [W_UnicodeObject('builtin_min_max')])
def funcrun_obj(self, func, w_obj, args):
space = func.space
activation = self.activation
scope_w = args.parse_obj(w_obj, func.qualname, self.sig,
func.defs_w, func.w_kw_defs, self.minargs)
try:
w_result = activation._run(space, scope_w)
except DescrMismatch:
if w_obj is not None:
args = args.prepend(w_obj)
return self._type_unwrap_mismatch(space, args)
except Exception as e:
> self.handle_exception(space, e)
interpreter/gateway.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f9c8e41aed0>
space = StdObjSpace
e = CompileError(DistutilsExecError("command 'gcc' failed with exit status 1",),)
def handle_exception(self, space, e):
try:
if not we_are_translated():
raise
raise e
except OperationError:
raise
except Exception as e: # general fall-back
from pypy.interpreter import error
> raise error.get_converted_unexpected_exception(space, e)
interpreter/gateway.py:908:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f9c8e41aed0>
func = <FunctionWithFixedCode import_module>, w_obj = None
args = Arguments([], ['name'], [W_UnicodeObject('builtin_min_max')])
def funcrun_obj(self, func, w_obj, args):
space = func.space
activation = self.activation
scope_w = args.parse_obj(w_obj, func.qualname, self.sig,
func.defs_w, func.w_kw_defs, self.minargs)
try:
> w_result = activation._run(space, scope_w)
interpreter/gateway.py:878:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinActivation_UwS_ObjSpace_text_text_or_none_text_fsencode_or_none_W_Root_bool_bool object at 0x7f9c8e7a8710>
space = StdObjSpace
scope_w = [W_UnicodeObject('builtin_min_max'), <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f9c9239e790>, W_UnicodeObject(''), <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f9c9239e790>, None, W_BoolObject(False), ...]
def _run(self, space, scope_w):
> return self.behavior(space, space.text_w(scope_w[0]), space.text_or_none_w(scope_w[1]), space.text_w(scope_w[2]), space.fsencode_or_none_w(scope_w[3]), scope_w[4], space.is_true(scope_w[5]), space.is_true(scope_w[6]))
<2731-codegen /build_dir/own-linux-x86-64/build/rpython/tool/sourcetools.py:200>:3:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
space = StdObjSpace, name = 'builtin_min_max', init = None, body = ''
filename = None, w_include_dirs = None, PY_SSIZE_T_CLEAN = False
use_imp = False
@unwrap_spec(name='text', init='text_or_none', body='text',
filename='fsencode_or_none', PY_SSIZE_T_CLEAN=bool,
use_imp=bool)
def import_module(space, name, init=None, body='',
filename=None, w_include_dirs=None,
PY_SSIZE_T_CLEAN=False, use_imp=False):
include_dirs = _unwrap_include_dirs(space, w_include_dirs)
# For file-based imports (no inline code), reuse the previously
# loaded module from our own cache -- avoids re-running PyInit_xxx
# (the expensive part) on every test in the class.
# We use a separate cache (not sys.modules) so that an
# import_extension() call with the same name doesn't shadow the
# file-based module.
if init is None and not body:
if name in self._file_module_cache:
self.record_imported_module(name)
return self._file_module_cache[name]
# About to overwrite sys.modules[name] -- save the displaced
# module (if any) so that its raw allocations aren't freed
# during a later test's leakfinder tracking window.
w_modules = space.sys.get('modules')
try:
w_old = space.getitem(w_modules, space.newtext(name))
self._module_keepalive.append(w_old)
except OperationError:
pass
w_result = self.sys_info.import_module(
name, init, body, filename, include_dirs, PY_SSIZE_T_CLEAN,
> use_imp)
module/cpyext/test/test_cpyext.py:391:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.cpyext.test.test_cpyext.SpaceCompiler object at 0x7f9c8efddd10>
name = 'builtin_min_max', init = None, body = ''
filename = local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/builtin_min_max.c')
include_dirs = None, PY_SSIZE_T_CLEAN = False, use_imp = False
def import_module(self, name, init=None, body='', filename=None,
include_dirs=None, PY_SSIZE_T_CLEAN=False, use_imp=False):
"""
init specifies the overall template of the module.
if init is None, the module source will be loaded from a file in this
test directory, give a name given by the filename parameter.
if filename is None, the module name will be used to construct the
filename.
"""
if body or init:
if init is None:
init = "return PyModule_Create(&moduledef);"
if init is not None:
code = make_source(name, init, body, PY_SSIZE_T_CLEAN)
kwds = dict(source_strings=[code])
else:
assert not PY_SSIZE_T_CLEAN
if filename is None:
filename = name
filename = HERE / (filename + ".c")
kwds = dict(source_files=[filename])
mod = self.compile_extension_module(
> name, include_dirs=include_dirs, **kwds)
tool/cpyext/extbuild.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.cpyext.test.test_cpyext.SpaceCompiler object at 0x7f9c8efddd10>
name = 'builtin_min_max', include_dirs = []
source_files = [local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/builtin_min_max.c')]
source_strings = None
def compile_extension_module(self, name, include_dirs=None,
source_files=None, source_strings=None):
"""
Build an extension module and return the filename of the resulting
native code file.
name is the name of the module, possibly including dots if it is a
module inside a package.
"""
include_dirs = include_dirs or []
modname = name.split('.')[-1]
dirname = self.get_builddir(name=modname)
if source_strings:
assert not source_files
files = convert_sources_to_files(source_strings, dirname)
source_files = files
soname = c_compile(source_files, outputfilename=str(dirname / modname),
compile_extra=self.compile_extra,
link_extra=self.link_extra,
include_dirs=self.include_extra + include_dirs,
> libraries=self.extra_libs)
tool/cpyext/extbuild.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cfilenames = [local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/builtin_min_max.c')]
outputfilename = local('/tmp/pytest/usession-py3.12-586/builtin_min_max-0/builtin_min_max.so')
compile_extra = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC']
link_extra = ['-g']
include_dirs = [local('/tmp/pytest/usession-py3.12-586'), local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include'), loca...dir/own-linux-x86-64/build/pypy/module/cpyext/parse'), local('/build_dir/own-linux-x86-64/build/rpython/translator/c')]
libraries = [], library_dirs = []
def c_compile(cfilenames, outputfilename,
compile_extra=None, link_extra=None,
include_dirs=None, libraries=None, library_dirs=None):
compile_extra = compile_extra or []
link_extra = link_extra or []
include_dirs = include_dirs or []
libraries = libraries or []
library_dirs = library_dirs or []
if sys.platform == 'win32':
link_extra = link_extra + ['/DEBUG'] # generate .pdb file
if sys.platform == 'darwin':
# support Fink & Darwinports
for s in ('/sw/', '/opt/local/'):
if (s + 'include' not in include_dirs
and os.path.exists(s + 'include')):
include_dirs.append(s + 'include')
if s + 'lib' not in library_dirs and os.path.exists(s + 'lib'):
library_dirs.append(s + 'lib')
outputfilename = py.path.local(outputfilename).new(ext=so_ext)
saved_environ = os.environ.copy()
try:
_build(
cfilenames, outputfilename,
compile_extra, link_extra,
> include_dirs, libraries, library_dirs)
tool/cpyext/extbuild.py:202:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cfilenames = [local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/builtin_min_max.c')]
outputfilename = local('/tmp/pytest/usession-py3.12-586/builtin_min_max-0/builtin_min_max.so')
compile_extra = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC']
link_extra = ['-g']
include_dirs = [local('/tmp/pytest/usession-py3.12-586'), local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include'), loca...dir/own-linux-x86-64/build/pypy/module/cpyext/parse'), local('/build_dir/own-linux-x86-64/build/rpython/translator/c')]
libraries = [], library_dirs = []
def _build(cfilenames, outputfilename, compile_extra, link_extra,
include_dirs, libraries, library_dirs):
try:
# monkeypatch distutils for some versions of msvc compiler
import setuptools
except ImportError:
# XXX if this fails and is required,
# we must call pypy -mensurepip after translation
pass
from distutils.ccompiler import new_compiler
from distutils import sysconfig
# XXX for Darwin running old versions of CPython 2.7.x
sysconfig.get_config_vars()
compiler = new_compiler(force=1)
sysconfig.customize_compiler(compiler) # XXX
objects = []
for cfile in cfilenames:
cfile = py.path.local(cfile)
old = cfile.dirpath().chdir()
try:
res = compiler.compile([cfile.basename],
> include_dirs=include_dirs, extra_preargs=compile_extra)
tool/cpyext/extbuild.py:234:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <distutils.unixccompiler.UnixCCompiler instance at 0x7f9c8d649690>
sources = ['builtin_min_max.c'], output_dir = None, macros = []
include_dirs = [local('/tmp/pytest/usession-py3.12-586'), local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include'), loca...dir/own-linux-x86-64/build/pypy/module/cpyext/parse'), local('/build_dir/own-linux-x86-64/build/rpython/translator/c')]
debug = 0
extra_preargs = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC']
extra_postargs = [], depends = None
def compile(self, sources, output_dir=None, macros=None,
include_dirs=None, debug=0, extra_preargs=None,
extra_postargs=None, depends=None):
"""Compile one or more source files.
'sources' must be a list of filenames, most likely C/C++
files, but in reality anything that can be handled by a
particular compiler and compiler class (eg. MSVCCompiler can
handle resource files in 'sources'). Return a list of object
filenames, one per source filename in 'sources'. Depending on
the implementation, not all source files will necessarily be
compiled, but all corresponding object filenames will be
returned.
If 'output_dir' is given, object files will be put under it, while
retaining their original path component. That is, "foo/bar.c"
normally compiles to "foo/bar.o" (for a Unix implementation); if
'output_dir' is "build", then it would compile to
"build/foo/bar.o".
'macros', if given, must be a list of macro definitions. A macro
definition is either a (name, value) 2-tuple or a (name,) 1-tuple.
The former defines a macro; if the value is None, the macro is
defined without an explicit value. The 1-tuple case undefines a
macro. Later definitions/redefinitions/ undefinitions take
precedence.
'include_dirs', if given, must be a list of strings, the
directories to add to the default include file search path for this
compilation only.
'debug' is a boolean; if true, the compiler will be instructed to
output debug symbols in (or alongside) the object file(s).
'extra_preargs' and 'extra_postargs' are implementation- dependent.
On platforms that have the notion of a command-line (e.g. Unix,
DOS/Windows), they are most likely lists of strings: extra
command-line arguments to prepand/append to the compiler command
line. On other platforms, consult the implementation class
documentation. In any event, they are intended as an escape hatch
for those occasions when the abstract compiler framework doesn't
cut the mustard.
'depends', if given, is a list of filenames that all targets
depend on. If a source file is older than any file in
depends, then the source file will be recompiled. This
supports dependency tracking, but only at a coarse
granularity.
Raises CompileError on failure.
"""
# A concrete compiler class can either override this method
# entirely or implement _compile().
macros, objects, extra_postargs, pp_opts, build = \
self._setup_compile(output_dir, macros, include_dirs, sources,
depends, extra_postargs)
cc_args = self._get_cc_args(pp_opts, debug, extra_preargs)
for obj in objects:
try:
src, ext = build[obj]
except KeyError:
continue
> self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
/usr/local/lib/python2.7/distutils/ccompiler.py:574:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <distutils.unixccompiler.UnixCCompiler instance at 0x7f9c8d649690>
obj = 'builtin_min_max.o', src = 'builtin_min_max.c', ext = '.c'
cc_args = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC', '-I/tmp/pytest/usession-py3.12-586', ...]
extra_postargs = []
pp_opts = ['-I/tmp/pytest/usession-py3.12-586', '-I/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include', '-I/build_dir/own-linux-x86-64/build/pypy/module/cpyext/parse', '-I/build_dir/own-linux-x86-64/build/rpython/translator/c']
def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
compiler_so = self.compiler_so
if sys.platform == 'darwin':
compiler_so = _osx_support.compiler_fixup(compiler_so,
cc_args + extra_postargs)
try:
self.spawn(compiler_so + cc_args + [src, '-o', obj] +
extra_postargs)
except DistutilsExecError, msg:
> raise CompileError, msg
E CompileError: command 'gcc' failed with exit status 1
/usr/local/lib/python2.7/distutils/unixccompiler.py:124: CompileError
----------------------------- Captured stderr call -----------------------------
builtin_min_max.c:10401:5: error: excess elements in struct initializer [-Werror]\n10401 | 0,\n | ^\nbuiltin_min_max.c:10401:5: note: (near initialization for \u2018__pyx_CyFunctionType_type\u2019)\nbuiltin_min_max.c: In function \u2018__Pyx__PyCode_New\u2019:\nbuiltin_min_max.c:11865:9: error: implicit declaration of function \u2018PyUnstable_Code_NewWithPosOnlyArgs\u2019; did you mean \u2018PyCode_NewWithPosOnlyArgs\u2019? [-Werror=implicit-function-declaration]\n11865 | PyUnstable_Code_NewWithPosOnlyArgs\n | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n | PyCode_NewWithPosOnlyArgs\nbuiltin_min_max.c:11863:12: error: assignment to \u2018PyCodeObject *\u2019 from \u2018int\u2019 makes pointer from integer without a cast [-Werror=int-conversion]\n11863 | result =\n | ^\ncc1: all warnings being treated as errors
=========================== short test summary info ============================
FAIL module/cpyext/test/test_methodobject.py::AppTestMethodObject::()::test_module_name
FAIL module/cpyext/test/test_methodobject.py::AppTestMethodObject::()::test_min_max
===================== 2 failed, 12 passed in 76.08 seconds =====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f9c8eb1e850>> ignored
++ 20:56:19 starting module/cpyext/test/test_object.py [83 started in total]
__ module/cpyext/test/test_namespaceobject.py [80 done in total, somefailed=True]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_namespaceobject.py F
=================================== FAILURES ===================================
_________________________ AppTestNamespace.test_simple _________________________
self = <CallInfo when='call' exception: command 'gcc' failed with exit status 1>
func = <function <lambda> at 0x7f392f1401d0>, when = 'call'
def __init__(self, func, when):
#: context of invocation: one of "setup", "call",
#: "teardown", "memocollect"
self.when = when
self.start = time()
try:
> self.result = func()
../_pytest/runner.py:150:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> return CallInfo(lambda: ihook(item=item, **kwds), when=when)
../_pytest/runner.py:138:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_HookCaller 'pytest_runtest_call'>
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_simple'>}
def __call__(self, **kwargs):
assert not self.is_historic()
> return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
../_pytest/vendored_packages/pluggy.py:724:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.config.PytestPluginManager object at 0x7f3937ed4f10>
hook = <_HookCaller 'pytest_runtest_call'>
methods = [<_pytest.vendored_packages.pluggy.HookImpl instance at 0x7f3931323190>]
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_simple'>}
def _hookexec(self, hook, methods, kwargs):
# called from all hookcaller instances.
# enable_tracing will set its own wrapping function at self._inner_hookexec
> return self._inner_hookexec(hook, methods, kwargs)
../_pytest/vendored_packages/pluggy.py:338:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
hook = <_HookCaller 'pytest_runtest_call'>
methods = [<_pytest.vendored_packages.pluggy.HookImpl instance at 0x7f3931323190>]
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_simple'>}
self._inner_hookexec = lambda hook, methods, kwargs: \
> _MultiCall(methods, kwargs, hook.spec_opts).execute()
../_pytest/vendored_packages/pluggy.py:333:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>
def execute(self):
all_kwargs = self.kwargs
self.results = results = []
firstresult = self.specopts.get("firstresult")
while self.hook_impls:
hook_impl = self.hook_impls.pop()
args = [all_kwargs[argname] for argname in hook_impl.argnames]
if hook_impl.hookwrapper:
> return _wrapped_call(hook_impl.function(*args), self.execute)
../_pytest/vendored_packages/pluggy.py:595:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
wrap_controller = <generator object pytest_runtest_call at 0x7f392f184f00>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...est_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def _wrapped_call(wrap_controller, func):
""" Wrap calling to a function with a generator which needs to yield
exactly once. The yield point will trigger calling the wrapped function
and return its _CallOutcome to the yield point. The generator then needs
to finish (raise StopIteration) in order for the wrapped call to complete.
"""
try:
next(wrap_controller) # first yield
except StopIteration:
_raise_wrapfail(wrap_controller, "did not yield")
call_outcome = _CallOutcome(func)
try:
wrap_controller.send(call_outcome)
_raise_wrapfail(wrap_controller, "has second yield")
except StopIteration:
pass
> return call_outcome.get_result()
../_pytest/vendored_packages/pluggy.py:253:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f392f184eb0>
def get_result(self):
if self.excinfo is None:
return self.result
else:
ex = self.excinfo
if _py3:
raise ex[1].with_traceback(ex[2])
> _reraise(*ex) # noqa
../_pytest/vendored_packages/pluggy.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f392f184eb0>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...est_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def __init__(self, func):
try:
> self.result = func()
../_pytest/vendored_packages/pluggy.py:264:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>
def execute(self):
all_kwargs = self.kwargs
self.results = results = []
firstresult = self.specopts.get("firstresult")
while self.hook_impls:
hook_impl = self.hook_impls.pop()
args = [all_kwargs[argname] for argname in hook_impl.argnames]
if hook_impl.hookwrapper:
> return _wrapped_call(hook_impl.function(*args), self.execute)
../_pytest/vendored_packages/pluggy.py:595:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
wrap_controller = <generator object pytest_runtest_call at 0x7f392f184b90>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...est_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def _wrapped_call(wrap_controller, func):
""" Wrap calling to a function with a generator which needs to yield
exactly once. The yield point will trigger calling the wrapped function
and return its _CallOutcome to the yield point. The generator then needs
to finish (raise StopIteration) in order for the wrapped call to complete.
"""
try:
next(wrap_controller) # first yield
except StopIteration:
_raise_wrapfail(wrap_controller, "did not yield")
call_outcome = _CallOutcome(func)
try:
wrap_controller.send(call_outcome)
_raise_wrapfail(wrap_controller, "has second yield")
except StopIteration:
pass
> return call_outcome.get_result()
../_pytest/vendored_packages/pluggy.py:253:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f392f184af0>
def get_result(self):
if self.excinfo is None:
return self.result
else:
ex = self.excinfo
if _py3:
raise ex[1].with_traceback(ex[2])
> _reraise(*ex) # noqa
../_pytest/vendored_packages/pluggy.py:279:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.vendored_packages.pluggy._CallOutcome instance at 0x7f392f184af0>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...est_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>>
def __init__(self, func):
try:
> self.result = func()
../_pytest/vendored_packages/pluggy.py:264:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_simple'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>
def execute(self):
all_kwargs = self.kwargs
self.results = results = []
firstresult = self.specopts.get("firstresult")
while self.hook_impls:
hook_impl = self.hook_impls.pop()
args = [all_kwargs[argname] for argname in hook_impl.argnames]
if hook_impl.hookwrapper:
return _wrapped_call(hook_impl.function(*args), self.execute)
> res = hook_impl.function(*args)
../_pytest/vendored_packages/pluggy.py:596:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
item = <AppTestMethod 'test_simple'>
def pytest_runtest_call(item):
try:
> item.runtest()
../_pytest/runner.py:91:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <AppTestMethod 'test_simple'>
def runtest(self):
target = self.obj
src = extract_docstring_if_empty_function(target.im_func)
space = target.im_self.space
if self.config.option.runappdirect:
appexec_definitions = self.parent.obj.__dict__
spaceconfig = getattr(self.parent.obj, 'spaceconfig', None)
usemodules = spaceconfig.get('usemodules') if spaceconfig else None
return run_with_python(self.config.option.python, src, usemodules,
**appexec_definitions)
filename = self._getdynfilename(target)
func = app2interp_temp(src, filename=filename)
w_instance = self.parent.w_instance
> self.execute_appex(space, func, space, w_instance)
tool/pytest/apptest.py:331:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <AppTestMethod 'test_simple'>, space = StdObjSpace
target = <function test_simple at 0x7f392f140350>
args = (StdObjSpace, <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f392f6beb10>)
def execute_appex(self, space, target, *args):
self.space = space
space.getexecutioncontext().set_sys_exc_info(None)
try:
> target(*args)
tool/pytest/apptest.py:267:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
space = StdObjSpace
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f392f6beb10>,)
w_func = <Function test_simple>
args = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f392f6beb10>
def appcaller(space, *args_w):
if not isinstance(space, ObjSpace):
raise TypeError("first argument must be a space instance.")
# the last argument can be an Arguments
w_func = self.wget(space, name)
if not args_w:
return space.call_function(w_func)
else:
args = args_w[-1]
assert args is not None
if not isinstance(args, Arguments):
> return space.call_function(w_func, *args_w)
interpreter/gateway.py:1409:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = StdObjSpace, w_func = <Function test_simple>
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f392f6beb10>,)
nargs = 1, Function = <class 'pypy.interpreter.function.Function'>
_Method = <class 'pypy.interpreter.function._Method'>
def call_function(self, w_func, *args_w):
nargs = len(args_w) # used for pruning funccall versions
if not self.config.objspace.disable_call_speedhacks and nargs < 5:
# start of hack for performance
from pypy.interpreter.function import Function, _Method
if isinstance(w_func, _Method):
if nargs < 4:
func = w_func.w_function
if isinstance(func, Function):
return func.funccall(w_func.w_instance, *args_w)
if isinstance(w_func, Function):
> return w_func.funccall(*args_w)
interpreter/baseobjspace.py:1237:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <Function test_simple>
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f392f6beb10>,)
gateway = <module 'pypy.interpreter.gateway' from '/build_dir/own-linux-x86-64/build/pypy/interpreter/gateway.pyc'>
PyCode = <class 'pypy.interpreter.pycode.PyCode'>
code = <code object test_simple, file "[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1>
def funccall(self, *args_w): # speed hack
from pypy.interpreter import gateway
from pypy.interpreter.pycode import PyCode
code = self.getcode() # hook for the jit
nargs = len(args_w)
fast_natural_arity = code.fast_natural_arity
if nargs == fast_natural_arity:
if nargs == 0:
assert isinstance(code, gateway.BuiltinCode0)
return code.fastcall_0(self.space, self)
elif nargs == 1:
assert isinstance(code, gateway.BuiltinCode1)
return code.fastcall_1(self.space, self, args_w[0])
elif nargs == 2:
assert isinstance(code, gateway.BuiltinCode2)
return code.fastcall_2(self.space, self, args_w[0], args_w[1])
elif nargs == 3:
assert isinstance(code, gateway.BuiltinCode3)
return code.fastcall_3(self.space, self, args_w[0],
args_w[1], args_w[2])
elif nargs == 4:
assert isinstance(code, gateway.BuiltinCode4)
return code.fastcall_4(self.space, self, args_w[0],
args_w[1], args_w[2], args_w[3])
elif (nargs | PyCode.FLATPYCALL) == fast_natural_arity:
assert isinstance(code, PyCode)
if nargs < 5:
new_frame = self.space.createframe(code, self.w_func_globals,
self)
for i in funccallunrolling:
if i < nargs:
new_frame.locals_cells_stack_w[i] = args_w[i]
> return new_frame.run(self.name, self.qualname)
interpreter/function.py:132:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_simple, ...64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1> at line 3
name = 'test_simple', qualname = 'test_simple'
def run(self, name=None, qualname=None):
"""Start this frame's execution."""
if self._is_generator_or_coroutine():
return self.initialize_as_generator(name, qualname)
else:
> return self.execute_frame()
interpreter/pyframe.py:257:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_simple, ...64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1> at line 3
w_arg_or_err = None
def execute_frame(self, w_arg_or_err=None):
"""Execute this frame. Main entry point to the interpreter.
'w_arg_or_err' is non-None iff we are starting or resuming
a generator or coroutine frame; in that case, w_arg_or_err
is the input argument -or- an SApplicationException instance.
"""
from pypy.interpreter import pyopcode as pyopcode
# the following 'assert' is an annotation hint: it hides from
# the annotator all methods that are defined in PyFrame but
# overridden in the {,Host}FrameClass subclasses of PyFrame.
assert (isinstance(self, self.space.FrameClass) or
not self.space.config.translating)
executioncontext = self.space.getexecutioncontext()
executioncontext.enter(self)
got_exception = True
w_exitvalue = self.space.w_None
try:
executioncontext.call_trace(self)
#
# Execution starts just after the last_instr. Initially,
# last_instr is -1. After a generator suspends it points to
# the YIELD_VALUE/YIELD_FROM instruction.
try:
try:
if w_arg_or_err is None:
assert self.last_instr == -1
next_instr = r_uint(0)
else:
next_instr = self.resume_execute_frame(w_arg_or_err)
except pyopcode.Yield:
w_exitvalue = self.popvalue()
else:
w_exitvalue = self.dispatch(self.pycode, next_instr,
executioncontext)
except OperationError:
raise
except Exception as e: # general fall-back
> raise self._convert_unexpected_exception(e)
interpreter/pyframe.py:354:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_simple, ...64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1> at line 3
e = CompileError(DistutilsExecError("command 'gcc' failed with exit status 1",),)
def _convert_unexpected_exception(self, e):
from pypy.interpreter import error
> operr = error.get_converted_unexpected_exception(self.space, e)
interpreter/pyframe.py:845:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_simple, ...64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1> at line 3
w_arg_or_err = None
def execute_frame(self, w_arg_or_err=None):
"""Execute this frame. Main entry point to the interpreter.
'w_arg_or_err' is non-None iff we are starting or resuming
a generator or coroutine frame; in that case, w_arg_or_err
is the input argument -or- an SApplicationException instance.
"""
from pypy.interpreter import pyopcode as pyopcode
# the following 'assert' is an annotation hint: it hides from
# the annotator all methods that are defined in PyFrame but
# overridden in the {,Host}FrameClass subclasses of PyFrame.
assert (isinstance(self, self.space.FrameClass) or
not self.space.config.translating)
executioncontext = self.space.getexecutioncontext()
executioncontext.enter(self)
got_exception = True
w_exitvalue = self.space.w_None
try:
executioncontext.call_trace(self)
#
# Execution starts just after the last_instr. Initially,
# last_instr is -1. After a generator suspends it points to
# the YIELD_VALUE/YIELD_FROM instruction.
try:
try:
if w_arg_or_err is None:
assert self.last_instr == -1
next_instr = r_uint(0)
else:
next_instr = self.resume_execute_frame(w_arg_or_err)
except pyopcode.Yield:
w_exitvalue = self.popvalue()
else:
w_exitvalue = self.dispatch(self.pycode, next_instr,
> executioncontext)
interpreter/pyframe.py:350:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_simple, ...64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1> at line 3
pycode = <code object test_simple, file "[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1>
next_instr = 0L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x7f392f5b0d50>
def dispatch(self, pycode, next_instr, ec):
# For the sequel, force 'next_instr' to be unsigned for performance
next_instr = r_uint(next_instr)
co_code = pycode.co_code
try:
while True:
assert next_instr & 1 == 0
> next_instr = self.handle_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:68:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_simple, ...64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1> at line 3
co_code = 'd\x01d\x02l\x00m\x01}\x01\x01\x00|\x00\xa0\x02d\x03d\x04g\x01d\x05d\x06\xcc\x03}\x02|\x02\xa0\x03d\x07d\x08d\t\x9c\x02\xa1\x01|\x01d\x07d\x08d\t\xaa\x02k\x02s\x1fJ\x00\x82\x01d\x00S\x00'
next_instr = 0L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x7f392f5b0d50>
def handle_bytecode(self, co_code, next_instr, ec):
try:
> next_instr = self.dispatch_bytecode(co_code, next_instr, ec)
interpreter/pyopcode.py:74:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_simple, ...64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1> at line 3
co_code = 'd\x01d\x02l\x00m\x01}\x01\x01\x00|\x00\xa0\x02d\x03d\x04g\x01d\x05d\x06\xcc\x03}\x02|\x02\xa0\x03d\x07d\x08d\t\x9c\x02\xa1\x01|\x01d\x07d\x08d\t\xaa\x02k\x02s\x1fJ\x00\x82\x01d\x00S\x00'
next_instr = 28L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x7f392f5b0d50>
@jit.unroll_safe
def dispatch_bytecode(self, co_code, next_instr, ec):
while True:
assert next_instr & 1 == 0
self.last_instr = intmask(next_instr)
if jit.we_are_jitted():
_d = self.debugdata
if ec.space.reverse_debugging or (
_d is not None and _d.w_f_trace is not None):
ec.bytecode_only_trace(self)
next_instr = r_uint(self.last_instr)
else:
# Only reload next_instr from last_instr when something that
# can modify it actually ran (trace function or action
# dispatcher). In the common case (no trace, positive ticker)
# next_instr is unchanged and the round-trip is skipped.
_d = self.debugdata
if ec.space.reverse_debugging or (
_d is not None and _d.w_f_trace is not None) or (
not we_are_translated() and
'bytecode_only_trace' in ec.__dict__):
ec.bytecode_only_trace(self)
next_instr = r_uint(self.last_instr)
actionflag = ec.space.actionflag
if actionflag.decrement_ticker(TICK_COUNTER_STEP) < 0:
actionflag.action_dispatcher(ec, self)
next_instr = r_uint(self.last_instr)
opcode = ord(co_code[next_instr])
oparg = ord(co_code[next_instr + 1])
next_instr += 2
# note: the structure of the code here is such that it makes
# (after translation) a big "if/elif" chain, which is then
# turned into computed gotos.
while opcode == opcodedesc.EXTENDED_ARG.index:
opcode = ord(co_code[next_instr])
arg = ord(co_code[next_instr + 1])
if opcode < HAVE_ARGUMENT:
raise BytecodeCorruption
next_instr += 2
oparg = (oparg * 256) | arg
if opcode == opcodedesc.RETURN_VALUE.index:
self.frame_finished_execution = True # for generators
raise Return
elif opcode == opcodedesc.JUMP_ABSOLUTE.index:
return self.jump_absolute(oparg, next_instr, ec)
elif opcode == opcodedesc.RERAISE.index:
return self.RERAISE(oparg, next_instr)
elif opcode == opcodedesc.FOR_ITER.index:
next_instr = self.FOR_ITER(oparg, next_instr)
elif opcode == opcodedesc.JUMP_FORWARD.index:
next_instr = self.JUMP_FORWARD(oparg, next_instr)
elif opcode == opcodedesc.JUMP_IF_FALSE_OR_POP.index:
return self.JUMP_IF_FALSE_OR_POP(oparg, next_instr, ec)
elif opcode == opcodedesc.JUMP_IF_TRUE_OR_POP.index:
return self.JUMP_IF_TRUE_OR_POP(oparg, next_instr, ec)
elif opcode == opcodedesc.POP_JUMP_IF_FALSE.index:
return self.POP_JUMP_IF_FALSE(oparg, next_instr, ec)
elif opcode == opcodedesc.POP_JUMP_IF_TRUE.index:
return self.POP_JUMP_IF_TRUE(oparg, next_instr, ec)
elif opcode == opcodedesc.POP_JUMP_FORWARD_IF_NONE.index:
next_instr = self.POP_JUMP_FORWARD_IF_NONE(oparg, next_instr)
elif opcode == opcodedesc.POP_JUMP_FORWARD_IF_NOT_NONE.index:
next_instr = self.POP_JUMP_FORWARD_IF_NOT_NONE(oparg, next_instr)
elif opcode == opcodedesc.JUMP_IF_NOT_EXC_MATCH.index:
next_instr = self.JUMP_IF_NOT_EXC_MATCH(oparg, next_instr)
elif opcode == opcodedesc.BINARY_ADD.index:
self.BINARY_ADD(oparg, next_instr)
elif opcode == opcodedesc.BINARY_AND.index:
self.BINARY_AND(oparg, next_instr)
elif opcode == opcodedesc.BINARY_FLOOR_DIVIDE.index:
self.BINARY_FLOOR_DIVIDE(oparg, next_instr)
elif opcode == opcodedesc.BINARY_MATRIX_MULTIPLY.index:
self.BINARY_MATRIX_MULTIPLY(oparg, next_instr)
elif opcode == opcodedesc.BINARY_LSHIFT.index:
self.BINARY_LSHIFT(oparg, next_instr)
elif opcode == opcodedesc.BINARY_MODULO.index:
self.BINARY_MODULO(oparg, next_instr)
elif opcode == opcodedesc.BINARY_MULTIPLY.index:
self.BINARY_MULTIPLY(oparg, next_instr)
elif opcode == opcodedesc.BINARY_OR.index:
self.BINARY_OR(oparg, next_instr)
elif opcode == opcodedesc.BINARY_POWER.index:
self.BINARY_POWER(oparg, next_instr)
elif opcode == opcodedesc.BINARY_RSHIFT.index:
self.BINARY_RSHIFT(oparg, next_instr)
elif opcode == opcodedesc.BINARY_SUBSCR.index:
self.BINARY_SUBSCR(oparg, next_instr)
elif opcode == opcodedesc.BINARY_SUBTRACT.index:
self.BINARY_SUBTRACT(oparg, next_instr)
elif opcode == opcodedesc.BINARY_TRUE_DIVIDE.index:
self.BINARY_TRUE_DIVIDE(oparg, next_instr)
elif opcode == opcodedesc.BINARY_XOR.index:
self.BINARY_XOR(oparg, next_instr)
elif opcode == opcodedesc.BUILD_CONST_KEY_MAP.index:
self.BUILD_CONST_KEY_MAP(oparg, next_instr)
elif opcode == opcodedesc.BUILD_LIST.index:
self.BUILD_LIST(oparg, next_instr)
elif opcode == opcodedesc.BUILD_LIST_FROM_ARG.index:
self.BUILD_LIST_FROM_ARG(oparg, next_instr)
elif opcode == opcodedesc.BUILD_MAP.index:
self.BUILD_MAP(oparg, next_instr)
elif opcode == opcodedesc.BUILD_SET.index:
self.BUILD_SET(oparg, next_instr)
elif opcode == opcodedesc.BUILD_SLICE.index:
self.BUILD_SLICE(oparg, next_instr)
elif opcode == opcodedesc.BUILD_TUPLE.index:
self.BUILD_TUPLE(oparg, next_instr)
elif opcode == opcodedesc.CALL_FUNCTION.index:
self.CALL_FUNCTION(oparg, next_instr)
elif opcode == opcodedesc.CALL_FUNCTION_KW.index:
self.CALL_FUNCTION_KW(oparg, next_instr)
elif opcode == opcodedesc.CALL_FUNCTION_EX.index:
self.CALL_FUNCTION_EX(oparg, next_instr)
elif opcode == opcodedesc.CALL_METHOD.index:
self.CALL_METHOD(oparg, next_instr)
elif opcode == opcodedesc.CALL_METHOD_KW.index:
> self.CALL_METHOD_KW(oparg, next_instr)
interpreter/pyopcode.py:315:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_simple, ...64/build/pypy/module/cpyext/test/test_namespaceobject.py:4]", line 1> at line 3
n_arguments = 2, ignored = (28L,)
W_AbstractTupleObject = <class 'pypy.objspace.std.tupleobject.W_AbstractTupleObject'>
w_self = None, space = StdObjSpace
@jit.unroll_safe
def CALL_METHOD_KW(f, n_arguments, *ignored):
from pypy.objspace.std.tupleobject import W_AbstractTupleObject
# opargs contains the arg + kwarg count, excluding the implicit 'self'
w_self = f.peekvalue_maybe_none(n_arguments + 1)
space = f.space
# like in BUILD_CONST_KEY_MAP we can't use space.fixedview because then
# the immutability of the tuple is lost
w_tup_varnames = space.interp_w(W_AbstractTupleObject, f.popvalue())
n_keywords = space.len_w(w_tup_varnames)
keyword_names_w = [None] * n_keywords
keywords_w = [None] * n_keywords
for i in range(n_keywords):
keyword_names_w[i] = w_tup_varnames.getitem(space, i)
w_value = f.peekvalue(n_keywords - 1 - i)
keywords_w[i] = w_value
f.dropvalues(n_keywords)
n_arguments -= n_keywords
n = n_arguments + (w_self is not None)
arguments = f.popvalues(n) # includes w_self if it is not None
if w_self is None:
f.popvalue_maybe_none() # removes w_self, which is None
w_callable = f.popvalue()
args = f.argument_factory(
arguments, keyword_names_w, keywords_w, None, None,
methodcall=w_self is not None, w_function=w_callable)
if f.get_is_being_profiled() and function.is_builtin_code(w_callable):
w_result = f.space.call_args_and_c_profile(f, w_callable, args)
else:
> w_result = f.space.call_args(w_callable, args)
objspace/std/callmethod.py:126:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
space = StdObjSpace, w_obj = <FunctionWithFixedCode import_extension>
args = Arguments([W_UnicodeObject('ns'), W_ListObject(<pypy.objspace.std.listobject.O... '))])], ['prologue'], [W_UnicodeObject('#include pycore_namespace.h')])
def call_args(space, w_obj, args):
# two special cases for performance
if isinstance(w_obj, Function):
> return w_obj.call_args(args)
objspace/descroperation.py:192:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <FunctionWithFixedCode import_extension>
args = Arguments([W_UnicodeObject('ns'), W_ListObject(<pypy.objspace.std.listobject.O... '))])], ['prologue'], [W_UnicodeObject('#include pycore_namespace.h')])
def call_args(self, args):
# delegate activation to code
> w_res = self.getcode().funcrun(self, args)
interpreter/function.py:82:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f392f13c690>
func = <FunctionWithFixedCode import_extension>
args = Arguments([W_UnicodeObject('ns'), W_ListObject(<pypy.objspace.std.listobject.O... '))])], ['prologue'], [W_UnicodeObject('#include pycore_namespace.h')])
def funcrun(self, func, args):
> return BuiltinCode.funcrun_obj(self, func, None, args)
interpreter/gateway.py:869:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f392f13c690>
func = <FunctionWithFixedCode import_extension>, w_obj = None
args = Arguments([W_UnicodeObject('ns'), W_ListObject(<pypy.objspace.std.listobject.O... '))])], ['prologue'], [W_UnicodeObject('#include pycore_namespace.h')])
def funcrun_obj(self, func, w_obj, args):
space = func.space
activation = self.activation
scope_w = args.parse_obj(w_obj, func.qualname, self.sig,
func.defs_w, func.w_kw_defs, self.minargs)
try:
w_result = activation._run(space, scope_w)
except DescrMismatch:
if w_obj is not None:
args = args.prepend(w_obj)
return self._type_unwrap_mismatch(space, args)
except Exception as e:
> self.handle_exception(space, e)
interpreter/gateway.py:884:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f392f13c690>
space = StdObjSpace
e = CompileError(DistutilsExecError("command 'gcc' failed with exit status 1",),)
def handle_exception(self, space, e):
try:
if not we_are_translated():
raise
raise e
except OperationError:
raise
except Exception as e: # general fall-back
from pypy.interpreter import error
> raise error.get_converted_unexpected_exception(space, e)
interpreter/gateway.py:908:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinCode object at 0x7f392f13c690>
func = <FunctionWithFixedCode import_extension>, w_obj = None
args = Arguments([W_UnicodeObject('ns'), W_ListObject(<pypy.objspace.std.listobject.O... '))])], ['prologue'], [W_UnicodeObject('#include pycore_namespace.h')])
def funcrun_obj(self, func, w_obj, args):
space = func.space
activation = self.activation
scope_w = args.parse_obj(w_obj, func.qualname, self.sig,
func.defs_w, func.w_kw_defs, self.minargs)
try:
> w_result = activation._run(space, scope_w)
interpreter/gateway.py:878:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.gateway.BuiltinActivation_UwS_ObjSpace_text_W_Root_text_W_Root_text_bool object at 0x7f392f13c190>
space = StdObjSpace
scope_w = [W_UnicodeObject('ns'), W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f39...odeObject('\n...);\n '))]), W_UnicodeObject('#include pycore_namespace.h'), None, W_UnicodeObject(''), W_BoolObject(False)]
def _run(self, space, scope_w):
> return self.behavior(space, space.text_w(scope_w[0]), scope_w[1], space.text_w(scope_w[2]), scope_w[3], space.text_w(scope_w[4]), space.is_true(scope_w[5]))
<2732-codegen /build_dir/own-linux-x86-64/build/rpython/tool/sourcetools.py:200>:3:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
space = StdObjSpace, modname = 'ns'
w_functions = W_ListObject(<pypy.objspace.std.listobject.ObjectListStrategy object at 0x7f39...odeObject('\n return _PyNamespace_New(args);\n '))])
prologue = '#include pycore_namespace.h', w_include_dirs = None, more_init = ''
PY_SSIZE_T_CLEAN = False
@unwrap_spec(modname='text', prologue='text',
more_init='text', PY_SSIZE_T_CLEAN=bool)
def import_extension(space, modname, w_functions, prologue="",
w_include_dirs=None, more_init="", PY_SSIZE_T_CLEAN=False):
functions = space.unwrap(w_functions)
include_dirs = _unwrap_include_dirs(space, w_include_dirs)
# If there's already a module under this name (file-based or a
# previous inline extension), save it in _module_keepalive before
# it's displaced. This prevents its raw allocations (method-name
# strings, type dicts, etc.) from being freed during a later
# test's leakfinder tracking window.
self._file_module_cache.pop(modname, None)
w_modules = space.sys.get('modules')
try:
w_old = space.getitem(w_modules, space.newtext(modname))
self._module_keepalive.append(w_old)
except OperationError:
pass
w_result = self.sys_info.import_extension(
modname, functions, prologue, include_dirs, more_init,
> PY_SSIZE_T_CLEAN)
module/cpyext/test/test_cpyext.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.cpyext.test.test_cpyext.SpaceCompiler object at 0x7f392f574e50>
modname = 'ns'
functions = [(u'new', u'METH_O', u'\n return _PyNamespace_New(args);\n ')]
prologue = '#include pycore_namespace.h', include_dirs = None, more_init = ''
PY_SSIZE_T_CLEAN = False
def import_extension(self, modname, functions, prologue="",
include_dirs=None, more_init="", PY_SSIZE_T_CLEAN=False):
body = prologue + make_methods(functions, modname)
init = """PyObject *mod = PyModule_Create(&moduledef);
"""
if more_init:
init += """#define INITERROR return NULL
"""
init += more_init
init += "\nreturn mod;"
return self.import_module(
name=modname, init=init, body=body, include_dirs=include_dirs,
> PY_SSIZE_T_CLEAN=PY_SSIZE_T_CLEAN)
tool/cpyext/extbuild.py:98:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.cpyext.test.test_cpyext.SpaceCompiler object at 0x7f392f574e50>
name = 'ns'
init = 'PyObject *mod = PyModule_Create(&moduledef);\n \nreturn mod;'
body = u'#include pycore_namespace.h\n static PyObject* ns_new(PyObject *self, PyObject *args)\n {\n \n ...LL, /* m_doc */\n -1, /* m_size */\n methods, /* m_methods */\n };\n '
filename = None, include_dirs = None, PY_SSIZE_T_CLEAN = False, use_imp = False
def import_module(self, name, init=None, body='', filename=None,
include_dirs=None, PY_SSIZE_T_CLEAN=False, use_imp=False):
"""
init specifies the overall template of the module.
if init is None, the module source will be loaded from a file in this
test directory, give a name given by the filename parameter.
if filename is None, the module name will be used to construct the
filename.
"""
if body or init:
if init is None:
init = "return PyModule_Create(&moduledef);"
if init is not None:
code = make_source(name, init, body, PY_SSIZE_T_CLEAN)
kwds = dict(source_strings=[code])
else:
assert not PY_SSIZE_T_CLEAN
if filename is None:
filename = name
filename = HERE / (filename + ".c")
kwds = dict(source_files=[filename])
mod = self.compile_extension_module(
> name, include_dirs=include_dirs, **kwds)
tool/cpyext/extbuild.py:83:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.module.cpyext.test.test_cpyext.SpaceCompiler object at 0x7f392f574e50>
name = 'ns', include_dirs = []
source_files = [local('/tmp/pytest/usession-py3.12-589/ns-0/source_0.c')]
source_strings = [u'\n \n #include <Python.h>\n\n #include pycore_namespace.h\n static PyObject* ns_new(PyObject *self,...C\n PyInit_ns(void) {\n PyObject *mod = PyModule_Create(&moduledef);\n \nreturn mod;\n }\n ']
def compile_extension_module(self, name, include_dirs=None,
source_files=None, source_strings=None):
"""
Build an extension module and return the filename of the resulting
native code file.
name is the name of the module, possibly including dots if it is a
module inside a package.
"""
include_dirs = include_dirs or []
modname = name.split('.')[-1]
dirname = self.get_builddir(name=modname)
if source_strings:
assert not source_files
files = convert_sources_to_files(source_strings, dirname)
source_files = files
soname = c_compile(source_files, outputfilename=str(dirname / modname),
compile_extra=self.compile_extra,
link_extra=self.link_extra,
include_dirs=self.include_extra + include_dirs,
> libraries=self.extra_libs)
tool/cpyext/extbuild.py:54:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cfilenames = [local('/tmp/pytest/usession-py3.12-589/ns-0/source_0.c')]
outputfilename = local('/tmp/pytest/usession-py3.12-589/ns-0/ns.so')
compile_extra = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC']
link_extra = ['-g']
include_dirs = [local('/tmp/pytest/usession-py3.12-589'), local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include'), loca...dir/own-linux-x86-64/build/pypy/module/cpyext/parse'), local('/build_dir/own-linux-x86-64/build/rpython/translator/c')]
libraries = [], library_dirs = []
def c_compile(cfilenames, outputfilename,
compile_extra=None, link_extra=None,
include_dirs=None, libraries=None, library_dirs=None):
compile_extra = compile_extra or []
link_extra = link_extra or []
include_dirs = include_dirs or []
libraries = libraries or []
library_dirs = library_dirs or []
if sys.platform == 'win32':
link_extra = link_extra + ['/DEBUG'] # generate .pdb file
if sys.platform == 'darwin':
# support Fink & Darwinports
for s in ('/sw/', '/opt/local/'):
if (s + 'include' not in include_dirs
and os.path.exists(s + 'include')):
include_dirs.append(s + 'include')
if s + 'lib' not in library_dirs and os.path.exists(s + 'lib'):
library_dirs.append(s + 'lib')
outputfilename = py.path.local(outputfilename).new(ext=so_ext)
saved_environ = os.environ.copy()
try:
_build(
cfilenames, outputfilename,
compile_extra, link_extra,
> include_dirs, libraries, library_dirs)
tool/cpyext/extbuild.py:202:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cfilenames = [local('/tmp/pytest/usession-py3.12-589/ns-0/source_0.c')]
outputfilename = local('/tmp/pytest/usession-py3.12-589/ns-0/ns.so')
compile_extra = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC']
link_extra = ['-g']
include_dirs = [local('/tmp/pytest/usession-py3.12-589'), local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include'), loca...dir/own-linux-x86-64/build/pypy/module/cpyext/parse'), local('/build_dir/own-linux-x86-64/build/rpython/translator/c')]
libraries = [], library_dirs = []
def _build(cfilenames, outputfilename, compile_extra, link_extra,
include_dirs, libraries, library_dirs):
try:
# monkeypatch distutils for some versions of msvc compiler
import setuptools
except ImportError:
# XXX if this fails and is required,
# we must call pypy -mensurepip after translation
pass
from distutils.ccompiler import new_compiler
from distutils import sysconfig
# XXX for Darwin running old versions of CPython 2.7.x
sysconfig.get_config_vars()
compiler = new_compiler(force=1)
sysconfig.customize_compiler(compiler) # XXX
objects = []
for cfile in cfilenames:
cfile = py.path.local(cfile)
old = cfile.dirpath().chdir()
try:
res = compiler.compile([cfile.basename],
> include_dirs=include_dirs, extra_preargs=compile_extra)
tool/cpyext/extbuild.py:234:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <distutils.unixccompiler.UnixCCompiler instance at 0x7f392efd0e60>
sources = ['source_0.c'], output_dir = None, macros = []
include_dirs = [local('/tmp/pytest/usession-py3.12-589'), local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include'), loca...dir/own-linux-x86-64/build/pypy/module/cpyext/parse'), local('/build_dir/own-linux-x86-64/build/rpython/translator/c')]
debug = 0
extra_preargs = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC']
extra_postargs = [], depends = None
def compile(self, sources, output_dir=None, macros=None,
include_dirs=None, debug=0, extra_preargs=None,
extra_postargs=None, depends=None):
"""Compile one or more source files.
'sources' must be a list of filenames, most likely C/C++
files, but in reality anything that can be handled by a
particular compiler and compiler class (eg. MSVCCompiler can
handle resource files in 'sources'). Return a list of object
filenames, one per source filename in 'sources'. Depending on
the implementation, not all source files will necessarily be
compiled, but all corresponding object filenames will be
returned.
If 'output_dir' is given, object files will be put under it, while
retaining their original path component. That is, "foo/bar.c"
normally compiles to "foo/bar.o" (for a Unix implementation); if
'output_dir' is "build", then it would compile to
"build/foo/bar.o".
'macros', if given, must be a list of macro definitions. A macro
definition is either a (name, value) 2-tuple or a (name,) 1-tuple.
The former defines a macro; if the value is None, the macro is
defined without an explicit value. The 1-tuple case undefines a
macro. Later definitions/redefinitions/ undefinitions take
precedence.
'include_dirs', if given, must be a list of strings, the
directories to add to the default include file search path for this
compilation only.
'debug' is a boolean; if true, the compiler will be instructed to
output debug symbols in (or alongside) the object file(s).
'extra_preargs' and 'extra_postargs' are implementation- dependent.
On platforms that have the notion of a command-line (e.g. Unix,
DOS/Windows), they are most likely lists of strings: extra
command-line arguments to prepand/append to the compiler command
line. On other platforms, consult the implementation class
documentation. In any event, they are intended as an escape hatch
for those occasions when the abstract compiler framework doesn't
cut the mustard.
'depends', if given, is a list of filenames that all targets
depend on. If a source file is older than any file in
depends, then the source file will be recompiled. This
supports dependency tracking, but only at a coarse
granularity.
Raises CompileError on failure.
"""
# A concrete compiler class can either override this method
# entirely or implement _compile().
macros, objects, extra_postargs, pp_opts, build = \
self._setup_compile(output_dir, macros, include_dirs, sources,
depends, extra_postargs)
cc_args = self._get_cc_args(pp_opts, debug, extra_preargs)
for obj in objects:
try:
src, ext = build[obj]
except KeyError:
continue
> self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
/usr/local/lib/python2.7/distutils/ccompiler.py:574:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <distutils.unixccompiler.UnixCCompiler instance at 0x7f392efd0e60>
obj = 'source_0.o', src = 'source_0.c', ext = '.c'
cc_args = ['-Werror', '-g', '-O0', '-Wp,-U_FORTIFY_SOURCE', '-fPIC', '-I/tmp/pytest/usession-py3.12-589', ...]
extra_postargs = []
pp_opts = ['-I/tmp/pytest/usession-py3.12-589', '-I/build_dir/own-linux-x86-64/build/pypy/module/cpyext/include', '-I/build_dir/own-linux-x86-64/build/pypy/module/cpyext/parse', '-I/build_dir/own-linux-x86-64/build/rpython/translator/c']
def _compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts):
compiler_so = self.compiler_so
if sys.platform == 'darwin':
compiler_so = _osx_support.compiler_fixup(compiler_so,
cc_args + extra_postargs)
try:
self.spawn(compiler_so + cc_args + [src, '-o', obj] +
extra_postargs)
except DistutilsExecError, msg:
> raise CompileError, msg
E CompileError: command 'gcc' failed with exit status 1
/usr/local/lib/python2.7/distutils/unixccompiler.py:124: CompileError
----------------------------- Captured stderr call -----------------------------
source_0.c:5:14: error: #include expects "FILENAME" or <FILENAME>\n 5 | #include pycore_namespace.h\n | ^~~~~~~~~~~~~~~~\nsource_0.c: In function \u2018ns_new\u2019:\nsource_0.c:9:24: error: implicit declaration of function \u2018_PyNamespace_New\u2019 [-Werror=implicit-function-declaration]\n 9 | return _PyNamespace_New(args);\n | ^~~~~~~~~~~~~~~~\nsource_0.c:9:24: error: returning \u2018int\u2019 from a function with return type \u2018PyObject *\u2019 {aka \u2018struct _object *\u2019} makes pointer from integer without a cast [-Werror=int-conversion]\n 9 | return _PyNamespace_New(args);\n | ^~~~~~~~~~~~~~~~~~~~~~\ncc1: all warnings being treated as errors
=========================== short test summary info ============================
FAIL module/cpyext/test/test_namespaceobject.py::AppTestNamespace::()::test_simple
========================== 1 failed in 38.33 seconds ===========================
++ 20:56:42 starting module/cpyext/test/test_pyerrors.py [84 started in total]
__ module/cpyext/test/test_module.py [81 done in total, somefailed=True] ______
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 25 items
module/cpyext/test/test_module.py ............FFFFFFFFFFFF.
=================================== FAILURES ===================================
____________________ AppTestMultiPhase.test__testmultiphase ____________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test__testmultiphase(self):
import sys
from importlib import machinery, util
> module = self.import_module(name=self.name, use_imp=True)
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:262]:4:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-0/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03de090>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03def90>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03de090>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03de090>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-0/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
_____________________ AppTestMultiPhase.test_functionality _____________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_functionality(self):
import types
> module = self.import_module(name=self.name, use_imp=True)
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:276]:3:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-1/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03bb090>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03bb890>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03bb090>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03bb090>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-1/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
________________________ AppTestMultiPhase.test_reload _________________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_reload(self):
import importlib
> module = self.import_module(name=self.name, use_imp=True)
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:293]:3:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-2/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03deed0>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03de890>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03deed0>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03deed0>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-2/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
___________________ AppTestMultiPhase.test_try_registration ____________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_try_registration(self):
> module = self.import_module(name=self.name, use_imp=True)
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:301]:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-3/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03bfb90>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03bf150>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03bfb90>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03bfb90>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-3/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
______________________ AppTestMultiPhase.test_bad_modules ______________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_bad_modules(self):
# XXX: not a very good test, since most internal issues in cpyext
# cause SystemErrors.
> module = self.import_module(name=self.name, use_imp=True)
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:322]:4:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-4/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03de050>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03de4d0>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03de050>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03de050>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-4/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
______________________ AppTestMultiPhase.test_export_null ______________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_export_null(self):
> excinfo = raises(SystemError, self.load_from_name, 'export_null')
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:342]:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
name = W_UnicodeObject('export_null')
origin = <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f71d4554790>
use_prefix = W_BoolObject(True)
> ???
?:5:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-5/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d034ec50>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0343350>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d034ec50>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d034ec50>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-5/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
_____________________ AppTestMultiPhase.test_export_uninit _____________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_export_uninit(self):
> excinfo = raises(SystemError, self.load_from_name, 'export_uninitialized')
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:347]:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
name = W_UnicodeObject('export_uninitialized')
origin = <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f71d4554790>
use_prefix = W_BoolObject(True)
> ???
?:5:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-6/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d035fc10>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d035fe10>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d035fc10>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d035fc10>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-6/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
_____________________ AppTestMultiPhase.test_export_raise ______________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_export_raise(self):
> excinfo = raises(SystemError, self.load_from_name, 'export_raise')
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:352]:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
name = W_UnicodeObject('export_raise')
origin = <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f71d4554790>
use_prefix = W_BoolObject(True)
> ???
?:5:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-7/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d033bcd0>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a22dd0>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d033bcd0>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d033bcd0>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-7/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
___________________ AppTestMultiPhase.test_export_unreported ___________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_export_unreported(self):
> excinfo = raises(SystemError, self.load_from_name, 'export_unreported_exception')
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:356]:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
name = W_UnicodeObject('export_unreported_exception')
origin = <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f71d4554790>
use_prefix = W_BoolObject(True)
> ???
?:5:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-8/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d033ba10>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0343cd0>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d033ba10>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d033ba10>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-8/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
__________________ AppTestMultiPhase.test_unloadable_nonascii __________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_unloadable_nonascii(self):
name = u"fo\xf3"
excinfo = raises(ImportError, self.load_from_name, name)
> assert excinfo.value.name == '_testmultiphase_' + name
E (application-level) AssertionError
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:361]:4: AssertionError
_______________________ AppTestMultiPhase.test_nonascii ________________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_nonascii(self):
> module = self.import_module(name=self.name, use_imp=True)
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:366]:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-10/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0341390>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0341510>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0341390>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0341390>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-10/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
______________________ AppTestMultiPhase.test_get_module _______________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
def test_get_module(self):
> module = self.load_from_name("meth_state_access")
[/build_dir/own-linux-x86-64/build/pypy/module/cpyext/test/test_module.py:379]:2:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d0a40590>
name = W_UnicodeObject('meth_state_access')
origin = <pypy.objspace.std.noneobject.W_NoneObject object at 0x7f71d4554790>
use_prefix = W_BoolObject(True)
> ???
?:5:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
name = W_UnicodeObject('_testmultiphase')
path = W_UnicodeObject('/tmp/pytest/usession-py3.12-588/_testmultiphase-11/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so')
> ???
?:6:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03f7790>
> ???
<frozen importlib._bootstrap>:813:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03f71d0>
spec = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03f7790>
> ???
<frozen importlib._bootstrap_external>:1293:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
f = <BuiltinFunction create_dynamic>
args = W_TupleObject(<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f71d03f7790>)
kwds = W_DictObject(<pypy.objspace.std.kwargsdict.EmptyKwargsDictStrategy object at 0x7f71d265d050>)
> ???
E (application-level) ImportError: /tmp/pytest/usession-py3.12-588/_testmultiphase-11/_testmultiphase.pypy312-pp73i-x86_64-linux-gnu.so: undefined symbol: _cpyexttestNamespace_New
<frozen importlib._bootstrap>:488: ImportError
=========================== short test summary info ============================
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test__testmultiphase
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_functionality
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_reload
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_try_registration
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_bad_modules
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_export_null
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_export_uninit
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_export_raise
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_export_unreported
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_unloadable_nonascii
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_nonascii
FAIL module/cpyext/test/test_module.py::AppTestMultiPhase::()::test_get_module
==================== 12 failed, 13 passed in 89.11 seconds =====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f71d0ba4fd0>> ignored
++ 20:56:47 starting module/cpyext/test/test_pyfile.py [85 started in total]
__ module/cpyext/test/test_number.py [82 done in total, somefailed=False] _____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 7 items
module/cpyext/test/test_number.py .......
========================== 7 passed in 54.24 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f147c1cd810>> ignored
++ 20:57:25 starting module/cpyext/test/test_pymem.py [86 started in total]
__ module/cpyext/test/test_pyfile.py [83 done in total, somefailed=False] _____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 7 items
module/cpyext/test/test_pyfile.py ...x...
===================== 6 passed, 1 xfailed in 52.06 seconds =====================
++ 20:57:52 starting module/cpyext/test/test_pysignals.py [87 started in total]
__ module/cpyext/test/test_pymem.py [84 done in total, somefailed=False] ______
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_pymem.py .
========================== 1 passed in 39.56 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f725cd6b810>> ignored
++ 20:58:23 starting module/cpyext/test/test_pystate.py [88 started in total]
__ module/cpyext/test/test_object.py [85 done in total, somefailed=False] _____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 39 items
module/cpyext/test/test_object.py ......................s................
==================== 38 passed, 1 skipped in 136.36 seconds ====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7ff0793b1850>> ignored
++ 20:58:51 starting module/cpyext/test/test_pystrhex.py [89 started in total]
__ module/cpyext/test/test_pysignals.py [86 done in total, somefailed=False] __
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_pysignals.py .
========================== 1 passed in 39.98 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fd908087e50>> ignored
++ 20:58:51 starting module/cpyext/test/test_pystrtod.py [90 started in total]
__ module/cpyext/test/test_pyerrors.py [87 done in total, somefailed=False] ___
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 33 items
module/cpyext/test/test_pyerrors.py ........s.....s........s...s.....
==================== 29 passed, 4 skipped in 165.50 seconds ====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f7b16e24a50>> ignored
++ 20:59:43 starting module/cpyext/test/test_sequence.py [91 started in total]
__ module/cpyext/test/test_pystate.py [88 done in total, somefailed=False] ____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 14 items
module/cpyext/test/test_pystate.py ....x.....sx..
=============== 11 passed, 1 skipped, 2 xfailed in 62.39 seconds ===============
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fa89018e950>> ignored
++ 20:59:43 starting module/cpyext/test/test_setobject.py [92 started in total]
__ module/cpyext/test/test_pystrhex.py [89 done in total, somefailed=False] ___
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_pystrhex.py .
========================== 1 passed in 42.30 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fa64aab0e10>> ignored
++ 20:59:49 starting module/cpyext/test/test_sliceobject.py [93 started in total]
__ module/cpyext/test/test_pystrtod.py [90 done in total, somefailed=False] ___
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 20 items
module/cpyext/test/test_pystrtod.py ....................
========================== 20 passed in 77.20 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7feb9cd48950>> ignored
++ 21:00:25 starting module/cpyext/test/test_structseq.py [94 started in total]
__ module/cpyext/test/test_setobject.py [91 done in total, somefailed=False] __
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 9 items
module/cpyext/test/test_setobject.py .........
========================== 9 passed in 59.33 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f3f6709cf50>> ignored
++ 21:00:56 starting module/cpyext/test/test_sysmodule.py [95 started in total]
__ module/cpyext/test/test_sliceobject.py [92 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 8 items
module/cpyext/test/test_sliceobject.py ........
========================== 8 passed in 58.26 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f87c04dd810>> ignored
++ 21:01:02 starting module/cpyext/test/test_thread.py [96 started in total]
__ module/cpyext/test/test_structseq.py [93 done in total, somefailed=False] __
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_structseq.py .
========================== 1 passed in 42.07 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7ff2c6833f50>> ignored
++ 21:01:24 starting module/cpyext/test/test_traceback.py [97 started in total]
__ module/cpyext/test/test_sequence.py [94 done in total, somefailed=False] ___
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 23 items
module/cpyext/test/test_sequence.py .......................
========================== 23 passed in 90.84 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f0b4ebc8a10>> ignored
++ 21:01:32 starting module/cpyext/test/test_translate.py [98 started in total]
__ module/cpyext/test/test_translate.py [95 done in total, somefailed=False] __
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_translate.py .
=========================== 1 passed in 2.46 seconds ===========================
++ 21:01:49 starting module/cpyext/test/test_tupleobject.py [99 started in total]
__ module/cpyext/test/test_sysmodule.py [96 done in total, somefailed=False] __
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/cpyext/test/test_sysmodule.py ...
========================== 3 passed in 48.39 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f1364c55610>> ignored
++ 21:02:02 starting module/cpyext/test/test_typeobject.py [100 started in total]
__ module/cpyext/test/test_traceback.py [97 done in total, somefailed=False] __
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/cpyext/test/test_traceback.py .
========================== 1 passed in 29.52 seconds ===========================
++ 21:02:08 starting module/cpyext/test/test_unicodeobject.py [101 started in total]
__ module/cpyext/test/test_thread.py [98 done in total, somefailed=False] _____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 6 items
module/cpyext/test/test_thread.py x...x.
==================== 4 passed, 2 xfailed in 106.48 seconds =====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f9a2be45f90>> ignored
++ 21:03:05 starting module/cpyext/test/test_userslots.py [102 started in total]
__ module/cpyext/test/test_tupleobject.py [99 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 10 items
module/cpyext/test/test_tupleobject.py ..........
========================== 10 passed in 65.16 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f2b62f907d0>> ignored
++ 21:03:09 starting module/cpyext/test/test_version.py [103 started in total]
__ module/cpyext/test/test_version.py [100 done in total, somefailed=True] ____
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/cpyext/test/test_version.py F..
=================================== FAILURES ===================================
_____________________________ test_pragma_version ______________________________
def test_pragma_version():
from pypy.module.sys.version import CPYTHON_VERSION
rootdir = py.path.local(__file__).join('..', '..')
pyconfig_h = rootdir.join('PC', 'pyconfig.h')
version = '%d%d' % (CPYTHON_VERSION[0], CPYTHON_VERSION[1])
pragma = 'pragma comment(lib,"python%s.lib")' % version
> assert pragma in pyconfig_h.read()
E assert 'pragma comment(lib,"python312.lib")' in '#ifndef Py_CONFIG_H\n#define Py_CONFIG_H\n\n/* pyconfig.h. NOT Generated automatically by configure.\n\nThis is a ma...fine HAVE_LONG_LONG 1\n#define PY_FORMAT_LONG_LONG "ll"\n#define PY_FORMAT_SIZE_T "z"\n\n\n#endif /* !Py_CONFIG_H */\n'
E + where '#ifndef Py_CONFIG_H\n#define Py_CONFIG_H\n\n/* pyconfig.h. NOT Generated automatically by configure.\n\nThis is a ma...fine HAVE_LONG_LONG 1\n#define PY_FORMAT_LONG_LONG "ll"\n#define PY_FORMAT_SIZE_T "z"\n\n\n#endif /* !Py_CONFIG_H */\n' = <bound method LocalPath.read of local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/PC/pyconfig.h')>()
E + where <bound method LocalPath.read of local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/PC/pyconfig.h')> = local('/build_dir/own-linux-x86-64/build/pypy/module/cpyext/PC/pyconfig.h').read
module/cpyext/test/test_version.py:14: AssertionError
=========================== short test summary info ============================
FAIL module/cpyext/test/test_version.py::test_pragma_version
===================== 1 failed, 2 passed in 41.33 seconds ======================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f3be5533890>> ignored
++ 21:04:08 starting module/cpyext/test/test_weakref.py [104 started in total]
__ module/cpyext/test/test_userslots.py [101 done in total, somefailed=False] _
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 7 items
module/cpyext/test/test_userslots.py ......called power
.
========================== 7 passed in 66.60 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f1928997e10>> ignored
++ 21:04:25 starting module/crypt/test [105 started in total]
__ module/cpyext/test/test_weakref.py [102 done in total, somefailed=False] ___
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 5 items
module/cpyext/test/test_weakref.py .....
========================== 5 passed in 61.63 seconds ===========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f539a596fd0>> ignored
++ 21:05:28 starting module/errno/test [106 started in total]
__ module/crypt/test [103 done in total, somefailed=False] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/crypt/test/test_crypt.py .
========================== 1 passed in 58.18 seconds ===========================
++ 21:05:31 starting module/exceptions/test [107 started in total]
__ module/errno/test [104 done in total, somefailed=False] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/errno/test/test_errno.py ...
========================== 3 passed in 11.57 seconds ===========================
++ 21:05:40 starting module/faulthandler/test [108 started in total]
__ module/faulthandler/test [105 done in total, somefailed=False] _____________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items
module/faulthandler/test/test_faulthander.py ..
module/faulthandler/test/test_ztranslation.py .
========================== 3 passed in 21.61 seconds ===========================
++ 21:06:04 starting module/fcntl/test [109 started in total]
__ module/fcntl/test [106 done in total, somefailed=False] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 8 items
module/fcntl/test/test_fcntl.py ........
========================== 8 passed in 35.00 seconds ===========================
++ 21:06:42 starting module/gc/test [110 started in total]
__ module/exceptions/test [107 done in total, somefailed=False] _______________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 98 items
module/exceptions/test/apptest_exceptions.py ..................................................
module/exceptions/test/test_exc.py ........s.......................................
==================== 97 passed, 1 skipped in 70.43 seconds =====================
++ 21:06:44 starting module/imp/test [111 started in total]
__ module/cpyext/test/test_unicodeobject.py [108 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 76 items
module/cpyext/test/test_unicodeobject.py .....................................................ss.....................
==================== 74 passed, 2 skipped in 294.46 seconds ====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fbf94790f50>> ignored
++ 21:07:19 starting module/itertools/test [112 started in total]
__ module/gc/test [109 done in total, somefailed=False] _______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 30 items
module/gc/test/test_app_referents.py ....
module/gc/test/test_gc.py .....x...
module/gc/test/test_hook.py ........
module/gc/test/test_referents.py ........
module/gc/test/test_ztranslation.py .
==================== 29 passed, 1 xfailed in 38.78 seconds =====================
++ 21:07:26 starting module/marshal/test [113 started in total]
__ module/marshal/test [110 done in total, somefailed=False] __________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 51 items
module/marshal/test/apptest_marshal.py ...............................................
module/marshal/test/test_marshal.py .
module/marshal/test/test_marshalimpl.py ...
========================== 51 passed in 87.47 seconds ==========================
++ 21:09:00 starting module/math/test [114 started in total]
__ module/itertools/test [111 done in total, somefailed=False] ________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 92 items
module/itertools/test/apptest_itertools.py ....
module/itertools/test/test_itertools.py .......................................................................................
module/itertools/test/test_ztranslation.py .
========================= 92 passed in 134.49 seconds ==========================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f8ef425c490>> ignored
++ 21:09:36 starting module/micronumpy/test [115 started in total]
__ module/cpyext/test/test_typeobject.py [112 done in total, somefailed=False]
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 95 items
module/cpyext/test/test_typeobject.py ...................s......................................................s.....s..............
==================== 92 passed, 3 skipped in 440.32 seconds ====================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7f0980158f50>> ignored
++ 21:09:37 starting module/mmap/test [116 started in total]
__ module/micronumpy/test [113 done in total, somefailed=False] _______________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 0 items
========================= no tests ran in 0.00 seconds =========================
++ 21:09:37 starting module/operator/test [117 started in total]
__ module/mmap/test [114 done in total, somefailed=False] _____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 46 items
module/mmap/test/test_mmap.py ......................s.......................
==================== 45 passed, 1 skipped in 41.35 seconds =====================
++ 21:10:21 starting module/posix/test [118 started in total]
__ module/operator/test [115 done in total, somefailed=False] _________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 28 items
module/operator/test/test_operator.py ........................
module/operator/test/test_tscmp.py ....
========================== 28 passed in 48.91 seconds ==========================
++ 21:10:28 starting module/pwd/test [119 started in total]
__ module/imp/test [116 done in total, somefailed=True] _______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 109 items
module/imp/test/test_app.py ................
module/imp/test/test_import.py ..........................s.................................................s.F.............F
=================================== FAILURES ===================================
_____________________ TestPycStuff.test_pyc_magic_changes2 _____________________
self = <pypy.module.imp.test.test_import.TestPycStuff instance at 0x7f4b6b533a00>
def test_pyc_magic_changes2(self):
from pypy.tool.lib_pypy import LIB_PYTHON
from pypy.interpreter.pycode import default_magic
from hashlib import sha256
opcode_path = LIB_PYTHON.join('opcode.py')
h = sha256()
# very simple test: hard-code the hash of lib-python/3/opcode.py and the
# default magic. if you change stdlib_opcode, please update the hash
# below, as well as incrementing the magic number in pycode.py
with opcode_path.open("rb") as f:
h.update(f.read())
> assert h.hexdigest() == '4082bd96b9aacf9672a2c5196a6a3b6caf5e9de0071fe4e43aa642b0860381a4'
E assert 'f9ced71af192...0a3125e21374c' == '4082bd96b9aac...642b0860381a4'
E - f9ced71af192e7e041935ca361eff6fa412d0ad84838d1c22530a3125e21374c
E + 4082bd96b9aacf9672a2c5196a6a3b6caf5e9de0071fe4e43aa642b0860381a4
module/imp/test/test_import.py:983: AssertionError
_______________________ AppTestImportlibMagic.test_magic _______________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7f4b69815fd0>
def test_magic(self):
from importlib import _bootstrap_external
> assert _bootstrap_external.MAGIC_NUMBER == self.magic
E (application-level) AssertionError
[/build_dir/own-linux-x86-64/build/pypy/module/imp/test/test_import.py:1232]:3: AssertionError
=========================== short test summary info ============================
FAIL module/imp/test/test_import.py::TestPycStuff::()::test_pyc_magic_changes2
FAIL module/imp/test/test_import.py::AppTestImportlibMagic::()::test_magic
============== 2 failed, 105 passed, 2 skipped in 253.07 seconds ===============
++ 21:11:04 starting module/pyexpat/test [120 started in total]
__ module/pwd/test [117 done in total, somefailed=False] ______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 5 items
module/pwd/test/test_pwd.py ....
module/pwd/test/test_ztranslation.py .
========================== 5 passed in 51.06 seconds ===========================
++ 21:11:27 starting module/pypyjit/test [121 started in total]
__ module/pyexpat/test [118 done in total, somefailed=False] __________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 21 items
module/pyexpat/test/apptest_pyexpat.py ...
module/pyexpat/test/test_build.py .
module/pyexpat/test/test_parser.py .................
========================== 21 passed in 39.84 seconds ==========================
++ 21:11:48 starting module/select/test [122 started in total]
__ module/pypyjit/test [119 done in total, somefailed=False] __________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 29 items
module/pypyjit/test/test_jit_hook.py ........s
module/pypyjit/test/test_jit_not_in_trace.py ..
module/pypyjit/test/test_jit_setup.py ....
module/pypyjit/test/test_policy.py ............
module/pypyjit/test/test_pyframe.py .
module/pypyjit/test/test_ztranslation.py .
==================== 28 passed, 1 skipped in 69.66 seconds =====================
++ 21:12:39 starting module/signal/test [123 started in total]
__ module/select/test [120 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 46 items
module/select/test/test_epoll.py ..........
module/select/test/test_kqueue.py ssssss
module/select/test/test_select.py ............................
module/select/test/test_select_signal.py .
module/select/test/test_ztranslation.py .
==================== 40 passed, 6 skipped in 88.38 seconds =====================
++ 21:13:23 starting module/struct/test [124 started in total]
__ module/posix/test [121 done in total, somefailed=False] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 177 items / 2 skipped
module/posix/test/apptest_posix.py ....
module/posix/test/test_interp_posix.py ....
module/posix/test/test_posix2.py ......................................................................................s......s.................s..ss.........ssss........ssss........
module/posix/test/test_scandir.py ....................
=================== 164 passed, 15 skipped in 199.13 seconds ===================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fcc40b65850>> ignored
++ 21:13:43 starting module/sys/test [125 started in total]
__ module/struct/test [122 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 52 items
module/struct/test/apptest_struct.py ..........................................
module/struct/test/apptest_structbuffer.py ..
module/struct/test/test_struct.py .......
module/struct/test/test_ztranslation.py .
========================== 52 passed in 51.97 seconds ==========================
++ 21:14:21 starting module/termios/test [126 started in total]
__ module/sys/test [123 done in total, somefailed=True] _______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 101 items
module/sys/test/apptest_audit.py ..........
module/sys/test/apptest_initpath.py .
module/sys/test/apptest_sys.py .
module/sys/test/test_encoding.py ..
module/sys/test/test_initpath.py ..........
module/sys/test/test_sysmodule.py .............................................s......F.................
module/sys/test/test_version.py .......
=================================== FAILURES ===================================
_ AppTestSysModulePortedFromCPython.test_reload_doesnt_override_sys_executable _
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7fc59a15bb50>
def test_reload_doesnt_override_sys_executable(self):
import sys
> from imp import reload
E (application-level) ModuleNotFoundError: No module named 'imp'
[/build_dir/own-linux-x86-64/build/pypy/module/sys/test/test_sysmodule.py:791]:3: ModuleNotFoundError
=========================== short test summary info ============================
FAIL module/sys/test/test_sysmodule.py::AppTestSysModulePortedFromCPython::()::test_reload_doesnt_override_sys_executable
=============== 1 failed, 99 passed, 1 skipped in 69.86 seconds ================
Exception AttributeError: '__exit__' in <bound method Lock.__del__ of <rpython.rlib.rthread.Lock object at 0x7fc599c1ee50>> ignored
++ 21:14:56 starting module/test_lib_pypy [127 started in total]
__ module/signal/test [124 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 27 items
module/signal/test/apptest_signal.py .
module/signal/test/test_signal.py ..........................
========================= 27 passed in 169.01 seconds ==========================
++ 21:15:33 starting module/thread/test [128 started in total]
__ module/termios/test [125 done in total, somefailed=False] __________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 10 items
module/termios/test/test_termios.py ..........
========================= 10 passed in 163.26 seconds ==========================
++ 21:17:08 starting module/time/test [129 started in total]
__ module/test_lib_pypy [126 done in total, somefailed=False] _________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 206 items / 7 skipped
module/test_lib_pypy/test_code_module.py ...
module/test_lib_pypy/test_collections.py .....................
module/test_lib_pypy/test_marshal_extra.py .......................................................................................................................................................
module/test_lib_pypy/test_md5_extra.py ......
module/test_lib_pypy/test_pickle_extra.py s
module/test_lib_pypy/test_sha_extra.py .....
module/test_lib_pypy/test_site_extra.py .
module/test_lib_pypy/test_structseq.py ...........
module/test_lib_pypy/test_tputil.py ..s....
=================== 204 passed, 9 skipped in 162.47 seconds ====================
++ 21:17:43 starting module/token/test [130 started in total]
__ module/token/test [127 done in total, somefailed=False] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 8 items
module/token/test/apptest_token.py ........
========================== 8 passed in 11.10 seconds ===========================
++ 21:17:55 starting module/unicodedata/test [131 started in total]
__ module/time/test [128 done in total, somefailed=False] _____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 43 items
module/time/test/apptest_time.py ........................s................
module/time/test/test_timeutils.py .
module/time/test/test_ztranslation.py .
==================== 42 passed, 1 skipped in 134.34 seconds ====================
++ 21:19:25 starting module/zipimport/test [132 started in total]
__ module/unicodedata/test [129 done in total, somefailed=False] ______________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 35 items
module/unicodedata/test/test_hyp.py ................
module/unicodedata/test/test_unicodedata.py ...................
========================== 35 passed in 88.86 seconds ==========================
++ 21:19:29 starting module/zlib/test [133 started in total]
__ module/thread/test [130 done in total, somefailed=True] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 56 items
module/thread/test/test_fork.py s..F
module/thread/test/test_gil.py ....
module/thread/test/test_import_lock.py F.FF.
module/thread/test/test_local.py .......
module/thread/test/test_lock.py .....................
module/thread/test/test_thread.py ...............
=================================== FAILURES ===================================
___________________ AppTestFork.test_nested_import_lock_fork ___________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7fd1fcc3f490>
def test_nested_import_lock_fork(self):
"""Check fork() in main thread works while the main thread is doing an import"""
# Issue 9573: this used to trigger RuntimeError in the child process
> import imp
E (application-level) ModuleNotFoundError: No module named 'imp'
[/build_dir/own-linux-x86-64/build/pypy/module/thread/test/test_fork.py:93]:4: ModuleNotFoundError
________________________ AppTestThread.test_import_lock ________________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7fd1ea4c8f90>
def test_import_lock(self):
# XXX XXX XXX this test fails if run together with all other tests
# of this directory, but not when run alone
> import _thread, imp
E (application-level) ModuleNotFoundError: No module named 'imp'
[/build_dir/own-linux-x86-64/build/pypy/module/thread/test/test_import_lock.py:12]:4: ModuleNotFoundError
______________________ AppTestThread.test_manual_locking _______________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7fd1ea4c8f90>
def test_manual_locking(self):
> import _thread, os, imp, time, sys
E (application-level) ModuleNotFoundError: No module named 'imp'
[/build_dir/own-linux-x86-64/build/pypy/module/thread/test/test_import_lock.py:33]:2: ModuleNotFoundError
________________ AppTestThread.test_lock_held_by_another_thread ________________
self = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x7fd1ea4c8f90>
def test_lock_held_by_another_thread(self):
> import _thread as thread, imp
E (application-level) ModuleNotFoundError: No module named 'imp'
[/build_dir/own-linux-x86-64/build/pypy/module/thread/test/test_import_lock.py:65]:2: ModuleNotFoundError
=========================== short test summary info ============================
FAIL module/thread/test/test_fork.py::AppTestFork::()::test_nested_import_lock_fork
FAIL module/thread/test/test_import_lock.py::AppTestThread::()::test_import_lock
FAIL module/thread/test/test_import_lock.py::AppTestThread::()::test_manual_locking
FAIL module/thread/test/test_import_lock.py::AppTestThread::()::test_lock_held_by_another_thread
=============== 4 failed, 51 passed, 1 skipped in 236.35 seconds ===============
++ 21:19:32 starting objspace/fake/test [134 started in total]
__ module/zipimport/test [131 done in total, somefailed=False] ________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
module/zipimport/test/apptest_zipimport.py .
========================== 1 passed in 10.89 seconds ===========================
++ 21:19:38 starting objspace/std/test [135 started in total]
__ objspace/fake/test [132 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 21 items
objspace/fake/test/test_checkmodule.py ........
objspace/fake/test/test_objspace.py .............
========================== 21 passed in 19.34 seconds ==========================
++ 21:19:52 starting objspace/test [136 started in total]
__ objspace/test [133 done in total, somefailed=False] ________________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 75 items
objspace/test/apptest_binop_overriding.py .
objspace/test/apptest_descriptor.py ....s....
objspace/test/apptest_descroperation.py ................s......................................
objspace/test/test_descroperation.py ..........
==================== 73 passed, 2 skipped in 24.53 seconds =====================
++ 21:20:20 starting sandbox/test [137 started in total]
__ sandbox/test [134 done in total, somefailed=False] _________________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 1 items
sandbox/test/test_pypy_interact.py .
========================== 1 passed in 13.65 seconds ===========================
++ 21:20:34 starting tool/bench/test [138 started in total]
__ tool/bench/test [135 done in total, somefailed=False] ______________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 3 items / 1 skipped
tool/bench/test/test_pypyresult.py ...
===================== 3 passed, 1 skipped in 0.86 seconds ======================
++ 21:20:36 starting tool/memusage/test [139 started in total]
__ tool/memusage/test [136 done in total, somefailed=False] ___________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 5 items
tool/memusage/test/test_log2gnumeric.py .....
=========================== 5 passed in 0.85 seconds ===========================
++ 21:20:38 starting tool/pytest/fake_pytest/test [140 started in total]
__ tool/pytest/fake_pytest/test [137 done in total, somefailed=True] __________
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/main.py", line 107, in wrap_session
INTERNALERROR> config._do_configure()
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/config.py", line 839, in _do_configure
INTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self))
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/vendored_packages/pluggy.py", line 729, in call_historic
INTERNALERROR> self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/vendored_packages/pluggy.py", line 338, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/vendored_packages/pluggy.py", line 333, in <lambda>
INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute()
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/vendored_packages/pluggy.py", line 596, in execute
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/assertion/__init__.py", line 61, in pytest_configure
INTERNALERROR> _load_modules(mode)
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/assertion/__init__.py", line 154, in _load_modules
INTERNALERROR> from _pytest.assertion import rewrite # noqa
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/assertion/rewrite.py", line 5, in <module>
INTERNALERROR> import importlib.util
INTERNALERROR> ImportError: No module named util
++ 21:20:38 starting tool/pytest/test [141 started in total]
__ tool/pytest/test [138 done in total, somefailed=True] ______________________
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/main.py", line 107, in wrap_session
INTERNALERROR> config._do_configure()
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/config.py", line 839, in _do_configure
INTERNALERROR> self.hook.pytest_configure.call_historic(kwargs=dict(config=self))
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/vendored_packages/pluggy.py", line 729, in call_historic
INTERNALERROR> self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/vendored_packages/pluggy.py", line 338, in _hookexec
INTERNALERROR> return self._inner_hookexec(hook, methods, kwargs)
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/vendored_packages/pluggy.py", line 333, in <lambda>
INTERNALERROR> _MultiCall(methods, kwargs, hook.spec_opts).execute()
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/vendored_packages/pluggy.py", line 596, in execute
INTERNALERROR> res = hook_impl.function(*args)
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/assertion/__init__.py", line 61, in pytest_configure
INTERNALERROR> _load_modules(mode)
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/assertion/__init__.py", line 154, in _load_modules
INTERNALERROR> from _pytest.assertion import rewrite # noqa
INTERNALERROR> File "/build_dir/own-linux-x86-64/build/_pytest/assertion/rewrite.py", line 5, in <module>
INTERNALERROR> import importlib.util
INTERNALERROR> ImportError: No module named util
++ 21:20:39 starting tool/release/test [142 started in total]
__ tool/release/test [139 done in total, somefailed=False] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 8 items
tool/release/test/test_package.py ....s
tool/release/test/test_smartstrip.py ...
===================== 7 passed, 1 skipped in 23.07 seconds =====================
++ 21:21:03 starting tool/test [143 started in total]
__ module/zlib/test [140 done in total, somefailed=False] _____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 46 items
module/zlib/test/test_zlib.py ..................................s...........
==================== 45 passed, 1 skipped in 96.45 seconds =====================
__ tool/test [141 done in total, somefailed=False] ____________________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 29 items
tool/test/test_gdb_pypy.py ...........
tool/test/test_getdocstrings.py ...
tool/test/test_isolate.py .......
tool/test/test_lib_pypy.py ...
tool/test/test_license.py .
tool/test/test_package.py .
tool/test/test_tab.py ..
tool/test/test_template.py .
========================== 29 passed in 14.29 seconds ==========================
__ module/math/test [142 done in total, somefailed=False] _____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 209 items
module/math/test/apptest_math.py ...........s
module/math/test/test_direct.py ......................................................................................................................................................................
module/math/test/test_math.py ............s..................
=================== 207 passed, 2 skipped in 1308.67 seconds ===================
__ objspace/std/test [143 done in total, somefailed=False] ____________________
============================= test session starts ==============================
platform linux2 -- Python 2.7.18, pytest-2.9.2, py-1.4.29, pluggy-0.3.1
hypothesis profile 'default' -> deadline=None, database=DirectoryBasedExampleDatabase('/build_dir/own-linux-x86-64/build/pypy/.hypothesis/examples')
pytest-2.9.2 from /build_dir/own-linux-x86-64/build/pytest.pyc
rootdir: /build_dir/own-linux-x86-64/build, inifile: pytest.ini
plugins: hypothesis-4.39.3
collected 2486 items
objspace/std/test/apptest_boolobject.py .........
objspace/std/test/apptest_callmethod.py ..........
objspace/std/test/apptest_complexobject.py ....................................
objspace/std/test/apptest_contains.py ..
objspace/std/test/apptest_instmethobject.py .....
objspace/std/test/apptest_iterobject.py .....................
objspace/std/test/apptest_memoryobject.py ........
objspace/std/test/apptest_operation.py .
objspace/std/test/apptest_specializedtuple.py ........................
objspace/std/test/apptest_stringformat.py .................s......s..................s........................
objspace/std/test/apptest_tuple.py ........................
objspace/std/test/apptest_typeobjject.py ........
objspace/std/test/apptest_unicode.py ...........................s..........................................................................................
objspace/std/test/apptest_userobject.py ........................
objspace/std/test/test_boolobject.py .......
objspace/std/test/test_bytearrayobject.py .....................................................................................
objspace/std/test/test_bytesobject.py ................................................................................s......................
objspace/std/test/test_callmethod.py ...
objspace/std/test/test_celldict.py ..........................................
objspace/std/test/test_complexobject.py ....
objspace/std/test/test_dictmultiobject.py .........s.s.........................................................s.........................................................s.........................................................................
objspace/std/test/test_dictproxy.py ................
objspace/std/test/test_floatobject.py ......................................................
objspace/std/test/test_identitydict.py .....
objspace/std/test/test_identityset.py .......
objspace/std/test/test_index.py ...................................
objspace/std/test/test_intobject.py .............................................................................................................................................................
objspace/std/test/test_iterobject.py ....
objspace/std/test/test_jsondict.py ..........
objspace/std/test/test_kwargsdict.py ....................................
objspace/std/test/test_lengthhint.py .....................
objspace/std/test/test_listobject.py ..................................................................................................................
objspace/std/test/test_liststrategies.py ...................................................................s...................................................................
objspace/std/test/test_longobject.py ....................................................
objspace/std/test/test_mapdict.py ..........................................................................................s.......................................................
objspace/std/test/test_memoryobject.py .............................................
objspace/std/test/test_methodcache.py .............................................................................................
objspace/std/test/test_newformat.py ...................................................s...........
objspace/std/test/test_noneobject.py ...
objspace/std/test/test_obj.py .......................................
objspace/std/test/test_prebuiltint.py ..............................................................
objspace/std/test/test_proxy.py ssssssssssss
objspace/std/test/test_proxy_function.py ........
objspace/std/test/test_proxy_internals.py .......
objspace/std/test/test_proxy_iter.py .
objspace/std/test/test_proxy_object.py ..........
objspace/std/test/test_proxy_usercreated.py .
objspace/std/test/test_random_attr.py s....
objspace/std/test/test_setobject.py .................................................................................................
objspace/std/test/test_setstrategies.py ....s...ss...
objspace/std/test/test_sliceobject.py .............
objspace/std/test/test_smalllongobject.py .................................................................................................................................................................................................................................................
objspace/std/test/test_specialisedtupleobject.py ....................ss....
objspace/std/test/test_stdobjspace.py s........
objspace/std/test/test_translate.py .
objspace/std/test/test_typeobject.py .............................................................................................................
objspace/std/test/test_unicodeobject.py .................
objspace/std/test/test_userobject.py .
objspace/std/test/test_versionedtype.py ...............
================== 2455 passed, 31 skipped in 774.36 seconds ===================
program finished with exit code 1
elapsedTime=4371.910870