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

jit/backend/aarch64/test/test_runner.py::TestARM64::()::test_call_release_gil_save_errno

self = <rpython.jit.backend.aarch64.test.test_runner.TestARM64 object at 0x000000013b9829c0>

    def test_call_release_gil_save_errno(self):
        from rpython.translator.tool.cbuild import ExternalCompilationInfo
        from rpython.rlib.libffi import types
        from rpython.jit.backend.llsupport import llerrno
        #
        if not isinstance(self.cpu, AbstractLLCPU):
            py.test.skip("not on LLGraph")
        eci = ExternalCompilationInfo(
            separate_module_sources=['''
                    #include <errno.h>
                    static Signed f1(Signed a, Signed b, Signed c, Signed d,
                                     Signed e, Signed f, Signed g) {
                        errno = 42;
                        return (a + 10*b + 100*c + 1000*d +
                                10000*e + 100000*f + 1000000*g);
                    }
                    RPY_EXPORTED
                    Signed test_call_release_gil_save_errno(void) {
                        return (Signed)&f1;
                    }
                '''])
        fn_name = 'test_call_release_gil_save_errno'
        getter_ptr = rffi.llexternal(fn_name, [], lltype.Signed,
                                     compilation_info=eci, _nowrapper=True)
        func1_adr = getter_ptr()
        calldescr = self.cpu._calldescr_dynamic_for_tests([types.signed]*7,
                                                          types.signed)
        #
        for saveerr in [rffi.RFFI_ERR_NONE,
                        rffi.RFFI_SAVE_ERRNO,
                        rffi.RFFI_ERR_NONE | rffi.RFFI_ALT_ERRNO,
                        rffi.RFFI_SAVE_ERRNO | rffi.RFFI_ALT_ERRNO,
                        ]:
            faildescr = BasicFailDescr(1)
            inputargs = [InputArgInt() for i in range(7)]
            op0 = ResOperation(rop.CALL_RELEASE_GIL_I,
                             [ConstInt(saveerr), ConstInt(func1_adr)]
                                 + inputargs,
                             descr=calldescr)
    
            ops = [
                op0,
                ResOperation(rop.GUARD_NOT_FORCED, [], descr=faildescr),
                ResOperation(rop.FINISH, [op0], descr=BasicFinalDescr(0))
            ]
            ops[-2].setfailargs([])
            looptoken = JitCellToken()
            self.cpu.compile_loop(inputargs, ops, looptoken)
            #
            llerrno.set_debug_saved_errno(self.cpu, 24)
            llerrno.set_debug_saved_alterrno(self.cpu, 25)
            deadframe = self.cpu.execute_token(looptoken, 9, 8, 7, 6, 5, 4, 3)
            original_result = self.cpu.get_int_value(deadframe, 0)
            result = llerrno.get_debug_saved_errno(self.cpu)
            altresult = llerrno.get_debug_saved_alterrno(self.cpu)
            print('saveerr =', saveerr, ': got result =', result,
                  'altresult =', altresult)
            #
            expected = {
                rffi.RFFI_ERR_NONE: (24, 25),
                rffi.RFFI_SAVE_ERRNO: (42, 25),
                rffi.RFFI_ERR_NONE | rffi.RFFI_ALT_ERRNO: (24, 25),
                rffi.RFFI_SAVE_ERRNO | rffi.RFFI_ALT_ERRNO: (24, 42),
            }
            # expected (24, 25) as originally set, with possibly one
            # of the two changed to 42 by the assembler code
>           assert (result, altresult) == expected[saveerr]
E           assert (7863003474412175402, 25) == (42, 25)
E             At index 0 diff: 7863003474412175402 != 42
E             Use -v to get the full diff

jit/backend/test/runner_test.py:3193: AssertionError
---------- Captured stderr setup ----------
[c603a4a57b7cf00] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7003700000 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9E0031DAAF35344A9FE77C5A8C0035FD6 
[c603a4a57c8ad80] jit-backend-dump}
[c603a4a57f61a80] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7003700060 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F905BF9ED2E514A0F20500CCF2A40040F9060080D2A60000F905BE9ED2E514A0F20500CCF2A60000F9A41700F9E0031DAAF35344A9FE77C5A8C0035FD6 
[c603a4a580c1580] jit-backend-dump}
[c603a4a588c4200] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @70037000f0 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDE00740A9FE0300F9A00F00F9E0031DAA10BF9ED2F014A0F21000CCF2100240F9B01700F910BE9ED2F014A0F21000CCF2130240F910BF9ED2F014A0F21000CCF2110080D2110200F910BE9ED2F014A0F21000CCF2110200F9106481D21059A0F23000C0F21000E0F200023FD6FD0300AA10BF9ED2F014A0F21000CCF2B11740F9110200F9110080D2B11700F910BE9ED2F014A0F21000CCF2130200F9100080D2B00F00F9A02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9B35B40F9B45F40F9A06340FDA16740FDA26B40FDA36F40FDA47340FDA57740FDA67B40FDA77F40FDFE0340F9FF430091C0035FD6 
[c603a4a58cc7b80] jit-backend-dump}
[c603a4a58f28380] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7003700270 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDE0031DAAF35344A9FE77C5A8C0035FD6 
[c603a4a59077880] jit-backend-dump}
[c603a4a593d2f00] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @70037002f0 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FD05BF9ED2E514A0F20500CCF2A40040F9060080D2A60000F905BE9ED2E514A0F20500CCF2A60000F9A41700F9E0031DAAF35344A9FE77C5A8C0035FD6 
[c603a4a5959da80] jit-backend-dump}
[c603a4a59729480] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @70037003a0 +0  10BF9ED2F014A0F21000CCF2000240F9110080D2110200F910BE9ED2F014A0F21000CCF2110200F9A01700F9000080D2A00700F9E0031DAAF35344A9FE77C5A8C0035FD6 
[c603a4a597f5880] jit-backend-dump}
[c603a4a59c61f00] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @70037003f0 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDFF4300D1F00700F9FE0300F920023FD6F10300AAA02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9B35B40F9B45F40F9F00340F9FF43009100025FD6 
[c603a4a59e97a00] jit-backend-dump}
[c603a4a5a238000] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @70037004c0 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDFF4300D1F00700F9FE0300F920023FD6F10300AAA02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9F00340F9FF43009100025FD6 
[c603a4a5a438b00] jit-backend-dump}
[c603a4a5a8eb880] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7003700580 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9B35B00F9B45F00F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDFF4300D1F00700F9FE0300F920023FD6F10300AAA02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9B35B40F9B45F40F9A06340FDA16740FDA26B40FDA36F40FDA47340FDA57740FDA67B40FDA77F40FDF00340F9FF43009100025FD6 
[c603a4a5ab6e000] jit-backend-dump}
[c603a4a5afb6f00] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7003700670 +0  A02300F9A12700F9A22B00F9A32F00F9A43300F9A53700F9A63B00F9A73F00F9A84300F9A94700F9AA4B00F9AB4F00F9AC5300F9AD5700F9A06300FDA16700FDA26B00FDA36F00FDA47300FDA57700FDA67B00FDA77F00FDFF4300D1F00700F9FE0300F920023FD6F10300AAA02340F9A12740F9A22B40F9A32F40F9A43340F9A53740F9A63B40F9A73F40F9A84340F9A94740F9AA4B40F9AB4F40F9AC5340F9AD5740F9A06340FDA16740FDA26B40FDA36F40FDA47340FDA57740FDA67B40FDA77F40FDF00340F9FF43009100025FD6 
[c603a4a5b212b00] jit-backend-dump}
---------- Captured stdout call ----------
saveerr = 0 : got result = 24 altresult = 25
saveerr = 1 : got result = 7863003474412175402 altresult = 25
---------- Captured stderr call ----------
[c603a4a66c41a80] {jit-mem-looptoken-alloc
allocating Loop # -1 
[c603a4a66c4eb80] jit-mem-looptoken-alloc}
[c603a4a6747c000] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7003700780 +0  00000000000000000000000000000000FE77BBA9F35304A9E10F00F9FD0300AA001099D20010A0F20000CCF2010040F921040091010000F950FEFF58B00B00F9A08340F9A18740F9A28B40F9A38F40F9A49340F9A59740F9A69B40F910EB80D2106EA0F2100EC0F2B00F00F9113998D2B15BA0F23100C0F2330240F93FFE9FC8BD07009110D28FD2D05BA0F23000C0F21000E0F200023FD60F3998D2AF5BA0F22F00C0F2E17D5FC8610000B5F3FD03C8A3FFFF35BF3B03D5010100B4F30300AA101280D21059A0F23000C0F21000E0F200023FD6E00313AABD0700D1100080D2B00F00F9B00740F91F0200F1000020D4A02300F9B0F8FF58B00700F9BF0F00F9E0031DAAF35344A9FE77C5A8C0035FD6000020D470F7FF58B00700F910ED80D2106EA0F2100EC0F2B00F00F9100C80D2106EA0F2100EC0F21000E0F200023FD6 
[c603a4a6785fb80] jit-backend-dump}
[c603a4a678fde80] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @700370086c +0  41010054 
[c603a4a6791ff80] jit-backend-dump}
[c603a4a67cb7e80] {jit-backend-addr
Loop -1 () has address 0x70037007a0 to 0x7003700894 (bootstrap 0x7003700790) 
       gc table: 0x7003700780 
       function: 0x7003700790 
         resops: 0x70037007a0 
       failures: 0x7003700894 
            end: 0x70037008c0 
[c603a4a67cc8e00] jit-backend-addr}
[c603a4a67f0bf80] {jit-mem-looptoken-alloc
allocating Loop # -1 
[c603a4a67f13c80] jit-mem-looptoken-alloc}
[c603a4a78548880] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @7003700900 +0  00000000000000000000000000000000FE77BBA9F35304A9E10F00F9FD0300AA00E880D20010A0F20000CCF2010040F921040091010000F950FEFF58B00B00F9A08340F9A18740F9A28B40F9A38F40F9A49340F9A59740F9A69B40F9101B81D2106EA0F2100EC0F2B00F00F9113998D2B15BA0F23100C0F2330240F93FFE9FC8BD07009110D28FD2D05BA0F23000C0F21000E0F200023FD6E30F40F9700840F9100240F9700C00F90F3998D2AF5BA0F22F00C0F2E17D5FC8610000B5F3FD03C8A3FFFF35BF3B03D5010100B4F30300AA101280D21059A0F23000C0F21000E0F200023FD6E00313AABD0700D1100080D2B00F00F9B00740F91F0200F1000020D4A02300F930F8FF58B00700F9BF0F00F9E0031DAAF35344A9FE77C5A8C0035FD6000020D4F0F6FF58B00700F9101D81D2106EA0F2100EC0F2B00F00F9100C80D2106EA0F2100EC0F21000E0F200023FD6 
[c603a4a788fa900] jit-backend-dump}
[c603a4a78995f80] {jit-backend-dump
BACKEND arm 
SYS_EXECUTABLE ?? 
CODE_DUMP @70037009fc +0  41010054 
[c603a4a789b5b80] jit-backend-dump}
[c603a4a78e31500] {jit-backend-addr
Loop -1 () has address 0x7003700920 to 0x7003700a24 (bootstrap 0x7003700910) 
       gc table: 0x7003700900 
       function: 0x7003700910 
         resops: 0x7003700920 
       failures: 0x7003700a24 
            end: 0x7003700a50 
[c603a4a78e43d80] jit-backend-addr}
builder: rpython-macos-arm64 build #294+
test: jit/backend/aarch64/test/test_runner.py::TestARM64::()::test_call_release_gil_save_errno