Home - Summaries: (main) : (py3.11) : Everything - Nightly builds - Benchmarks - RPython - Builders - About

pypy/module/fcntl/test/test_fcntl.py::AppTestFcntl::()::test_fcntl

self = <CallInfo when='call' exception: expected ctypes_Array of Char {'nolength': True} *0 instead of LP_ctypes_Array of Char {'nolength': True} *0>
func = <function <lambda> at 0x0000000128e43100>, 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_fcntl'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_fcntl'>}

    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 0x00000001488fa138>
hook = <_HookCaller 'pytest_runtest_call'>
methods = [<_pytest.vendored_packages.pluggy.HookImpl instance at 0x0000000149d5de60>]
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_fcntl'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_fcntl'>}

    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 0x0000000149d5de60>]
kwargs = {'__multicall__': <_MultiCall 0 results, 1 meths, kwargs={'item': <AppTestMethod 'test_fcntl'>, '__multicall__': <_MultiCall 0 results, 1 meths, kwargs={...}>}>, 'item': <AppTestMethod 'test_fcntl'>}

    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_fcntl'>, '__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 0x0000000128e67ee8>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...test_fcntl'>, '__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 0x0000000128e3b2e0>

    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 0x0000000128e3b2e0>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...test_fcntl'>, '__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_fcntl'>, '__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 0x0000000128e67e98>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...test_fcntl'>, '__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 0x0000000128e3b2a0>

    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 0x0000000128e3b2a0>
func = <bound method _MultiCall.execute of <_MultiCall 0 results, 1 meths, kwargs={'i...test_fcntl'>, '__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_fcntl'>, '__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_fcntl'>

    def pytest_runtest_call(item):
        try:
>           item.runtest()

../_pytest/runner.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AppTestMethod 'test_fcntl'>

    def runtest(self):
        target = self.obj
        if self.config.option.runappdirect:
            return target()
        space = target.im_self.space
        filename = self._getdynfilename(target)
        func = app2interp_temp(target.im_func, filename=filename)
        w_instance = self.parent.w_instance
>       self.execute_appex(space, func, space, w_instance)

tool/pytest/apptest.py:89: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AppTestMethod 'test_fcntl'>, space = StdObjSpace
target = <function test_fcntl at 0x0000000128e43358>
args = (StdObjSpace, <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x0000000128e73018>)

    def execute_appex(self, space, target, *args):
        self.space = space
        try:
>           target(*args)

tool/pytest/apptest.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

space = StdObjSpace
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x0000000128e73018>,)
w_func = <Function test_fcntl>
args = <pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x0000000128e73018>

    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:1227: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = StdObjSpace, w_func = <Function test_fcntl>
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x0000000128e73018>,)
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):
                w_inst = w_func.w_instance
                if w_inst is not None:
                    if nargs < 4:
                        func = w_func.w_function
                        if isinstance(func, Function):
                            return func.funccall(w_inst, *args_w)
                elif args_w and (
                        self.abstract_isinstance_w(args_w[0], w_func.w_class)):
                    w_func = w_func.w_function
    
            if isinstance(w_func, Function):
>               return w_func.funccall(*args_w)

interpreter/baseobjspace.py:1210: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Function test_fcntl>
args_w = (<pypy.interpreter.typedef.W_ObjectObjectUserDictWeakrefable object at 0x0000000128e73018>,)
gateway = <module 'pypy.interpreter.gateway' from '/Users/matti/build-worker-arm64/own-macos-arm64/build/pypy/interpreter/gateway.pyc'>
PyCode = <class 'pypy.interpreter.pycode.PyCode'>
code = <code object test_fcntl, file '[/Users/matti/build-worker-arm64/own-macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', 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()

interpreter/function.py:118: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34

    def run(self):
        """Start this frame's execution."""
        if self.getcode().co_flags & pycode.CO_GENERATOR:
            from pypy.interpreter.generator import GeneratorIterator
            return GeneratorIterator(self)
        else:
>           return self.execute_frame()

interpreter/pyframe.py:253: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34
w_inputvalue = None, operr = None

    def execute_frame(self, w_inputvalue=None, operr=None):
        """Execute this frame.  Main entry point to the interpreter.
            The optional arguments are there to handle a generator's frame:
            w_inputvalue is for generator.send() and operr is for
            generator.throw().
            """
        # 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)
            #
            try:
                if operr is not None:
                    next_instr = self.handle_operation_error(
                            executioncontext, operr)
                    self.last_instr = intmask(next_instr - 1)
                else:
                    # Execution starts just after the last_instr.  Initially,
                    # last_instr is -1.  After a generator suspends it points to
                    # the YIELD_VALUE instruction.
                    next_instr = r_uint(self.last_instr + 1)
                    if next_instr != 0:
                        self.pushvalue(w_inputvalue)
                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:290: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34
e = TypeError("expected ctypes_Array of Char {'nolength': True} *0 instead of LP_ctypes_Array of Char {'nolength': True} *0",)

    def _convert_unexpected_exception(self, e):
        from pypy.interpreter import error
    
>       operr = error.get_converted_unexpected_exception(self.space, e)

interpreter/pyframe.py:943: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34
w_inputvalue = None, operr = None

    def execute_frame(self, w_inputvalue=None, operr=None):
        """Execute this frame.  Main entry point to the interpreter.
            The optional arguments are there to handle a generator's frame:
            w_inputvalue is for generator.send() and operr is for
            generator.throw().
            """
        # 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)
            #
            try:
                if operr is not None:
                    next_instr = self.handle_operation_error(
                            executioncontext, operr)
                    self.last_instr = intmask(next_instr - 1)
                else:
                    # Execution starts just after the last_instr.  Initially,
                    # last_instr is -1.  After a generator suspends it points to
                    # the YIELD_VALUE instruction.
                    next_instr = r_uint(self.last_instr + 1)
                    if next_instr != 0:
                        self.pushvalue(w_inputvalue)
                w_exitvalue = self.dispatch(self.pycode, next_instr,
>                                           executioncontext)

interpreter/pyframe.py:286: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34
pycode = <code object test_fcntl, file '[/Users/matti/build-worker-arm64/own-macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1>
next_instr = 0L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x0000000128e5b018>

    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:
>               next_instr = self.handle_bytecode(co_code, next_instr, ec)

interpreter/pyopcode.py:63: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34
co_code = "d\x01\x00d\x00\x00l\x00\x00}\x01\x00d\x01\x00d\x00\x00l\x01\x00}\x02\x00d\x01\x00d\x00\x00l\x02\x00\x89\x00\x00d\x01\...0t'\x00|\x01\x00j\x00\x00|\x05\x00|\x01\x00j \x00d\x1b\x00\x83\x05\x00\x01|\x05\x00\xc9(\x00\xca\x00\x00\x01d\x00\x00S"
next_instr = 0L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x0000000128e5b018>

    def handle_bytecode(self, co_code, next_instr, ec):
        try:
>           next_instr = self.dispatch_bytecode(co_code, next_instr, ec)

interpreter/pyopcode.py:70: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34
co_code = "d\x01\x00d\x00\x00l\x00\x00}\x01\x00d\x01\x00d\x00\x00l\x01\x00}\x02\x00d\x01\x00d\x00\x00l\x02\x00\x89\x00\x00d\x01\...0t'\x00|\x01\x00j\x00\x00|\x05\x00|\x01\x00j \x00d\x1b\x00\x83\x05\x00\x01|\x05\x00\xc9(\x00\xca\x00\x00\x01d\x00\x00S"
next_instr = 649L
ec = <pypy.interpreter.executioncontext.ExecutionContext object at 0x0000000128e5b018>

    @jit.unroll_safe
    def dispatch_bytecode(self, co_code, next_instr, ec):
        while True:
            self.last_instr = intmask(next_instr)
            if jit.we_are_jitted():
                if self.debugdata:
                    ec.bytecode_only_trace(self)
                    next_instr = r_uint(self.last_instr)
            else:
                ec.bytecode_trace(self)
                next_instr = r_uint(self.last_instr)
            opcode = ord(co_code[next_instr])
            next_instr += 1
    
            if opcode >= HAVE_ARGUMENT:
                lo = ord(co_code[next_instr])
                hi = ord(co_code[next_instr+1])
                next_instr += 2
                oparg = (hi * 256) | lo
            else:
                oparg = 0
    
            # note: the structure of the code here is such that it makes
            # (after translation) a big "if/elif" chain, which is then
            # turned into a switch().
    
            while opcode == opcodedesc.EXTENDED_ARG.index:
                opcode = ord(co_code[next_instr])
                if opcode < HAVE_ARGUMENT:
                    raise BytecodeCorruption
                lo = ord(co_code[next_instr+1])
                hi = ord(co_code[next_instr+2])
                next_instr += 3
                oparg = (oparg * 65536) | (hi * 256) | lo
    
            if opcode == opcodedesc.RETURN_VALUE.index:
                if not self.blockstack_non_empty():
                    self.frame_finished_execution = True  # for generators
                    raise Return
                w_returnvalue = self.popvalue()
                block = self.unrollstack(SReturnValue.kind)
                if block is None:
                    self.pushvalue(w_returnvalue)
                    raise Return
                else:
                    unroller = SReturnValue(w_returnvalue)
                    next_instr = block.handle(self, unroller)
                    return next_instr    # now inside a 'finally' block
            elif opcode == opcodedesc.END_FINALLY.index:
                unroller = self.end_finally()
                if isinstance(unroller, SuspendedUnroller):
                    # go on unrolling the stack
                    block = self.unrollstack(unroller.kind)
                    if block is None:
                        w_result = unroller.nomoreblocks()
                        self.pushvalue(w_result)
                        raise Return
                    else:
                        next_instr = block.handle(self, unroller)
                return next_instr
            elif opcode == opcodedesc.JUMP_ABSOLUTE.index:
                return self.jump_absolute(oparg, ec)
            elif opcode == opcodedesc.BREAK_LOOP.index:
                next_instr = self.BREAK_LOOP(oparg, next_instr)
            elif opcode == opcodedesc.CONTINUE_LOOP.index:
                return self.CONTINUE_LOOP(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:
                next_instr = self.JUMP_IF_FALSE_OR_POP(oparg, next_instr)
            elif opcode == opcodedesc.JUMP_IF_NOT_DEBUG.index:
                next_instr = self.JUMP_IF_NOT_DEBUG(oparg, next_instr)
            elif opcode == opcodedesc.JUMP_IF_TRUE_OR_POP.index:
                next_instr = self.JUMP_IF_TRUE_OR_POP(oparg, next_instr)
            elif opcode == opcodedesc.POP_JUMP_IF_FALSE.index:
                next_instr = self.POP_JUMP_IF_FALSE(oparg, next_instr)
            elif opcode == opcodedesc.POP_JUMP_IF_TRUE.index:
                next_instr = self.POP_JUMP_IF_TRUE(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_DIVIDE.index:
                self.BINARY_DIVIDE(oparg, next_instr)
            elif opcode == opcodedesc.BINARY_FLOOR_DIVIDE.index:
                self.BINARY_FLOOR_DIVIDE(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_CLASS.index:
                self.BUILD_CLASS(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_VAR.index:
                self.CALL_FUNCTION_VAR(oparg, next_instr)
            elif opcode == opcodedesc.CALL_FUNCTION_VAR_KW.index:
                self.CALL_FUNCTION_VAR_KW(oparg, next_instr)
            elif opcode == opcodedesc.CALL_METHOD.index:
>               self.CALL_METHOD(oparg, next_instr)

interpreter/pyopcode.py:276: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

f = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34
oparg = 3, ignored = (649L,), n_args = 3, n_kwargs = 0, w_self = None

    @jit.unroll_safe
    def CALL_METHOD(f, oparg, *ignored):
        # opargs contains the arg, and kwarg count, excluding the implicit 'self'
        n_args = oparg & 0xff
        n_kwargs = (oparg >> 8) & 0xff
        w_self = f.peekvalue_maybe_none(n_args + (2 * n_kwargs))
        n = n_args + (w_self is not None)
    
        if not n_kwargs:
            w_callable = f.peekvalue(n_args + (2 * n_kwargs) + 1)
            w_result = f.space.call_valuestack(
>               w_callable, n, f, methodcall=w_self is not None, dropvalues=n_args + 2)

objspace/std/callmethod.py:96: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = StdObjSpace, w_func = <BuiltinFunction fcntl>, nargs = 3
frame = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34
dropvalues = 5, methodcall = False

    def call_valuestack(self, w_func, nargs, frame, dropvalues, methodcall=False):
        # methodcall is only used for better error messages in argument.py
        from pypy.interpreter.function import Function, Method, is_builtin_code
        if frame.get_is_being_profiled() and is_builtin_code(w_func):
            # XXX: this code is copied&pasted :-( from the slow path below
            # call_valuestack().
            args = frame.make_arguments(nargs)
            frame.dropvalues(dropvalues)
            return self.call_args_and_c_profile(frame, w_func, args)
    
        if not self.config.objspace.disable_call_speedhacks:
            # start of hack for performance
            if isinstance(w_func, Method):
                w_inst = w_func.w_instance
                if w_inst is not None:
                    w_func = w_func.w_function
                    # reuse callable stack place for w_inst
                    frame.settopvalue(w_inst, nargs)
                    nargs += 1
                    methodcall = True
                elif nargs > 0 and (
                    self.abstract_isinstance_w(frame.peekvalue(nargs-1),   #    :-(
                                               w_func.w_class)):
                    w_func = w_func.w_function
    
            if isinstance(w_func, Function):
                return w_func.funccall_valuestack(
>                       nargs, frame, methodcall=methodcall, dropvalues=dropvalues)

interpreter/baseobjspace.py:1243: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <BuiltinFunction fcntl>, nargs = 3
frame = <pypy.objspace.std.frame.StdObjSpaceFrame executing <code object test_fcntl, f...macos-arm64/build/pypy/module/fcntl/test/test_fcntl.py:21]', line 1> at line 34
dropvalues = 5, methodcall = False

    def funccall_valuestack(self, nargs, frame, dropvalues, methodcall=False): # speed hack
        # methodcall is only for better error messages
        from pypy.interpreter import gateway
        from pypy.interpreter.pycode import PyCode
    
        code = self.getcode() # hook for the jit
        #
        if (jit.we_are_jitted() and code is self.space._code_of_sys_exc_info
                                and nargs == 0):
            frame.dropvalues(dropvalues)
            from pypy.module.sys.vm import exc_info_direct
            return exc_info_direct(self.space, frame)
        #
        fast_natural_arity = code.fast_natural_arity
        if nargs == fast_natural_arity:
            if nargs == 0:
                frame.dropvalues(dropvalues)
                assert isinstance(code, gateway.BuiltinCode0)
                return code.fastcall_0(self.space, self)
            elif nargs == 1:
                f_0 = frame.peekvalue(0)
                frame.dropvalues(dropvalues)
                assert isinstance(code, gateway.BuiltinCode1)
                return code.fastcall_1(self.space, self, f_0)
            elif nargs == 2:
                f_0 = frame.peekvalue(0)
                f_1 = frame.peekvalue(1)
                frame.dropvalues(dropvalues)
                assert isinstance(code, gateway.BuiltinCode2)
                return code.fastcall_2(self.space, self, f_1, f_0)
            elif nargs == 3:
                assert isinstance(code, gateway.BuiltinCode3)
                f_0 = frame.peekvalue(0)
                f_1 = frame.peekvalue(1)
                f_2 = frame.peekvalue(2)
                frame.dropvalues(dropvalues)
                return code.fastcall_3(self.space, self, f_2,
>                                      f_1, f_0)

interpreter/function.py:163: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.interpreter.gateway.BuiltinCode3 object at 0x0000000118ff8598>
space = StdObjSpace, func = <BuiltinFunction fcntl>
w1 = <pypy.module._file.interp_file.W_File object at 0x0000000118ff8368>
w2 = W_IntObject(2), w3 = W_BytesObject('foo')

    @signature(sigtypes.self(), sigtypes.any(),
               w_root_or_none,
               w_root_or_none,
               w_root_or_none,
               w_root_or_none,
               returns=w_root_or_none)
    def fastcall_3(self, space, func, w1, w2, w3):
        try:
            w_result = self.fastfunc_3(space, w1, w2, w3)
        except DescrMismatch:
            return self._type_unwrap_mismatch(space,
                                          Arguments(space, [w1, w2, w3]))
        except Exception as e:
>           self.handle_exception(space, e)

interpreter/gateway.py:942: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.interpreter.gateway.BuiltinCode3 object at 0x0000000118ff8598>
space = StdObjSpace
e = TypeError("expected ctypes_Array of Char {'nolength': True} *0 instead of LP_ctypes_Array of Char {'nolength': True} *0",)

    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:819: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <pypy.interpreter.gateway.BuiltinCode3 object at 0x0000000118ff8598>
space = StdObjSpace, func = <BuiltinFunction fcntl>
w1 = <pypy.module._file.interp_file.W_File object at 0x0000000118ff8368>
w2 = W_IntObject(2), w3 = W_BytesObject('foo')

    @signature(sigtypes.self(), sigtypes.any(),
               w_root_or_none,
               w_root_or_none,
               w_root_or_none,
               w_root_or_none,
               returns=w_root_or_none)
    def fastcall_3(self, space, func, w1, w2, w3):
        try:
>           w_result = self.fastfunc_3(space, w1, w2, w3)

interpreter/gateway.py:937: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

space = StdObjSpace
w0 = <pypy.module._file.interp_file.W_File object at 0x0000000118ff8368>
w1 = W_IntObject(2), w2 = W_BytesObject('foo')

    def fastfunc_fcntl_3(space, w0, w1, w2):
>       return func(space, w0, space.gateway_int_w(w1), w2)

<2392-codegen /Users/matti/build-worker-arm64/own-macos-arm64/build/rpython/tool/sourcetools.py:174>:3: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

space = StdObjSpace
w_fd = <pypy.module._file.interp_file.W_File object at 0x0000000118ff8368>
op = 2L, w_arg = W_BytesObject('foo')

    @unwrap_spec(op=int, w_arg=WrappedDefault(0))
    def fcntl(space, w_fd, op, w_arg):
        """fcntl(fd, op, [arg])
    
        Perform the requested operation on file descriptor fd.  The operation
        is defined by op and is operating system dependent.  These constants are
        available from the fcntl module.  The argument arg is optional, and
        defaults to 0; it may be an int or a string. If arg is given as a string,
        the return value of fcntl is a string of that length, containing the
        resulting value put in the arg buffer by the operating system. If the
        arg given is an integer or if none is specified, the result value is an
        integer corresponding to the return value of the fcntl call in the C code.
        """
    
        fd = space.c_filedescriptor_w(w_fd)
        op = rffi.cast(rffi.INT, op)        # C long => C int
    
        try:
            arg = space.getarg_w('s#', w_arg)
        except OperationError as e:
            if not e.match(space, space.w_TypeError):
                raise
        else:
            ll_arg = rffi.str2charp(arg)
            try:
>               rv = fcntl_str(fd, op, ll_arg)

module/fcntl/interp_fcntl.py:117: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

args = (13, 2L, <* DEAD Array of Char {'nolength': True} >)
real_args = (13L, 2L, <* DEAD Array of Char {'nolength': True} >), to_free = ()
i = 2

    def wrapper(*args):
        assert len(args) == nb_args
        real_args = ()
        # XXX 'to_free' leaks if an allocation fails with MemoryError
        # and was not the first in this function
        to_free = ()
        for i, TARGET in unrolling_arg_tps:
            arg = args[i]
            if TARGET == CCHARP or TARGET is VOIDP:
                if arg is None:
                    from rpython.rtyper.annlowlevel import llstr
                    arg = lltype.nullptr(CCHARP.TO)   # None => (char*)NULL
                    to_free = to_free + (arg, llstr(None), '\x04')
                elif isinstance(arg, str):
                    tup = get_nonmovingbuffer_ll_final_null(arg)
                    to_free = to_free + tup
                    arg = tup[0]
                elif isinstance(arg, unicode):
                    _oops()
            elif TARGET == CWCHARP:
                if arg is None:
                    arg = lltype.nullptr(CWCHARP.TO)   # None => (wchar_t*)NULL
                    to_free = to_free + (arg,)
                elif isinstance(arg, unicode):
                    arg = unicode2wcharp(arg)
                    to_free = to_free + (arg,)
            elif _isfunctype(TARGET) and not _isllptr(arg):
                # XXX pass additional arguments
                use_gil = invoke_around_handlers
                arg = llhelper(TARGET, _make_wrapper_for(TARGET, arg,
                                                         callbackholder,
                                                         use_gil))
            else:
                SOURCE = lltype.typeOf(arg)
                if SOURCE != TARGET:
                    if TARGET is lltype.Float:
                        arg = float(arg)
                    elif ((isinstance(SOURCE, lltype.Number)
                           or SOURCE is lltype.Bool)
                      and (isinstance(TARGET, lltype.Number)
                           or TARGET is lltype.Bool)):
                        arg = cast(TARGET, arg)
            real_args = real_args + (arg,)
>       res = call_external_function(*real_args)

../rpython/rtyper/lltypesystem/rffi.py:321: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

a0 = 13L, a1 = 2L, a2 = <* DEAD Array of Char {'nolength': True} >

    def call_external_function(a0, a1, a2):
        rgil.release()
        # NB. it is essential that no exception checking occurs here!
        if 1:
            from rpython.rlib import rposix
            rposix._errno_before(1)
        if we_are_translated():
            res = funcptr(a0, a1, a2)
        else:
            try:    # only when non-translated
>               res = funcptr(a0, a1, a2)

<2034-codegen /Users/matti/build-worker-arm64/own-macos-arm64/build/rpython/rtyper/lltypesystem/rffi.py:217>:13: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <* fn fcntl>
args = (13L, 2L, <* DEAD Array of Char {'nolength': True} >)
rffi = <module 'rpython.rtyper.lltypesystem.rffi' from '/Users/matti/build-worker-arm64/own-macos-arm64/build/rpython/rtyper/lltypesystem/rffi.pyc'>
i = 2, a = <* DEAD Array of Char {'nolength': True} >

    def __call__(self, *args):
        from rpython.rtyper.lltypesystem import rffi
        if isinstance(self._T, FuncType):
            if len(args) != len(self._T.ARGS):
                raise TypeError("calling %r with wrong argument number: %r" %
                                (self._T, args))
            for i, a, ARG in zip(range(len(self._T.ARGS)), args, self._T.ARGS):
                if typeOf(a) != ARG:
                    # ARG could be Void
                    if ARG == Void:
                        try:
                            value = getattr(self._obj, '_void' + str(i))
                        except AttributeError:
                            pass
                        else:
                            assert a == value
                    # None is acceptable for any pointer
                    elif isinstance(ARG, Ptr) and a is None:
                        pass
                    # Any pointer is convertible to void*
                    elif ARG is rffi.VOIDP and isinstance(typeOf(a), Ptr):
                        pass
                    # special case: ARG can be a container type, in which
                    # case a should be a pointer to it.  This must also be
                    # special-cased in the backends.
                    elif (isinstance(ARG, ContainerType) and
                          typeOf(a) == Ptr(ARG)):
                        pass
                    else:
                        args_repr = [typeOf(arg) for arg in args]
                        raise TypeError("calling %r with wrong argument "
                                          "types: %r" % (self._T, args_repr))
            callb = self._obj._callable
            if callb is None:
                raise RuntimeError("calling undefined function")
>           return callb(*args)

../rpython/rtyper/lltypesystem/lltype.py:1384: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <rpython.rtyper.lltypesystem.ll2ctypes.LL2CtypesCallable object at 0x000000014aecf9f0>
argvalues = (13L, 2L, <* DEAD Array of Char {'nolength': True} >)
cfunc = <ctypes._FuncPtr object at 0x0000000119059280>

    def __call__(self, *argvalues):
        with rlock:
            if self.trampoline is None:
                # lazily build the corresponding ctypes function object
                cfunc = get_ctypes_callable(self.funcptr, self.calling_conv,
                                            self.natural_arity)
                self.trampoline = get_ctypes_trampoline(self.FUNCTYPE, cfunc, self.natural_arity)
        # perform the call
>       return self.trampoline(*argvalues)

../rpython/rtyper/lltypesystem/ll2ctypes.py:1342: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

argvalues = (13L, 2L, <* DEAD Array of Char {'nolength': True} >)
cargs = [13L, 2L], i = 2
cvalue = <_ctypes.pointer.LP_ctypes_Array of Char {'nolength': True} *0 object at 0x00000001190593d0>

    def invoke_via_ctypes(*argvalues):
        global _callback_exc_info
        cargs = []
        for i in range(len(argvalues)):
            if i not in void_arguments:
                cvalue = lltype2ctypes(argvalues[i])
                if i in container_arguments:
                    cvalue = cvalue.contents
                if natural_arity > 0 and i >= natural_arity:
>                   cvalue = cfunc.extraargs[i - natural_arity](cvalue)

../rpython/rtyper/lltypesystem/ll2ctypes.py:1370: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_ctypes.pointer.LP_ctypes_Array of Char {'nolength': True} *0 object at 0x00000001190593b8>
value = <_ctypes.pointer.LP_ctypes_Array of Char {'nolength': True} *0 object at 0x00000001190593d0>

    def __init__(self, value=None):
        if not hasattr(self, '_buffer'):
            self._buffer = ffiarray(1, autofree=True)
        if value is not None:
>           self.contents = value

../../../../oss/pypy-arm64-buildbot/lib_pypy/_ctypes/pointer.py:73: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <_ctypes.pointer.LP_ctypes_Array of Char {'nolength': True} *0 object at 0x00000001190593b8>
value = <_ctypes.pointer.LP_ctypes_Array of Char {'nolength': True} *0 object at 0x00000001190593d0>

    def setcontents(self, value):
        if not isinstance(value, self._type_):
            raise TypeError("expected %s instead of %s" % (
>               self._type_.__name__, type(value).__name__))
E           TypeError: expected ctypes_Array of Char {'nolength': True} *0 instead of LP_ctypes_Array of Char {'nolength': True} *0

../../../../oss/pypy-arm64-buildbot/lib_pypy/_ctypes/pointer.py:106: TypeError
builder: own-macos-arm64 build #1205
test: pypy/module/fcntl/test/test_fcntl/py/AppTestFcntl/()/test_fcntl