403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /Python313/Lib/test/test_capi/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Python313/Lib/test/test_capi/__pycache__/test_misc.cpython-313.opt-2.pyc
�

��in���$�SSKrSSKJr SSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSKJr SSKJr SSKJr SSKJr SSKJr SS	KJr SS
KJr SSKJr SSK J!r!J"r"J#r# SSK$r$SSK&r&SSK'r'SSK(r(\RT"S
5r+SSK,r,SSK-r-Sr.Sr/Sr0Sr1"SS5r2\Rf"SS\Rh55r5\"SS\Rh55r6"SS\Rh5r7"SS\Rh5r8\0"SS\Rh55r9\0"SS\Rh55r:"SS \Rh5r;"S!S"\Rh5r<"S#S$\Rh5r=S<S%jr>"S&S'\Rh5r?"S(S)\Rh5r@"S*S+\Rh5rA\R�"5"S,S-\Rh55rC\R�"\&SLS.5"S/S0\Rh55rE"S1S2\Rh5rFS3rG"S4S5\Rh5rH\R�"\R>S65"S7S8\Rh55rJ"S9S:\Rh5rK\LS;:Xa\R�"5 gg!\%a Sr$GNMf=f!\%a Sr&GNWf=f!\%a Sr'GNaf=f!\)a Sr(GNkf=f)=�N)�deque)�support)�MISSING_C_DOCSTRINGS)�
import_helper)�threading_helper)�warnings_helper)�requires_limited_api)�suppress_immortalization)� expected_failure_if_gil_disabled)�Py_GIL_DISABLED)�assert_python_failure�assert_python_ok�run_python_until_end�	_testcapic�F�URSS5RSS5$)N�utf-8�replace�
�)�decoder)�errs �-C:\Python313\\Lib\test\test_capi\test_misc.py�
decode_stderrr;s ���:�:�g�y�)�1�1�$��;�;�c�H�[R"[SLS5"U5$)Nzsubinterpreters required)�unittest�skipIf�
_interpreters)�meths r�requires_subinterpretersr ?s%���?�?�=�D�0�5�7�7;�=�=rc��U$�N���selfs r�testfunctionr&Es���Krc�X�\rSrSr\R\5r\R\5rSrg)�InstanceMethod�Jr#N)	�__name__�
__module__�__qualname__�__firstlineno__r�instancemethod�idr&�__static_attributes__r#rrr(r(Js"��	�	!�	!�"�	%�B��+�+�L�9�Lrr(c��\rSrSrSr\R"5S5rSr\	R"\S5S5r\	R"\S5S5r
\	R"\S5S	5rS
rSrSrS
rSrSrSrSrSr\	R"\"\S5S5S5r\	R"\"\S5S5\R:"SSSSS9S55rSr\R@"S5S5r!\R@"S5S5r"S r#\	R"\S5S!5r$S"r%\&"5S#5r'\&"5S$5r(S%r)S&r*S'r+S(r,S)r-S*r.S+r/S,r0S-r1S.r2S/r3S0r4S1r5S2r6S3r7S4r8S5r9S6r:S7r;\<Rz"\>S89S95r?S:r@S;rAS<rBS=rCS>rDS?rES@rFSArGSBrHSCrISDrJSErKSFrLSGrMSHrNSIrOSJrPSKrQSLrRSMrSgN)O�CAPITest�Oc�<�[5nUR[U5UR55 URUR	5UL5 URURR
[R
5 UR[RR
[R
5 S[RlUR[RS5 UR[[URSS5 g)N�test�	attribute)
r(�assertEqualr/�
assertTruer&�__doc__r6�assertRaises�AttributeError�setattr�r%�insts  r�test_instancemethod�CAPITest.test_instancemethodRs����������D��4�7�7�9�-�����)�)�+�t�3�4�����*�*�2�2�L�4H�4H�I�����4�4�<�<�l�>R�>R�S�06��#�#�-�����/�/��8����.�'�4�3D�3D�k�SY�Zrc��[R"S5n[SU5up#UupEnURUS5 SR	5nURUR
5RU5U5 g)Nz�
            import _testcapi
            from test import support

            with support.SuppressCrashReport():
                _testcapi.crash_no_current_thread()
        �-crz�Fatal Python error: PyThreadState_Get: the function must be called with the GIL held, after Python initialization and before Python finalization, but the GIL is released (the current Python thread state is NULL))�textwrap�dedentrr7�encoder8�rstrip�
startswith)r%�code�
run_result�	_cmd_line�_rc�outr�msgs        r� test_no_FatalError_infinite_loop�)CAPITest.test_no_FatalError_infinite_loop]sw����� �
��!5�T�4� @��
�"�
��#�����c�"�;�=C�F�H�		�
	
����
�
��/�/��4��	rc�L�UR[[R5 gr")r:�
ValueErrorr�!make_memoryview_from_NULL_pointerr$s r�!test_memoryview_from_NULL_pointer�*CAPITest.test_memoryview_from_NULL_pointerss�����*�i�&Q�&Q�Rrz(_posixsubprocess required for this test.c��"SS[5nUR[S5 [R"SU"5SSSSS	S
SSS
SSSSSSSSSSSS5 SSS5 "SS[5nUR[[RSU"5SSSSS	S
SSS
SSSSSSSSSSSS5 g!,(df   N^=f)Nc��\rSrSrSrSrg)�1CAPITest.test_seq_bytes_to_charp_array.<locals>.Z�yc��g�N�r#r$s r�__len__�9CAPITest.test_seq_bytes_to_charp_array.<locals>.Z.__len__z���rr#N�r*r+r,r-r\r0r#rr�ZrWy���
rr`�indexingr[T�r[������	�
���
��F����c� �\rSrSrSrSrSrg)rW�c�"�[R$r")�sys�maxsizer$s rr\r]�s���{�{�"rc��g)N�xr#)r%�is  r�__getitem__�=CAPITest.test_seq_bytes_to_charp_array.<locals>.Z.__getitem__����rr#N)r*r+r,r-r\r|r0r#rrr`rW�s��
#�
r)�object�assertRaisesRegex�	TypeError�_posixsubprocess�	fork_execr:�MemoryError�r%r`s  r�test_seq_bytes_to_charp_array�&CAPITest.test_seq_bytes_to_charp_arrayvs���	��	��
#�
#�I�z�
:��&�&��A�C��V�A�a��!�A�b��B�r�"�T�$�r�RW�XZ�[]�^`�ac�di�
k�;�	��	�
	
���+�'7�'A�'A��A�C��V�A�a��!�A�b��B�r�"�T�$�r�RW�XZ�[]�^`�ac�di�	k�;�
:�s�2B0�0
B>c��"SS[5nUR[[RU"5S/SSSSSS	S
SSS
SSSSSSSSSSS5 g)Nc��\rSrSrSrSrg)�-CAPITest.test_subprocess_fork_exec.<locals>.Z�c��grZr#r$s rr\�5CAPITest.test_subprocess_fork_exec.<locals>.Z.__len__�r^rr#Nr_r#rrr`r��rarr`�1TrcrerfrgrhrirjrkrlrmrnroFrprqrrrs)rr:r�r�r�r�s  r�test_subprocess_fork_exec�"CAPITest.test_subprocess_fork_exec�sd��	��	�
	
���)�%5�%?�%?��#�t�f�T�&��1�Q�q��2�b��B�r�$�t�TV�W\�]_�`b�ce�fh�in�	prz6Signature information for builtins requires docstringsc�D�UR[RRS5 UR[RRS5 UR[R
RS5 UR[R
RS5 UR[RRS5 UR[RRS5 UR[RRS5 UR[RRS5 UR[RRS5 UR[RRS5 UR[RRS5 UR[RRS5 UR[RRS5 UR[RRS5 UR[RRS5 UR[RRS5 g)Nz This docstring has no signature.z[docstring_with_invalid_signature($module, /, boo)

This docstring has an invalid signature.zedocstring_with_invalid_signature2($module, /, boo)

--

This docstring also has an invalid signature.z%This docstring has a valid signature.z($module, /, sig)z>
This docstring has a valid signature and some extra newlines.z($module, /, parameter))r7r�no_docstringr9�__text_signature__�docstring_empty�docstring_no_signature� docstring_with_invalid_signature�!docstring_with_invalid_signature2�docstring_with_signature�#docstring_with_signature_but_no_doc�+docstring_with_signature_and_extra_newlinesr$s r� test_docstring_signature_parsing�)CAPITest.test_docstring_signature_parsing�s���	
����/�/�7�7��>�����/�/�B�B�D�I�����2�2�:�:�D�A�����2�2�E�E�t�L�����9�9�A�A�.�	0�����9�9�L�L�d�S�����C�C�K�K�
7�	�
	
����C�C�V�V�X\�]�����D�D�L�L�
<�	�	
����D�D�W�W�Y]�^�����;�;�C�C�3�	5�����;�;�N�N�Pc�d�����F�F�N�N�PT�U�����F�F�Y�Y��	!�	
����N�N�V�V�M�	O�����N�N�a�a�%�	'rc�n�[RnU"5nU"5nURX#-SX#45 URUS-SUS45 URSU-SSU45 UnXC-nURUSX#45 UnUS-nURUSUS45 SnXB-nURUSSU45 g)N�matmul�*�imatmul)r�
matmulTyper7)r%�M�m1�m2�os     r�&test_c_type_with_matrix_multiplication�/CAPITest.test_c_type_with_matrix_multiplication�s���� � ��
�S��
�S�������8�R�"4�5�����b��8�R��"4�5�����b��8�R��"4�5���	�������Y��/�0���	�R�������Y��B�/�0���	�������X�r�2�.�/rc��[R5nURURS5S5 URURSS5S5 g)Nr[)r[Nrd)rdrd)r�ipowTyper7�__ipow__)r%r�s  r�test_c_type_with_ipow�CAPITest.test_c_type_with_ipow�sE��
��� ��������A��	�2�������A�q�)�6�2rc��[R(aC[R"S5n[	SU5up#n[U5nUR
US5 gUR[5n[R5 SSS5 UR
[WR5S5 g!,(df   N4=f)Nz�
                import _testcapi
                from test import support

                with support.SuppressCrashReport():
                    _testcapi.return_null_without_error()
            rBa#Fatal Python error: _Py_CheckFunctionResult: a function returned NULL without setting an exception\nPython runtime state: initialized\nSystemError: <built-in function return_null_without_error> returned NULL without setting an exception\n\nCurrent thread.*:\n  File .*", line 6 in <module>\nzFreturn_null_without_error.* returned NULL without setting an exception)
r�Py_DEBUGrCrDr
r�assertRegexr:�SystemErrorr�return_null_without_error�str�	exception�r%rH�rcrLr�cms      r�test_return_null_without_error�'CAPITest.test_return_null_without_error�s�������?�?�$��D�1��t�<�L�B�S���$�C����S�4�
5��"�"�;�/�2��3�3�5�0����S����.�J�
K�0�/���.B1�1
B?c��[R(aC[R"S5n[	SU5up#n[U5nUR
US5 gUR[5n[R5 SSS5 UR
[WR5S5 g!,(df   N4=f)Nz�
                import _testcapi
                from test import support

                with support.SuppressCrashReport():
                    _testcapi.return_result_with_error()
            rBaqFatal Python error: _Py_CheckFunctionResult: a function returned a result with an exception set\nPython runtime state: initialized\nValueError\n\nThe above exception was the direct cause of the following exception:\n\nSystemError: <built-in function return_result_with_error> returned a result with an exception set\n\nCurrent thread.*:\n  File .*, line 6 in <module>\nzBreturn_result_with_error.* returned a result with an exception set)
rr�rCrDr
rr�r:r�r�return_result_with_errorr�r�r�s      r�test_return_result_with_error�&CAPITest.test_return_result_with_error�s�������?�?�$��D�1��t�<�L�B�S���$�C����S�
7�
8� �"�"�;�/�2��2�2�4�0����S����.�G�
H�0�/�r�c��[R"S5n[SU5up#n[U5nSU;aUR	US5 gURSU5 g)Nz�
            import _testcapi
            from test import support

            with support.SuppressCrashReport():
                _testcapi.getitem_with_error({1: 2}, 1)
        rBz
SystemError: aFatal Python error: _Py_CheckSlotResult: Slot __getitem__ of type dict succeeded with an exception set\nPython runtime state: initialized\nValueError: bug\n\nCurrent thread .* \(most recent call first\):\n  File .*, line 6 in <module>\n\nExtension modules: _testcapi \(total: 1\)\nz'returned a result with an exception set)rCrDr
rr��assertIn�r%rHr�rLrs     r�test_getitem_with_error� CAPITest.test_getitem_with_errorsc����� �
��-�T�4�8�����C� ���#�%����S�	C�

D�
�M�M�C�S�Irc	�
�[RnURU"S5S5 URU"S5S5 URU"S5/5 URU"S505 URU"S5S/045 URU"SS5S5 URU"S	S5S
5 URU"SS5S/5 UR[USS5 URU"S
SS5S5 URU"SSS5S5 URU"SSS5SS/5 URU"SSS5SS05 URU"SSSSS5SSS.5 URU"SS5S5 URU"SSS5S5 URU"S5S5 URU"SS5S5 URU"SS5S5 URU"SS5S5 URU"SSS5S5 URU"S SS5S5 URU"S!SS5S5 URU"S"SS5S5 URU"S#SS5S5 URU"S$SS5S5 URU"S%SS5S5 URU"S&SS5S5 URU"S'SS5S5 URU"S(SS5SS/5 URU"S)SS5SS/5 URU"S*SS5SS/5 URU"S+SS5SS/5 URU"S,SS5SS05 URU"S-SSSS5SSS.5 URU"S.SSSS5SSS.5 URU"S/SSSS5SSS.5 URU"S0SSSS5SSS.5 UR[US[
5 UR[US	[
5 UR[US[
5 UR[US[
5 UR[US
S[
5 UR[US
[
S5 UR[USS[
5 UR[US[
S5 UR[USS[
5 UR[US[
S5 UR[USS[
5 UR[US[
S5 g)1Nrz()r#z[]z{}z()[]{}�Or[z(O)�r[z[O]z{O}�OOrdrcz(OO)z[OO]z{OO}z{OOOO}��)r[r�z((O)))r�z((OO)))rcz 	,:zO,z   O   z	O	zO,OzO, OzO,	OzO OzO	Oz(O,O)z(O, O,)z	 ( O O ) z		(	O	O	)	z[O,O]z[O, O,]z	 [ O O ] z	 [	O	O	] z{O:O}z	{O:O,O:O}z
{O: O, O: O,}z
 { O O O O } z
	{	O	O	O	O	}	)r�
py_buildvaluer7r:r��NULL)r%�
buildvalues  r�test_buildvalue�CAPITest.test_buildvalue2s����,�,�
�����B���.�����D�)�2�.�����D�)�2�.�����D�)�2�.�����H�-��B��|�<�����C��+�Q�/�����E�1�-�t�4�����E�1�-��s�3����+�z�5�!�<�����D�!�Q�/��8�����F�A�q�1�6�:�����F�A�q�1�A�q�6�:�����F�A�q�1�A�q�6�:�����H�a��A�q�9�q�Q�<�H�����G�Q�/��9�����H�a��3�Y�?�����G�,�d�3�����D�!�,�a�0�����I�q�1�1�5�����G�Q�/��3�����E�1�a�0�&�9�����F�A�q�1�6�:�����G�Q��2�F�;�����E�1�a�0�&�9�����F�A�q�1�6�:�����G�Q��2�F�;�����I�q�!�4�f�=�����K��A�6��?�����$4�a��;�V�D�����G�Q��2�Q��F�;�����I�q�!�4�q�!�f�=�����K��A�6��A��?�����N�A�q�9�A�q�6�B�����G�Q��2�Q��F�;�����K��A�q�!�<�!��l�K�����O�Q��1�a�@�a�A�,�O�����O�Q��1�a�@�a�A�,�O�����$:�A�q�!�Q�G�Q�ST��V����+�z�3��=����+�z�5�$�?����+�z�5�$�?����+�z�5�$�?����+�z�4��D�A����+�z�4��q�A����+�z�6�1�d�C����+�z�6�4��C����+�z�6�1�d�C����+�z�6�4��C����+�z�6�1�d�C����+�z�6�4��Crc��[RnSSKJnJnJnJnJnJn URU"SU5U5 URU"SU5U5 URU"SU5U5 URU"SU5U5 URU"SU5U5 URU"SU5U5 URU"SS5S5 URU"SS	5S	5 URU"S
S5S5 URU"S[S
55S5 URU"SS5S5 URU"SS5S5 URU"SS5S5 URU"SS5[S55 URU"SS5[S55 URU"S[R5[[R55 UR[USS5 UR[US[RS-5 UR[USSS5 UR[USSS5 UR[USSSS5 g)Nr)�SHRT_MIN�SHRT_MAX�	USHRT_MAX�INT_MIN�INT_MAX�UINT_MAXr{�I�h�H�b�i�����B��c�A�A��������Cr[z(C )irdz[C ]iz{Ci }ir�)r�py_buildvalue_intsr�r�r�r�r�r�r7�ord�chrrw�
maxunicoder:rQ)r%r�r�r�r�r�r�r�s        r�test_buildvalue_ints�CAPITest.test_buildvalue_intsjs���1�1�
�W�W�����C��1�7�;�����C��1�7�;�����C��2�H�=�����C��2�H�=�����C��2�H�=�����C��3�Y�?�����C��-�s�3�����C��.��5�����C��-�s�3�����C��S��2�D�9�����C��-�w�7�����C��-�w�7�����C��,�g�6�����C��-�s�3�x�8�����C��-�s�3�x�8�����C����8�#�c�n�n�:M�N����*�j�#�r�:����*�j�#�s�~�~�a�7G�H�	
���*�j�'�2�q�A����*�j�'�2�q�A����*�j�(�B��1�Erc�,�[R5 gr")r�test_buildvalue_Nr$s rr��CAPITest.test_buildvalue_N�s���#�#�%rc�r�[R"U5n[SU5up#nURUS5 g)NrBs`_testcapimodule\.c:[0-9]+: _Py_NegativeRefcount: Assertion failed: object has negative ref count)rCrDr
r�r�s     r�check_negative_refcount� CAPITest.check_negative_refcount�s7�����t�$��,�T�4�8��������;�	<r�negative_refcountz"need _testcapi.negative_refcount()c�*�SnURU5 g)Nz�
            import _testcapi
            from test import support

            with support.SuppressCrashReport():
                _testcapi.negative_refcount()
        �r��r%rHs  r�test_negative_refcount�CAPITest.test_negative_refcount�s����	
�$�$�T�*r�decref_freed_objectz$need _testcapi.decref_freed_object()zuse after free on purposeT)�address�memory�ubc�*�SnURU5 g)Nz�
            import _testcapi
            from test import support

            with support.SuppressCrashReport():
                _testcapi.decref_freed_object()
        r�r�s  r�test_decref_freed_object�!CAPITest.test_decref_freed_object�s��
��	
�$�$�T�*rc�J�SSKJn Sn[S5HnU"U45nM g)Nr��MyList��)rr��range)r%r��Lr{s    r�test_trashcan_subclass�CAPITest.test_trashcan_subclass�s%��	%����t��A���t��A�r�cpuc�.�UR[5 gr")�do_test_trashcan_python_class�listr$s r�test_trashcan_python_class1�$CAPITest.test_trashcan_python_class1�s���*�*�4�0rc�2�SSKJn URU5 g)Nrr�)rr�r)r%r�s  r�test_trashcan_python_class2�$CAPITest.test_trashcan_python_class2�s��$��*�*�6�2rc��"SSU5nSHinSn[S5HnU"U45nXTlM U(aU4nURURS5 AUR	URS5 Mk g)Nc�8^�\rSrSrSrU4SjrU4SjrSrU=r$)�6CAPITest.do_test_trashcan_python_class.<locals>.PyListi�rc�J>�T=RS-
sl[TU]"U6 grZ)�num�super�__init__)r%�args�	__class__s  �rr�?CAPITest.do_test_trashcan_python_class.<locals>.PyList.__init__�s����
�
��"�
��� �$�'rc�0>�T=RS-slgrZ)r�r%rs �r�__del__�>CAPITest.do_test_trashcan_python_class.<locals>.PyList.__del__�s����
�
��"�
rr#)	r*r+r,r-rrrr0�
__classcell__�rs@r�PyListr�s����C�
(�
#�
#rr)rr[ir)r�attr�
assertGreaterrr7)r%�baser�parityrr{s      rr�&CAPITest.do_test_trashcan_python_class�sv��	#�T�	#��F��A��5�\���A�4�L����"���D�����v�z�z�1�-�����V�Z�Z��+�rc��UR[RRS5 UR[RRS5 g)N�somedocz(arg1, arg2))r7r�HeapDocCTyper9r�r$s r�&test_heap_ctype_doc_and_text_signature�/CAPITest.test_heap_ctype_doc_and_text_signature�s<��	
����/�/�7�7��C�����/�/�B�B�N�Src�X�UR[RRS5 gr")r7r�
NullTpDocTyper9r$s r�test_null_type_doc�CAPITest.test_null_type_doc�s������0�0�8�8�$�?rc�4�"SS[R5nU"5n[R"U5nUR	UR
S5 UR	URS5 AUR	US-
[R"U55 g)Nc�(^�\rSrSrU4SjrSrU=r$)�`CAPITest.test_subclass_of_heap_gc_ctype_with_tpdealloc_decrefs_once.<locals>.HeapGcCTypeSubclassi�c�0>�SUl[TU]	5 g�Nrq��value2rrrs �rr�iCAPITest.test_subclass_of_heap_gc_ctype_with_tpdealloc_decrefs_once.<locals>.HeapGcCTypeSubclass.__init__����� ����� �"r�r3�r*r+r,r-rr0rrs@r�HeapGcCTypeSubclassr/��
���
#�
#rr8rjrqr[)r�HeapGcCTyperw�getrefcountr7�valuer3)r%r8�subclass_instance�type_refcnts    r�:test_subclass_of_heap_gc_ctype_with_tpdealloc_decrefs_once�CCAPITest.test_subclass_of_heap_gc_ctype_with_tpdealloc_decrefs_once�s���	#�)�"7�"7�	#�
0�1���o�o�&9�:��	
���*�0�0�"�5����*�1�1�2�6�
�����q��#�/�/�:M�*N�Orc�^^�"SS[R5m"UU4SjST5mT"5n[R"T5n[R"T5nUR	UR
S5 UR	URS5 A[R(aUR	UTR5 OUR	US-
TR5 UR	US-TR5 UR	US-
[R"T55 UR	U[R"T55 g)Nc�(^�\rSrSrU4SjrSrU=r$)�dCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once.<locals>.Ai�c�0>�SUl[TU]	5 gr1r2rs �rr�mCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once.<locals>.A.__init__�r5rr6r7rs@rr�rC�r9rr�c�8>^�\rSrSrU4SjrUU4SjrSrU=r$)�dCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once.<locals>.Bic�">�[TU]5 gr")rrrs �rr�mCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once.<locals>.B.__init__s����� �"rc�>�TUl[R"T5Tl[R"T5Tlgr")rrwr;�
refcnt_in_del)r%r�r�s ��rr�lCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once.<locals>.B.__del__s*���!"���"%�/�/�!�"4���"%�/�/�!�"4��rr)r*r+r,r-rrr0r)rr�r�s@��rr�rGs���
#�
5�
5rr�rjrqr[)
rr:rwr;r7r<r3rr�rK)r%r=r>�new_type_refcntr�r�s    @@r�Ptest_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once�YCAPITest.test_subclass_of_heap_gc_ctype_with_del_modifying_dunder_class_only_decrefs_once�s���	#�	�%�%�	#�
	5�	5��	5��C���o�o�a�(���/�/�!�,��	
���*�0�0�"�5����*�1�1�2�6�����
���[�!�/�/�:����[�1�_�a�o�o�>�����1�,�a�o�o�>�	
����q��#�/�/�!�*<�=�	
����#�/�/�!�*<�=rc�Z�[R5nSUlURURS5 URURUR
5 URURSS05 [R5nUR0UR
5 g�Nr��foo)r�HeapCTypeWithDictrRr7�dictobj�__dict__r=s  r�test_heaptype_with_dict� CAPITest.test_heaptype_with_dict"s}���*�*�,�����������2�&�������t�}�}�5��������r�{�3��*�*�,������T�]�]�+rc�z�[R5nSUlURURS5 URURSS05 [R5nUR0UR5 [R5n[R5nX2lX#lAAgrQ)r�HeapCTypeWithManagedDictrRr7rUr��a)r%r>rZr�s    r�test_heaptype_with_managed_dict�(CAPITest.test_heaptype_with_managed_dict,s����1�1�3�����������2�&����������4��1�1�3������T�]�]�+��.�.�0���.�.�0������
�qrc�R�"SS[R5nU"5nX"lAg)Nc��\rSrSrSrg)�2CAPITest.test_sublclassing_managed_dict.<locals>.Ci=r#N�r*r+r,r-r0r#rrr�r_=���rr�)rrY�spam)r%r�r{s   r�test_sublclassing_managed_dict�'CAPITest.test_sublclassing_managed_dict;s%��	�	�2�2�	�
�C����
rc�Z�[R5nSUlURURS5 URURUR
5 URURSS05 [R5nUR0UR
5 grQ)r�HeapCTypeWithNegativeDictrRr7rTrUr=s  r� test_heaptype_with_negative_dict�)CAPITest.test_heaptype_with_negative_dictDs}���2�2�4�����������2�&�������t�}�}�5��������r�{�3��2�2�4������T�]�]�+rc��[R5n[R"U5nUR	U"5U5 UR	UR
U5 gr")r�HeapCTypeWithWeakref�weakref�refr7�weakreflist�r%r>rls   r�test_heaptype_with_weakref�#CAPITest.test_heaptype_with_weakrefNsF���-�-�/���k�k�$���������%�����)�)�3�/rc��[R5n[R"U5nUR	U"5U5 gr"�r�HeapCTypeWithManagedWeakrefrkrlr7rns   r�"test_heaptype_with_managed_weakref�+CAPITest.test_heaptype_with_managed_weakrefTs0���4�4�6���k�k�$���������%rc��"SS[R5nU"5n[R"U5nUR	U"5U5 g)Nc��\rSrSrSrg)�5CAPITest.test_sublclassing_managed_weakref.<locals>.Ci[r#Nr`r#rrr�rx[rarr�rr)r%r�r>rls    r�!test_sublclassing_managed_weakref�*CAPITest.test_sublclassing_managed_weakrefYs=��	�	�5�5�	��s���k�k�$���������%rc��"SS[R[R5n"SS[R[R5nX4HpnU"5n[R"U5nURU"5U5 XDlA[R"U"55nURU"5S5 Mr g)Nc��\rSrSrSrg)�3CAPITest.test_sublclassing_managed_both.<locals>.C1idr#Nr`r#rr�C1r}drarr~c��\rSrSrSrg)�3CAPITest.test_sublclassing_managed_both.<locals>.C2igr#Nr`r#rr�C2r�grarr�)rrsrYrkrlr7rb�assertIs)r%r~r��clsr>rls      r�test_sublclassing_managed_both�'CAPITest.test_sublclassing_managed_bothbs���	��6�6�	�8Z�8Z�	�	��3�3�Y�5Z�5Z�	��8�C��5�D��+�+�d�#�C����S�U�D�)��I���+�+�c�e�$�C��M�M�#�%��&�rc�f�[R5n[U5nURUS5 g)Ns1234)r�HeapCTypeWithBuffer�bytesr7)r%r>r�s   r�test_heaptype_with_buffer�"CAPITest.test_heaptype_with_bufferss)���,�,�.���$�K������G�$rc�T�[R5n[R"[R5nUR	UR
S5 UR	URS5 AUR	US-
[R"[R55 g�Nrjrqr[)r�HeapCTypeSubclassrwr;r7r<r3)r%r=r>s   r�9test_c_subclass_of_heap_ctype_with_tpdealloc_decrefs_once�BCAPITest.test_c_subclass_of_heap_ctype_with_tpdealloc_decrefs_oncexs}��%�7�7�9���o�o�i�&A�&A�B��	
���*�0�0�"�5����*�1�1�2�6�
�����q��#�/�/�)�:U�:U�*V�Wrc�8�[R5n[R"[R5n[R"[R5nURURS5 URURS5 A[R(a+URU[RR5 O-URUS-
[RR5 URUS-[RR5 URUS-
[R"[R55 URU[R"[R55 gr�)r�HeapCTypeSubclassWithFinalizerrwr;r�r7r<r3rr�rK)r%r=r>rMs    r�Otest_c_subclass_of_heap_ctype_with_del_modifying_dunder_class_only_decrefs_once�XCAPITest.test_c_subclass_of_heap_ctype_with_del_modifying_dunder_class_only_decrefs_once�s��%�D�D�F���o�o�i�&N�&N�O���/�/�)�*E�*E�F��	
���*�0�0�"�5����*�1�1�2�6�
����
���[�)�*R�*R�*`�*`�a����[�1�_�i�.V�.V�.d�.d�e�����1�,�i�.I�.I�.W�.W�X�	
����q��#�/�/�)�:b�:b�*c�d�	
����#�/�/�)�:U�:U�*V�Wrc���[R5nURURS5 SUlURURS5 U?URURS5 g)Nrjrlr)r�HeapCTypeSetattrr7�pvaluer<)r%�objs  r�test_heaptype_with_setattro�$CAPITest.test_heaptype_with_setattro�sX���(�(�*��������R�(���	�������R�(��I�������Q�'rc��[RnUR[U[55 [RU5nUR
U[5 URURS5 UR[	U5U5 U"SS05nUR
U[5 URURS5 g)N�HeapCTypeViaMetaclass�PyClassViaMetaclassr#)
r�HeapCTypeMetaclassr8�
issubclass�type�pytype_fromspec_meta�assertIsInstancer7r*r��r%�	metaclass�ts   r�#test_heaptype_with_custom_metaclass�,CAPITest.test_heaptype_with_custom_metaclass�s����0�0�	����
�9�d�3�4�
�*�*�9�5�����a��&�������%<�=��
�
�d�1�g�y�)�
�+�R��4�����a��&�������%:�;rc��[RnUR[U[55 [RU5nUR
U[5 URURS5 UR[	U5U5 UR[S5 U"SS05 SSS5 g!,(df   g=f)Nr�zcannot create .* instancesr�r#)r�HeapCTypeMetaclassNullNewr8r�r�r�r�r7r*r�r�r�r�s   r�,test_heaptype_with_custom_metaclass_null_new�5CAPITest.test_heaptype_with_custom_metaclass_null_new�s����7�7�	����
�9�d�3�4�
�*�*�9�5�����a��&�������%<�=��
�
�d�1�g�y�)��
#�
#�I�/K�
L��+�R��4�M�
L�
L�s�(B<�<
C
c��[RnUR[[R[55 SnUR[U5 [RU5nSSS5 g!,(df   g=f)Nz1Metaclasses with custom tp_new are not supported.)r�HeapCTypeMetaclassCustomNewr8r�r�r�r�r�)r%r�rMr�s    r�.test_heaptype_with_custom_metaclass_custom_new�7CAPITest.test_heaptype_with_custom_metaclass_custom_new�sW���9�9�	����
�9�#H�#H�$�O�P�A��
�
#�
#�I�s�
3��.�.�y�9�A�4�
3�
3�s�A5�5
Bc�$�[Rn"SSUS9n[R"S[45 [RU5nSSS5 UR
[WU55 URX15 g!,(df   N;=f)Nc��\rSrSrSrg)�FCAPITest.test_heaptype_with_custom_metaclass_deprecation.<locals>.Basei�r#Nr`r#rr�Baser��rarr�)r�z8.* _testcapi.Subclass .* custom tp_new.*in Python 3.14.*)	rr�r�check_warnings�DeprecationWarning�make_type_with_baser8r�r�)r%r�r��subs    r�/test_heaptype_with_custom_metaclass_deprecation�8CAPITest.test_heaptype_with_custom_metaclass_deprecation�sw���9�9�	�
	�Y�	��
+�
+�K�M_�`���/�/��5�C��	
���
�3��-�.����c�-���s�B�
Bc�`�UR[5 "SS[R[R5nSSS5 UR[5 "SS[R[R5nSSS5 g!,(df   NU=f!,(df   g=f)Nc��\rSrSrSrg)�MCAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict.<locals>.Both1i�r#Nr`r#rr�Both1r�����rr�c��\rSrSrSrg)�MCAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict.<locals>.Both2i�r#Nr`r#rr�Both2r��r�rr�)r:r�rrjrS)r%r�r�s   r�5test_multiple_inheritance_ctypes_with_weakref_or_dict�>CAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict�ss��
�
�
�y�
)�
�	�6�6�	�8S�8S�
�*��
�
�y�
)�
�	�3�3�Y�5S�5S�
�*�
)�*�
)��*�
)�s�)B�)B�
B�
B-c�F�UR[5 "SS[R[5nSSS5 UR[5 "SS[R
[5nSSS5 "SS[R[5n"SS[R[5nU"5nURS	5 [UR5 U"5nURS	5 [UR5 [R[R4HKn[R[R
4Hn"S
SXg5nM "SS
X65n	"SSXF5n
MM g!,(df   GNQ=f!,(df   GN'=f)Nc��\rSrSrSrg)�\CAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin.<locals>.C1i�r#Nr`r#rrr~r��r�rr~c��\rSrSrSrg)�\CAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin.<locals>.C2i�r#Nr`r#rrr�r��r�rr�c��\rSrSrSrg)�\CAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin.<locals>.C3i�r#Nr`r#rr�C3r��rarr�c��\rSrSrSrg)�\CAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin.<locals>.C4i�r#Nr`r#rr�C4r��rarr�rc��\rSrSrSrg)�[CAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin.<locals>.Sir#Nr`r#rr�Sr�s��rr�c��\rSrSrSrg)�\CAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin.<locals>.B1ir#Nr`r#rr�B1r�r�rr�c��\rSrSrSrg)�\CAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin.<locals>.B2ir#Nr`r#rr�B2r�r�rr�)r:r�rrSrrjrYrs�appendr�rU�__weakref__)r%r~r�r�r�r>r��cls2r�r�r�s           r�Gtest_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin�PCAPITest.test_multiple_inheritance_ctypes_with_weakref_or_dict_and_other_builtin�s(��
�
�
�y�
)�
�Y�0�0�$�
�*��
�
�y�
)�
�Y�3�3�T�
�*�	��3�3�T�	�	��6�6��	��t�����A���D�M�M���t�����A���D�����6�6�	�8]�8]�^�C�"�4�4�i�6T�6T�U�����V�
�R�
�
�R�
�
_�+*�
)��*�
)�s�E?�F�?
F�
F c��[S5HNnURUS9 UR[5 [RU5 SSS5 SSS5 MP g!,(df   N=f!,(df   Ms=f)Nrd)�variant)r�subTestr:r�r�create_type_from_repeated_slots)r%r�s  r�(test_pytype_fromspec_with_repeated_slots�1CAPITest.test_pytype_fromspec_with_repeated_slotssW���Q�x�G����g��.��&�&�{�3��=�=�g�F�4�/�.� �3�3��/�.�s"�A0�A�
A0�
A-�)A0�0
A?	��categoryc��[R"SSS9 "SS5nUR[5 [RU5nSSS5 W"5nUR
UR5S5 UR[S5 SUlSSS5 UR
UR5S5 S	UlUR
UR5S
5 g!,(df   N�=f!,(df   Nh=f)Nz-creating immutable classes with mutable bases)r�rn)�removec��\rSrSrSrSrg)�CCAPITest.test_immutable_type_with_mutable_base.<locals>.MutableBaseic��g)N�originalr#r$s rr�HCAPITest.test_immutable_type_with_mutable_base.<locals>.MutableBase.meths��!rr#N)r*r+r,r-rr0r#rr�MutableBaser�s��
"rr�r�z-cannot set 'meth' attribute of immutable typec��g)N�
overriddenr#r$s r�<lambda>�@CAPITest.test_immutable_type_with_mutable_base.<locals>.<lambda>#s��,rc��g)N�changedr#r$s rr�r�'s��	rr�)
�warnings�_deprecated�assertWarnsr�r�make_immutable_type_with_baser7rr�r�)r%r��ImmutableSubclass�instances    r�%test_immutable_type_with_mutable_base�.CAPITest.test_immutable_type_with_mutable_bases���	���;�G�	M�	"�	"��
�
�0�
1� )� G� G��!��2�%�&���������*�5��
#�
#��?�A�&?��"�A�	
�������*�5�2����������)�4�!2�
1��A�A�s�C*�	C;�*
C8�;
D	c	���SSKJn SnSn"SS5nSnUH�upgnURXgUS9 URU"X&5U5 URU"U*U5S	U-5 URU"U"U5U5U5 URU"X65U5 URU"U*U5S	U-5 URU"U"U5U5U5 SSS5 M� UR	[
X"S
5S5 UR	[
X"S5S5 UR	[
US
S5 UR	[
USS5 UR	[USS5 g!,(df   GM^=f)
Nr)�pynumber_tobase�{�c� �\rSrSrSrSrSrg)�*CAPITest.test_pynumber_tobase.<locals>.IDXi.c��Xlgr"��val)r%rs  rr�3CAPITest.test_pynumber_tobase.<locals>.IDX.__init__/s���rc��UR$r"rr$s r�	__index__�4CAPITest.test_pynumber_tobase.<locals>.IDX.__index__1s���x�x�rrN)r*r+r,r-rrr0r#rr�IDXr�.s��
�
 rr))rd�	0b1111011�C0b10000000000000000000000000000000000000000000000000000000000000000)rh�0o173�0o2000000000000000000000)rj�123�18446744073709551616)��0x7b�0x10000000000000000)r!�st�lt�-g�^@rjr)rr�r�r7r:r�r�)	r%r��small_number�large_numberr�
test_casesr!�small_target�large_targets	         r�test_pynumber_tobase�CAPITest.test_pynumber_tobase*s`��-�����	 �	 �;�
�1;�,�D�����4�\��J�� � ���!D�l�S�� � ��,���!E�s�\�GY�Z�� � ���\�1B�D�!I�<�X�� � ���!D�l�S�� � ��,���!E�s�\�GY�Z�� � ���\�1B�D�!I�<�X�K�J�1;�	
���)�_�c�%�j�"�E����)�_�c�%�j�"�E����)�_�e�R�@����)�_�e�R�@����+���Q�?�K�J�s�B)E'�'
E7	c�P�[R5nURUS5 g�Nz<NULL>)r�pyobject_repr_from_nullr7�r%�ss  r�test_pyobject_repr_from_null�%CAPITest.test_pyobject_repr_from_nullHs ���-�-�/������H�%rc�P�[R5nURUS5 gr)r�pyobject_str_from_nullr7rs  r�test_pyobject_str_from_null�$CAPITest.test_pyobject_str_from_nullLs ���,�,�.������H�%rc�P�[R5nURUS5 g)Ns<NULL>)r�pyobject_bytes_from_nullr7rs  r�test_pyobject_bytes_from_null�&CAPITest.test_pyobject_bytes_from_nullPs ���.�.�0������I�&rc��[RnSnU"U5n[USS5nURURUR5 g)Ns%# -*- coding: latin1 -*-
print('¤')
z<string>�exec)r�Py_CompileString�compiler7�	co_consts)r%�_compilerH�result�expecteds     r�test_Py_CompileString�CAPITest.test_Py_CompileStringTsE���-�-��?���$����4��V�4������)�)�8�+=�+=�>rc�z�[R"S5n/n[[S5(aUR	S5 [
RS:waUR	S5 UH@nURUS9 UR[URU55 SSS5 MB g!,(df   MT=f)N�ctypes�
get_native_id�PyThread_get_thread_native_id�nt�
Py_FrozenMain)�name)
r�
import_module�hasattr�_threadr��osr:r�r8�	pythonapi)r%r5�namesr:s    r�test_export_symbols�CAPITest.test_export_symbols\s����,�,�X�6�����7�O�,�,��L�L�8�9��7�7�d�?��L�L��)��D����4��(������(8�(8�$� ?�@�)�(��(�(�s�8&B+�+
B:	c�4�"SS5nU"5n[RU5 URUR05 U"5nURURSS05 [RU5 URUR05 g)Nc��\rSrSrSrSrg)�+CAPITest.test_clear_managed_dict.<locals>.Ciuc��SUlgrZ�rZr$s rr�4CAPITest.test_clear_managed_dict.<locals>.C.__init__vs	����rrGN)r*r+r,r-rr0r#rrr�rEus��
rr�rZr[)r�clear_managed_dictr7rU)r%r�r�s   r�test_clear_managed_dict� CAPITest.test_clear_managed_dictssx��	�	�
�C���$�$�Q�'�������R�(�
�C��������c�!�W�-��$�$�Q�'�������R�(rc�0�SSKnSn[RU5nURX1R5 URX2R5 UR[5 [RS5 SSS5 g!,(df   g=f)Nrc��gr"r#r#rr�some�-CAPITest.test_function_get_code.<locals>.some����r)	�typesr�function_get_coder��CodeTyper7�__code__r:r�)r%rQrNrHs    r�test_function_get_code�CAPITest.test_function_get_code�sh���	��*�*�4�0�����d�N�N�3�����}�}�-�
�
�
�{�
+��'�'��-�,�
+�
+�s�(B�
Bc��Sn[RU5nURU[5 UR	X!R
5 UR
[5 [RS5 SSS5 g!,(df   g=f)Nc��gr"r#r#rrrN�0CAPITest.test_function_get_globals.<locals>.some�rPr)r�function_get_globalsr��dictr7�__globals__r:r�)r%rN�globals_s   r�test_function_get_globals�"CAPITest.test_function_get_globals�se��	��1�1�$�7�����h��-�����#3�#3�4�
�
�
�{�
+��*�*�4�0�,�
+�
+���A>�>
Bc��Sn[RU5nURU[5 UR	X!R
5 UR
[5 [RS5 SSS5 g!,(df   g=f)Nc��gr"r#r#rrrN�/CAPITest.test_function_get_module.<locals>.some�rPr)r�function_get_moduler�r�r7r+r:r�)r%rN�modules   r�test_function_get_module�!CAPITest.test_function_get_module�sc��	��.�.�t�4�����f�c�*�������1�
�
�
�{�
+��)�)�$�/�,�
+�
+�r`c�&�SSS.Sjjn[RU5nURUS5 URX!R5 UR	[
5 [RS5 SSS5 g!,(df   g=f)NT��kw2c��gr"r#��	pos_only1�	pos_only2�zero�optional�kw1rjs      rrN�1CAPITest.test_function_get_defaults.<locals>.some����
r��prN)r�function_get_defaultsr7�__defaults__r:r��r%rN�defaultss   r�test_function_get_defaults�#CAPITest.test_function_get_defaults�su��!$�!�	��
	��2�2�4�8������>�2�����#4�#4�5�
�
�
�{�
+��+�+�D�1�,�
+�
+�s�#B�
Bc��SSS.SjjnSnUR[RU5U5 URURU5 UR	[
5 [R
US5 SSS5 UR[RU5U5 URURU5 UR	[
5 [R
SS5 SSS5 UR[RU5U5 URURU5 Sn[R
X5 UR[RU5U5 URURU5 Sn[R
X5 UR[RU5U5 URURU5 "SS	[5nU"S
SS/S45n[R
X5 UR[RU5U5 URURU5 [R
US5 UR[RU5S5 URURS5 g!,(df   GN?=f!,(df   GN�=f)
NTric��gr"r#rls      rrN�1CAPITest.test_function_set_defaults.<locals>.some�rsrrtr[r#)�qr[Nc��\rSrSrSrg)�5CAPITest.test_function_set_defaults.<locals>.tuplesubi�r#Nr`r#rr�tuplesubr��s��srr�rcrZr�)r7rrvrwr:r��function_set_defaults�tuple)r%rN�old_defaults�new_defaultsr�s     r�test_function_set_defaults�#CAPITest.test_function_set_defaults�s3��!$�!�	��
	�&������8�8��>��M�����*�*�L�9�
�
�
�{�
+��+�+�D�!�4�,�����8�8��>��M�����*�*�L�9�
�
�
�{�
+��+�+�A�r�2�,�����8�8��>��M�����*�*�L�9�%���'�'��;�����8�8��>��M�����*�*�L�9����'�'��;�����8�8��>��M�����*�*�L�9�"�u�"���#�s��T� :�;���'�'��;�����8�8��>��M�����*�*�L�9�	�'�'��d�3�����8�8��>��E�����*�*�D�1�A,�
+��
,�
+�s�$J3�K�3
K�
Kc�*�SSS.Sjjn[RU5nURUSS05 URX!R5 UR	[
5 [RS5 SSS5 g!,(df   g=f)NTric��gr"r#rls      rrN�4CAPITest.test_function_get_kw_defaults.<locals>.some�rsrrjrt)r�function_get_kw_defaultsr7�__kwdefaults__r:r�rxs   r�test_function_get_kw_defaults�&CAPITest.test_function_get_kw_defaults�sy��!$�!�	��
	��5�5�d�;������E�4�=�1�����#6�#6�7�
�
�
�{�
+��.�.�t�4�,�
+�
+�s�%B�
Bc��S	SS.SjjnSS0nUR[RU5U5 URURU5 UR	[
5 [R
US5 SSS5 UR[RU5U5 URURU5 UR	[
5 [R
S05 SSS5 UR[RU5U5 URURU5 SS0n[R
X5 UR[RU5U5 URURU5 0n[R
X5 UR[RU5U5 URURU5 "SS[5nU"SS05n[R
X5 UR[RU5U5 URURU5 [R
US5 UR[RU5S5 URURS5 g!,(df   GN>=f!,(df   GN�=f)
NTric��gr"r#rls      rrN�4CAPITest.test_function_set_kw_defaults.<locals>.some�rsrrjr[�r[rdr�c��\rSrSrSrg)�7CAPITest.test_function_set_kw_defaults.<locals>.dictsubir#Nr`r#rr�dictsubr�s��Srr�rt)r7rr�r�r:r��function_set_kw_defaultsr[)r%rNr�r�r�s     r�test_function_set_kw_defaults�&CAPITest.test_function_set_kw_defaults�s5��!$�!�	��
	��t�}������;�;�D�A�<�P�����,�,�l�;�
�
�
�{�
+��.�.�t�Q�7�,�����;�;�D�A�<�P�����,�,�l�;�
�
�
�{�
+��.�.�q�"�5�,�����;�;�D�A�<�P�����,�,�l�;��y�)���*�*�4�>�����;�;�D�A�<�P�����,�,�l�;����*�*�4�>�����;�;�D�A�<�P�����,�,�l�;� �d� ���t�}�-���*�*�4�>�����;�;�D�A�<�P�����,�,�l�;�	�*�*�4��6�����;�;�D�A�4�H�����,�,�d�3�A,�
+��
,�
+�s�&J4�K�4
K�
Kc�P�"SS[R5nU"5nSUlSUlSUlURURS5 URURS5 URURS5 U?UR
UR5 g)Nc��\rSrSrSrSrg)�;CAPITest.test_unstable_gc_new_with_extra_data.<locals>.Datai+)�x�yr#N)r*r+r,r-�	__slots__r0r#rr�Datar�+s��"�Irr�rjrq�)r�ObjExtraDatar�r��extrar7�assertIsNone)r%r��ds   r�$test_unstable_gc_new_with_extra_data�-CAPITest.test_unstable_gc_new_with_extra_data*s���	#�9�)�)�	#�
�F�����������������b�!�������b�!�������"�%�
�G����!�'�'�"rc�<�"SS5nSSKJnJnJnJn SSKJn [R5n[SSSS4USS	S
S
4USSS
S
4U[S3[SS44H�up�p�nUR[U5S9 URU"U5U	5 URU"U5U
5 URU"U5U5 URU"U5U5 SSS5 M� SUl
URU"U5S5 URU"U5S5 URU"U5S
5 URU"U5S
5 SUl	SUlURU"U5[S35 URU"U5[5 URU"U5S5 URU"U5S5 SUl
URU"U5S5 URU"U5S5 URU"U5S5 URU"U5S5 SUl
URU"U5S5 SUl
URU"U5S5 SUl
URU"U5S5 g!,(df   GMA=f)Nc��\rSrSrSrg)�+CAPITest.test_get_type_name.<locals>.MyTypei9r#Nr`r#rr�MyTyper�9rarr�r)�
get_type_name�get_type_qualname�get_type_fullyqualname�get_type_module_name)�OrderedDict�int�builtinszcollections.OrderedDict�collectionsr�z_testcapi.HeapTypeNameTyper�HeapTypeNameTypez,.CAPITest.test_get_type_name.<locals>.MyTyper��r��test_moduleztest_module.HeapTypeNameType�my_name�my_qualnamez.my_qualname�	my_modulezmy_module.my_qualname�__main__r�)rr�r�r�r�r�r��get_heaptype_for_namer�r*r��reprr7r+r,)
r%r�r�r�r�r�r��htr��fullname�modname�qualnamer:s
             r�test_get_type_name�CAPITest.test_get_type_name8s���	�	�	:�	:�	,�
�
,�
,�
.��
�
�
�
�
�	
�
�
&�
�
�
�	
�
�
)�
�
�
�	
!�
��z�E�
F�
�
:�
�	
�!7
�2�C�7�d�,���$�s�)��,�� � �!7��!<�h�G�� � �!5�c�!:�G�D�� � �!2�3�!7��B�� � ��s�!3�T�:�	-�,�-7
�:&��
����/��3�5S�T����-�b�1�=�A����*�2�.�0B�C�����r�*�,>�?�$���+������/��7�H�:�\�9R�S����-�f�5�x�@����*�6�2�M�B�����v�.�	�:�(������/��7�9P�Q����-�f�5�{�C����*�6�2�M�B�����v�.�	�:�'������/��7��G�&������/��7��G�������/��7��G�G-�,�s
�9A!J�
J	c�v�SnU"5nUR[RU5UR5 g)Nc3�# �Sv� g7fr"r#r#rr�genf�(CAPITest.test_gen_get_code.<locals>.genfs���E���)r7r�gen_get_code�gi_code)r%r��gens   r�test_gen_get_code�CAPITest.test_gen_get_code~s+����f������/�/��4�c�k�k�Brc��[RnURUR[45 URUR
[5 gr")r�HeapCTypeWithBasesSlotr7�	__bases__r��__base__�r%r�s  r�test_tp_bases_slot�CAPITest.test_tp_bases_slot�s7���.�.����������/�������s�+rc�N�UR[S[R5 g)NzPy_tp_bases is not a tuple)r�r�r�%create_heapctype_with_none_bases_slotr$s r�test_tp_bases_slot_none� CAPITest.test_tp_bases_slot_none�s������(��;�;�	
rr#N)Tr*r+r,r-r?r�requires_subprocessrNrSr�
skipUnlessr�r�r�rrr�r�r�r�r�r�r�r�r�r�r<rr��skip_if_sanitizerr�r�requires_resourcer	rrr'r+r
r?rNrVr[rcrgrortryr�r�r�r�r�r�r�r�r�r�r�r�r�ignore_warningsr�r�rr r$r(r2rArJrUr^rfrzr�r�r�r�r�r�r�r�r0r#rrr2r2Os���	[�
� � �"��#��*S����)�+U�V�k�W�k�"���)�+U�V�p�W�p��_�_�)�M�O�''�O�''�R0�"3�K�: H�DJ�<6D�pF�@&�<������,?�@�=�?�+�?�+������,A�B�?�A����:�'+�D�T�C�+�C�A�+��
���u�%�1�&�1�
���u�%�3�&�3�,�8�_�_�)�M�O�T�O�T�@���P� �P�"��&>� �&>�P,�
��,�0�&�
&�'�"%�

X�X�6(�
<�
5�:�.�"��@G��$�$�.@�A�5�B�5�6@�<&�&�'�?�A�.)�.�	1�	0�2�$/2�b5�$/4�b#�CH�LC�
,�

rr2c�f�\rSrSr\S5rSrSrSrSr	Sr
SrS	rS
r
SrSrS
rSrg)�TestHeapTypeRelativei�c�@^�U4Sjn[SSSSSSSS	[R[RS-
[RS-15nUH9nUH0n[UUS
9nTR"S0UD6 U"S0UD6 SSS5 M2 M; g!,(df   MH=f)Nc�|>�[R"X*5up#pEpgUS:Xa9T
RURUR5 T
RUS5 O�SURS4US4Xa-S4Xg-S4URS4/n[	U[
R"S5S9n	T
RX�S	U	3S
9 T
RURXg-5 T
RXq-
[R5 T
RU[R-S5 T
RU[R-S5 g)Nr)rzstart of objectzend of base dataz
subclass datazend of requested subcls datazend of reserved subcls dataz
end of object)�keyz$Offsets not in expected order, got: �rM)	�_testlimitedcapi�make_sized_heaptypesr7�
__basicsize__�sorted�operator�
itemgetter�
assertLess�ALIGNOF_MAX_ALIGN_T)�extra_base_size�
extra_sizer��Subr��data_ptr�data_offset�	data_size�offsets�ordered_offsetsr%s          �r�check�@TestHeapTypeRelative.test_heaptype_relative_sizes.<locals>.check�sN��� �5�5�#�[�2�
B�D�x�;�
�Q��� � ��!3�!3�S�5F�5F�G�� � ��A�.�
+��'�'�);�<� �/�2� �-�/M�N� �,�.K�L��&�&��8�
��#)��h�6I�6I�!�6L�"M��� � ��>��>O�P�!�R�
� � ��!2�!2�K�4K�L����	� 6� 0� D� D�F�
���[�+;�+O�+O�O�QR�S����Y�)9�)M�)M�M�q�Qrrr[rdr�r�rgrhr��r�r�r#)r�rr�r[r�)r%r��sizesr�r�rs`     r�test_heaptype_relative_sizes�1TestHeapTypeRelative.test_heaptype_relative_sizes�s����"	R�H��1�a��A�q�!�S��,�,��,�,�Q�.��,�,�Q�.�0�1�� %�O�#�
��O�'1�3���\�\�)�D�)��M�D�M�*�)�$� %�*�)�s�4	B�
Bc�l�[RSSS5nUR[U5/SQ5 g)Nr[rdr�r�)r�HeapCCollectionr7r)r%�
collections  r�test_HeapCCollection�)TestHeapTypeRelative.test_HeapCCollection�s+���.�.�q�!�Q�7�
�����j�)�9�5rc�P�[SSSSSSSS[R[RS-
[RS-15nUH�nURUS	9 [R
"[RU*SS5nU"SSS5nUR5 UR[U5/S
Q5 UR5nUR[U5U5 UR[U5S1:*SU<35 SSS5 M� g!,(df   M�=f)Nrr[rdr�r�rgrhr�)r�r�zgot )r�rr�r�r��subclass_var_heaptyperr��set_data_to_3sr7r�get_data�assertGreaterEqual�lenr8�set)r%r�r�r�r��mems      r�test_heaptype_inherit_itemsize�3TestHeapTypeRelative.test_heaptype_inherit_itemsize�s�����1�a��A�q�!�S��,�,��,�,�Q�.��,�,�Q�.�0�1�� �J������4�&�<�<��-�-�
�{�A�q�B�� ��A�q�\�
��)�)�+�� � ��j�!1�9�=� �)�)�+���'�'��C��*�=�����C��Q�C��4��w��@�5�4� �4�4�s
�B.D�
D%	c��UR[SS9 [R"[SS5 SSS5 g!,(df   g=f)NzACannot extend variable-size class without Py_TPFLAGS_ITEMS_AT_ENDr����r)r:r�r��subclass_heaptyper�r$s r�!test_heaptype_invalid_inheritance�6TestHeapTypeRelative.test_heaptype_invalid_inheritance�s@��
�
�
�{�$;��<�
�.�.�s�B��:�<�<�<�s	�;�
A	c��[SSSSSSSS[R[RS-
[RS-15nUGH�nUGH�nUGHKnURX#US	9 XC:Ga�[R
"X#*US
5nUR
5SnU"5nURURUR55 URS5 URURUR55 URUR5S5 SUlURURUR55 URUR5S5 URUR5UR5 URUR5UR5 UR[5 UR!5 SSS5 UR[5 UR#S5 SSS5 O7UR[5 [R
"X#*US
5nSSS5 UR[5 [R
"X#US
5nSSS5 SSS5 GMN URX#S
9 UR[5 [R
"X#*SS
5nSSS5 SSS5 GM� GM� g!,(df   GN=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   GM�=f!,(df   Ny=f!,(df   GM)=f)Nrr[rdr�r�rgrhr�)r�r��offsetTrmrnr�r�)r�rr�r�r��make_heaptype_with_member�mror7�memb�get_memb�set_membr�get_memb_offsetr�r:r��get_memb_relative�set_memb_relative)r%r�r�r�rr�r�r�s        r�test_heaptype_relative_members�3TestHeapTypeRelative.test_heaptype_relative_members�s�����1�a��A�q�!�S��,�,��,�,�Q�.��,�,�Q�.�0�1�� %�O�#�
�#�F����o�ek��l�!�.�"2�"L�"L� /��f�d�#L�C�#&�7�7�9�Q�<�D�'*�u�H� �,�,�X�]�]�H�<M�<M�<O�P�$�-�-�b�1� �,�,�X�]�]�H�<M�<M�<O�P� �,�,�X�->�->�-@�"�E�,.�H�M� �,�,�X�]�]�H�<M�<M�<O�P� �,�,�X�->�->�-@�"�E� �3�3�H�4L�4L�4N�PT�Pb�Pb�c� �O�O�H�,D�,D�,F��HY�HY�Z�!%�!2�!2�;�!?� (� :� :� <�"@�!%�!2�!2�;�!?� (� :� :�1� =�"@�!?�"&�!2�!2�;�!?�&6�&P�&P�$3�[�&�$�'P��"@�"�.�.�{�;�"2�"L�"L� /�V�T�#K�C�<�/m�l�$�6�\�\�/�\�Y��*�*�;�7�.�H�H�+�[�"�d�D��8�Z�Y�9$� %�$"@�!?��!?�!?��"@�!?��<�;��/m�l��68�7��Z�Y�s��)E9M	�"K?�3M	�L�"M	�L"�M	�7L3�M	�4M(�
M	�$M(�?
L�	M	�
L�M	�"
L0�,M	�3
M�=M	�
M
�
M%
�!M(�(
M8c��UR[S5 [R"SSSS5 SSS5 UR[S5 [R"SSSS5 SSS5 UR[S5 [R"SSSS5 SSS5 [R"SSSS5nU"5nUR[S5 UR	5 SSS5 UR[S	5 URS5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   Nr=f!,(df   g=f)
Nz3With Py_RELATIVE_OFFSET, basicsize must be negativeri�Tz.Member offset out of range \(0\.\.-basicsize\)r	r�z,PyMember_GetOne used with Py_RELATIVE_OFFSETz,PyMember_SetOne used with Py_RELATIVE_OFFSET)r�r�r�rrr)r%r�r�s   r�%test_heaptype_relative_members_errors�:TestHeapTypeRelative.test_heaptype_relative_members_errorssM��
�
#�
#��F�H�
�6�6�q�$��4�H�H��
#�
#��N�P��6�6�q�"�d�D�I�P��
#�
#��N�P��6�6�q�"�b�$�G�P��8�8��B��4�H���5��
�
#�
#��L�N��&�&�(�N��
#�
#��L�N��&�&�q�)�N�N�!H�H��P�P��P�P��N�N��N�N�s;�D)�D:�E�E�E-�)
D7�:
E�
E�
E*�-
E;c��UR[5 [RS5 SSS5 UR[5 [RS5 SSS5 g!,(df   NB=f!,(df   g=f�Nr)r:r�r�pyobject_getitemdatar$s r�test_pyobject_getitemdata_error�4TestHeapTypeRelative.test_pyobject_getitemdata_error s]��
�
�
�y�
)��*�*�4�0�*��
�
�y�
)�
�*�*�1�-�*�
)�*�
)��*�
)���A(�	A9�(
A6�9
Bc�^	�SSKJm	 SnSnSnSnSnUR[R	U55 URUR
5 U"S5n[R	U5nURU5 URUR
5 U"SS	5"S
S5n[R	U5nURU5 URUR
5 U"S5n[R	U5nUR
XvR
5 URU[5 UR
[U5S5 UR
[U5[URR55 UR[U	4S
jU555 URUSRS5 U"SS	5"S
S5n[R	U5nUR
XvR
5 URU[5 UR
[U5S5 UR
[U5[URR55 UR[U	4SjU555 UR
UVs/sHo�RPM sn/SQ5 gs snf)Nr��CellTypec��gr"r#r#rr�regular_function�HTestHeapTypeRelative.test_function_get_closure.<locals>.regular_function.s��rc��SnU$)Nc��gr"r#)�arg2�arg3s  r�inner�WTestHeapTypeRelative.test_function_get_closure.<locals>.unused_one_level.<locals>.inner0s��3rr#��arg1r,s  r�unused_one_level�HTestHeapTypeRelative.test_function_get_closure.<locals>.unused_one_level/s
��&��Lrc��SnU$)Nc��SnU$)Nc��gr"r#)�arg5�arg6s  rr,�kTestHeapTypeRelative.test_function_get_closure.<locals>.unused_two_levels.<locals>.decorator.<locals>.inner4s��srr#)r+�arg4r,s   r�	decorator�\TestHeapTypeRelative.test_function_get_closure.<locals>.unused_two_levels.<locals>.decorator3s
��*��rr#�r/r*r9s   r�unused_two_levels�ITestHeapTypeRelative.test_function_get_closure.<locals>.unused_two_levels2s��
��rc�^�U4SjnU$)Nc�>�TU-U-$r"r#)r*r+r/s  �rr,�UTestHeapTypeRelative.test_function_get_closure.<locals>.with_one_level.<locals>.inner8s����d�{�T�)�)rr#r.s` r�with_one_level�FTestHeapTypeRelative.test_function_get_closure.<locals>.with_one_level7s
���
*��Lrc�^^�UU4SjnU$)Nc�>^^�UUUU4SjnU$)Nc�&>�TT-T-T-U-U-$r"r#)r5r6r/r*r+r8s  ����rr,�iTestHeapTypeRelative.test_function_get_closure.<locals>.with_two_levels.<locals>.decorator.<locals>.inner=s!����$�;��-��4�t�;�d�B�Brr#)r+r8r,r/r*s`` ��rr9�ZTestHeapTypeRelative.test_function_get_closure.<locals>.with_two_levels.<locals>.decorator<s���C�C��rr#r;s`` r�with_two_levels�GTestHeapTypeRelative.test_function_get_closure.<locals>.with_two_levels;s���
��rr[rdr�r�rec3�<># �UHn[UT5v� M g7fr"��
isinstance��.0�cellr$s  �r�	<genexpr>�ATestHeapTypeRelative.test_function_get_closure.<locals>.<genexpr>W�����K�7�4�J�t�X�6�6�7���c3�<># �UHn[UT5v� M g7fr"rKrMs  �rrPrQ`rRrS)r[rdr�r�)rQr$r�r�function_get_closure�__closure__r7r�r�rrT�co_freevarsr8�all�
cell_contents)
r%r&r0r<rArH�func�closurerOr$s
         @r�test_function_get_closure�.TestHeapTypeRelative.test_function_get_closure+s3���"�#�	�	�
	�	�	
���)�8�8�9I�J�K����*�6�6�7���"���0�0��6�����'�"����$�*�*�+� ��A�&�q�!�,���0�0��6�����'�"����$�*�*�+��a� ���0�0��6������"2�"2�3����g�u�-�����W��q�)�����W��s�4�=�=�+D�+D�'E�F�����K�7�K�K�L������
�0�0�!�4��q�!�$�Q��*���0�0��6������"2�"2�3����g�u�-�����W��q�)�����W��s�4�=�=�+D�+D�'E�F�����K�7�K�K�L�����A���,�,��A�%�	'��As�0Kc��UR[5 [RS5 SSS5 UR[5 [RS5 SSS5 g!,(df   NB=f!,(df   g=frZ)r:r�rrUr$s r�test_function_get_closure_error�4TestHeapTypeRelative.test_function_get_closure_errordsW��
�
�
�{�
+��*�*�1�-�,�
�
�
�{�
+��*�*�4�0�,�
+�,�
+��
+�
+�r!c���SSKJn SnSnUn[RXA"S5U"S545 [R	U5nURUVs/sHofRPM snSS/5 URURVs/sHofRPM snSS/5 U"S5n[RUU"S5U"S5U"S545 [R	U5nURUVs/sHofRPM sn/SQ5 URURVs/sHofRPM sn/SQ5 gs snfs snfs snfs snf)	Nrr#c��gr"r#r#rr�function_without_closure�PTestHeapTypeRelative.test_function_set_closure.<locals>.function_without_closurem���rc�^�U4SjnU$)Nc�>�T$r"r#��args�rr,�\TestHeapTypeRelative.test_function_set_closure.<locals>.function_with_closure.<locals>.innero�����
rr#�rir,s` r�function_with_closure�MTestHeapTypeRelative.test_function_set_closure.<locals>.function_with_closuren�
���
��Lrr[rdr�r�)rQr$r�function_set_closurerUr7rYrV)r%r$rcrmrZr[r�s       r�test_function_set_closure�.TestHeapTypeRelative.test_function_set_closurejs.��"�+�	�
(���&�&�t�h�q�k�8�A�;�-G�H��0�0��6�����7�;�7�a�/�/�7�;�a��V�D����4�3C�3C�D�3C�a�/�/�3C�D�q�!�f�M�$�Q�'���&�&�t�(0���X�a�[�(�1�+�'N�	P��0�0��6�����7�;�7�a�/�/�7�;�Y�G����4�3C�3C�D�3C�a�/�/�3C�D�i�P��<��D��<��Ds�E�E!�E&�<E+c�d�SnSn[RUS5 UR[RU55 URUR5 [RUS5 UR[RU55 URUR5 g)Nc��gr"r#r#rrrc�UTestHeapTypeRelative.test_function_set_closure_none.<locals>.function_without_closure�rerc�^�U4SjnU$)Nc�>�T$r"r#rhs�rr,�aTestHeapTypeRelative.test_function_set_closure_none.<locals>.function_with_closure.<locals>.inner�rkrr#rls` rrm�RTestHeapTypeRelative.test_function_set_closure_none.<locals>.function_with_closure�ror)rrpr�rUrV)r%rcrms   r�test_function_set_closure_none�3TestHeapTypeRelative.test_function_set_closure_none�s���+�	�
	�&�&�'?��F�����*�*�+C�D�	F����2�>�>�?��&�&�'<�d�C�����*�*�+@�A�	C����/�;�;�<rc��SnUR[5 [RSS5 SSS5 UR[5 [RUS5 SSS5 UR	UR
5 [RUS5 UR
[RU5S5 UR
UR
S5 g!,(df   N�=f!,(df   N�=f)Nc��gr"r#r#rrrc�WTestHeapTypeRelative.test_function_set_closure_errors.<locals>.function_without_closure�rerr#r[rc)r:r�rrpr�rVr7rU)r%rcs  r� test_function_set_closure_errors�5TestHeapTypeRelative.test_function_set_closure_errors�s���+�
�
�
�{�
+��*�*�4��4�,��
�
�{�
+��*�*�+C�Q�G�,����2�>�>�?�	�&�&�'?��H�����*�*�+C�D�f�	N����1�=�=�v�F�,�
+��,�
+�s�C�
C0�
C-�0
C>r#N)r*r+r,r-r	r�r�rrrrrr\r_rqrzrr0r#rrr�r��sT���/"��/"�b6�
A�$;�&D�P*�*.�7'�r1�Q�,=�"Grr�c�
�\rSrSrSrSSS.SjrSSjr\R"5S	5r	S
r
SrSr"S
S\
R5r\R"5S5r\R"5S5r\S5rSrg)�TestPendingCallsi�c��^�U4Sjn[U5HLn[R"[R"5S-5 [RU5(aMLM g)Nc�(>�TRS5 gr"�r���ls�r�callback�;TestPendingCalls.main_pendingcalls_submit.<locals>.callback�����
�H�H�T�Nrg{�G�z�?)r�time�sleep�randomr�_pending_threadfunc)r%r��nr�r{s `   r�main_pendingcalls_submit�)TestPendingCalls.main_pendingcalls_submit�sM���	�
�q��A��J�J�v�}�}��t�+�,���0�0��:�:���rTF)�main�ensurec�t^�U4SjnU(a[RXRSUS9$[R"XRSUS9$)Nc�(>�TRS5 gr"r�r�s�rr��6TestPendingCalls.pendingcalls_submit.<locals>.callback�r�rF)�blocking�ensure_added)rr��_testinternalcapi�pending_threadfunc)r%r�r�r�r�r�s `    r�pendingcalls_submit�$TestPendingCalls.pendingcalls_submit�sN���	�
��0�0��:?�>D�1�F�
F�%�7�7��AF�EK�M�
MrNc��Sn[U5U:wax[	S5HnXU-nM	 U(a!UR
R
5(dMNUS-
nURUS:SU[U54-5 [U5U:waMxg)Nrrr[i'z(timeout waiting for %i callbacks, got %i)rr�verbose�printr�event�is_setr8)r%r��numadded�context�countr{rZs       r�pendingcalls_wait�"TestPendingCalls.pendingcalls_wait�s������!�f�� ���4�[���C��!��w�}�}�3�3�5�5���Q�J�E��O�O�E�E�M�:�H�c�!�f�;M�M�
O��!�f�� �rc��Sn/n"SS[5nU"5n/UlSUlXR-UlSUl[
R"5Ul[
R"5Ul	[UR5Vs/sH#n[
R"URU4S9PM% nn[R"U5 URURX5 SSS5 gs snf!,(df   g=f)N� c��\rSrSrSrg)�=TestPendingCalls.test_main_pendingcalls_threaded.<locals>.fooi�r#Nr`r#rrrRr��s��$rrRrdr��targetr)rr�r��nThreads�	nFinished�	threading�Lock�lock�Eventr�r�Thread�main_pendingcalls_threadr�
start_threadsr�)r%r��threadsrRr�r{s      r�test_main_pendingcalls_threaded�0TestPendingCalls.test_main_pendingcalls_threaded�s���
�����&���%����	���	��	�	�>������ �~�~�'���!���)��
�"�'�"2�"2�3�5�3�q��#�#�4�+H�+H�*1��5�3�	�5��
+�
+�G�
4��"�"�7�9�9�a�9�5�
4��5�5�
4�s�*C6�C;�;
D	c�*�URURUR5 UR U=RS-
slURnSSS5 WUR:XaURR5 gg!,(df   N:=f!UR U=RS-
slURnSSS5 O!,(df   O=fWUR:XaURR5 ff=frZ)r�r�r�r�r�rr�r�r�r�r)r%r�r�s   rr��)TestPendingCalls.main_pendingcalls_thread�s���		$��)�)�'�)�)�W�Y�Y�?�����!�!�Q�&�!�#�-�-�	���
�G�,�,�,��
�
�!�!�#�-��������!�!�Q�&�!�#�-�-�	������
�G�,�,�,��
�
�!�!�#�-�s.�&B�#B�
B�
D�)#C�	D�
C#�3Dc�P�/nSnURX5 URX5 g)N�@)r�r�)r%r�r�s   r�#test_main_pendingcalls_non_threaded�4TestPendingCalls.test_main_pendingcalls_non_threaded�s*��

�����%�%�a�+����q�$rc�<�URS5 Sn/nURUSSS9nURX#5 URUS5 /nURX!SS9nURX#5 URX15 /nURX!S-SS9nURX#5 URX15 SSS5 URS5 Sn/nURUSSS9nURX#5 URUS5 /nURX!SS9nURX#5 URX15 /nURX!S-SS9nURX#5 URX15 SSS5 g!,(df   N�=f!,(df   g=f)	Nz	main-onlyr�r[T)r�z
not main-onlyi,F)r�r�r�r7)r%�
maxpendingr��addeds    r�test_max_pending�!TestPendingCalls.test_max_pendings���
�\�\�+�
&��J��A��,�,�Q���,�=�E��"�"�1�,����U�A�&��A��,�,�Q��,�F�E��"�"�1�,����U�/��A��,�,�Q�1��4�,�H�E��"�"�1�,����U�/�!'�$�\�\�/�
*��J��A��,�,�Q���,�>�E��"�"�1�,����U�A�&��A��,�,�Q��,�G�E��"�"�1�,����U�/��A��,�,�Q�1��5�,�I�E��"�"�1�,����U�/�%+�
*�%'�
&��$+�
*�s�B$E<�B$F
�<
F
�
Fc�T�\rSrSr\R
rS
SjrSrSr	Sr
SrSrS	r
g)�TestPendingCalls.PendingTaski+Nc��X lXlX0l[R"5UlSUlSUlSUlgr")	r/�req�notify_doner��	get_ident�creator_tid�
requester_tid�
runner_tidr0)r%r��taskidr�s    rr�%TestPendingCalls.PendingTask.__init__/s9���G��H�*��(�2�2�4�D��!%�D��"�D�O��D�Krc��[R"5UlUR5 URbUR	5 ggr")r�r�r��_runr�r$s r�run� TestPendingCalls.PendingTask.run9s8��'�1�1�3�D�O��I�I�K����+�� � �"�,rc�&�URUlgr")r�r0r$s rr��!TestPendingCalls.PendingTask._run@s
���(�(�D�Krc�n^^^�[R"5TlUUU4SjmTRTSS9 g)Nc�z>�[R"5T;aTRTSS9 gTR5 g)NT�r�)r�r��_add_pendingr�)r�r%�worker_tidss���rr��BTestPendingCalls.PendingTask.run_in_pending_call.<locals>.callbackFs5���
�&�&�(��;��%�%�h�T�%�B�����
rTr�)r�r�r�r�)r%r�r�s``@r�run_in_pending_call�0TestPendingCalls.PendingTask.run_in_pending_callCs.���!*�!4�!4�!6�D��
�
���h�T��:rc�B�[R"URU4S9$)Nr�)r�r�r�)r%r�s  r�
create_thread�*TestPendingCalls.PendingTask.create_threadQs#���#�#��/�/�!�^��
rc�j�URc&[R"S5 URcM%gg�N�{�G�z�?)r0r�r�r$s r�wait_for_result�,TestPendingCalls.PendingTask.wait_for_resultWs$���+�+�%��
�
�4� ��+�+�%r)r�r/r�r�r�r0r�)NN)r*r+r,r-r�r�r�rr�r�r�r�r�r0r#rr�PendingTaskr�+s+��(�;�;��	�	#�	#�	;�	�	!rr�c�^�SnURU5mU4Sjn[R"US9n[R"U/5 SSS5 URTRU5 g!,(df   N+=f)Nz1Spam spam spam spam. Lovely spam! Wonderful spam!c��>�[R"5nTRU15n[R"U/5 TR5 SSS5 g!,(df   g=fr")r�r�r�rr�r�)�tidr��tasks  �r�do_the_work�NTestPendingCalls.test_subthreads_can_handle_pending_calls.<locals>.do_the_work`sK����%�%�'�C��"�"�C�5�)�A�!�/�/���4��$�$�&�5�4�4�s�A�
A(�r�)r�r�r�rr�r7r0)r%�payloadr�r�r�s    @r�(test_subthreads_can_handle_pending_calls�9TestPendingCalls.test_subthreads_can_handle_pending_calls[sf���E������(��	'�

���K�0��
�
+�
+�Q�C�
0��1�	
������g�.�1�
0�s�A-�-
A;c	�^^^^^^�[R"5nUR[R"5RU5 [5m[5m[R"5mUU4SjnU4SjmUU4SjnU4SjmU4Sjn/n[S5H0nURSU3UUS9nURU5 U"U5 M2 TR5 UU4S	jnS
mUU4Sjn	[S5V
s/sHn
[R"U	S
9PM nn
[R"U5 UVs/sHo�RPM n
n[S5V
s/sHn
[R"X�4S9PM nn
[R"U5 SSS5 U"5 SmSSS5 UVs/sHo�RPM nnUR!X5 UH�nUR#SUR$35 UR'UR(U5 UR'UR(UR5 UR!UR(U5 SSS5 M� gs sn
fs snfs sn
f![a Smef=f!,(df   N�=f![a Smef=f!,(df   GN=fs snf!,(df   M�=f)Nc�J>�TRU5 TRS5 g)NTr�)r��_active�_queues ��r�	queue_put�QTestPendingCalls.test_many_subthreads_can_handle_pending_calls.<locals>.queue_putus����M�M�$���N�N�4� rc�f>�TR5nU$![a [Ref=fr")�popleft�
IndexError�queue�Empty)r�r�s �r�	queue_get�QTestPendingCalls.test_many_subthreads_can_handle_pending_calls.<locals>.queue_getxs6���
"��~�~�'���K���
"��k�k�!�
"�s��0c�x>�TR5 T(dTR5 gg![a gf=fr")�pop�release�RuntimeError)r��
_done_locks��r�queue_task_done�WTestPendingCalls.test_many_subthreads_can_handle_pending_calls.<locals>.queue_task_done~s1����K�K�M��3��&�&�(���$�3�s�,�
9�9c�>�T(+$r"r#)r�s�r�queue_empty�STestPendingCalls.test_many_subthreads_can_handle_pending_calls.<locals>.queue_empty�s����:�rc�F>�TR5 TR5 gr")�acquirer�)rs�r�
queue_join�RTestPendingCalls.test_many_subthreads_can_handle_pending_calls.<locals>.queue_join�s������ ���� rrqzrequest )r�r�r�c�>�T(agT"5nURU5 M#![Ra gf=fr")r�r�r�)r�r��doner�s  ��r�	add_tasks�QTestPendingCalls.test_many_subthreads_can_handle_pending_calls.<locals>.add_tasks�sE�������$�;�D��(�(��5���
�{�{����s�&�=�=Fc��>�T"5(d,T(ag[R"S5 T"5(dM,T(d [R"S5 T(dMggr�)r�r�)rrs��r�	run_tasks�QTestPendingCalls.test_many_subthreads_can_handle_pending_calls.<locals>.run_tasks�s=���!�m�m����
�
�4� �"�m�m�
��
�
�4� ��drr�r�r�Tztask )r�r�r7�main_thread�identrr�rr�r�rr�rr��
BaseExceptionr��assertNotInr�r/�assertNotEqualr�)r%�main_tidr�rr	�tasksr{r�r
r�_�worker_threadsr�r�r��runner_tidsr�rr�rrr�s                @@@@@@r�-test_many_subthreads_can_handle_pending_calls�>TestPendingCalls.test_many_subthreads_can_handle_pending_callsks~����&�&�(������.�.�0�6�6��A�����'���^�^�%�
�	!�	�	3�	�	!����r��A��#�#��q�c�N��+�$��D�

�L�L����d�O��	����	6���	!�$)��8�-�#+�a�$�*�*�)�<�#+�	�-�
�
+�
+�N�
;�
�0>�?��1�w�w���?�$)�!�H�.�$,�q�%�+�+�9�>�R�$,��.�%�3�3�G�<���=�����<�&.3�3�U��|�|�U��3�����/��D�����d�g�g�Y�/�0��#�#�D�$6�$6��A��#�#�D�$6�$6����H�� � ��!3�!3�[�A�1�0���1-��
@��.��
)��#�����=�<��!�
����
��!<�
;��&4�1�0�sy�I1�8J3�:J"�>I6�J"�"I;�J"�J�J"�:K�AK
�6
J"�J�J�
J	�J"�"J0�0J3�3
K�

K	c�
^^^^^^^^^^^�SnSm[R"5mTRU4Sj5 [R"TS5 U4SjnTR	S5 U"5ummU"5umm[
R
"5S-mUUUU4Sjn[R"US	9n[R"U/5 [R"TS
5 [R"T5n[R"TS5 SSS5 TRW[!T55 SSS5 TR	S5 U"5ummU"5umm[
R
"5S-mUUUU4S
jn[R"US	9n[R"U/5 [R"TS
5 [R"T5n[R"TS5 SSS5 TRW[!T55 SSS5 TR	S5 U"5ummU"5ummU"5unm[
R
"5S-mUUUUU4SjnSmSm[R4UUU4Sjjn[R"US	9n	[R"US	9n
[R"X�/5 T(d
T(dM
[R"TS5 T(dC[
R""S5 [
R
"5T:�a[%S5eT(dMC[R"US
5nSSS5 [ R'WS5nTRU[!T55 SSS5 TR	S5 U"5ummU"5ummU"5unm[
R
"5S-mUUUUU4SjnSmSm[R4UUU4SjjnUUUU4Sjn[R"US	9n	[R"US	9n
[R"US	9n
[R"X�U
/5 SSS5 [R"US
5n[ R'US5nTRU[!T55 SSS5 g!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   N�=f!,(df   g=f)N�rc�0>�[R"T5$r")r�destroy��interpids�rr��?TestPendingCalls.test_isolated_subinterpreter.<locals>.<lambda>�s���
� 5� 5�h� ?rz�if True:
            import json
            import os
            import threading
            import time
            import _testinternalcapi
            from test.support import threading_helper
            c�>^^�[R"5ummTRU4Sj5 TRU4Sj5 TT4$)Nc�0>�[R"T5$r"�r>�close)�rs�rr��TTestPendingCalls.test_isolated_subinterpreter.<locals>.create_pipe.<locals>.<lambda>��
���B�H�H�Q�Krc�0>�[R"T5$r"r')�ws�rr�r*�r+r)r>�pipe�
addCleanup)r)r-r%s@@�r�create_pipe�BTestPendingCalls.test_isolated_subinterpreter.<locals>.create_pipe�s5����7�7�9�D�A�q��O�O�/�0��O�O�/�0��a�4�Krz"add in main, run in subinterpreterr�c
�H>�[R"TSTSTSTS35 g)Na<if True:
                    # Wait until this interp has handled the pending call.
                    waiting = False
                    done = False
                    def wait(os_read=os.read):
                        global done, waiting
                        waiting = True
                        os_read(a
, 1)
                        done = True
                    t = threading.Thread(target=wait)
                    with threading_helper.start_threads([t]):
                        while not waiting:
                            pass
                        os.write(��, b'\0')
                        # Loop to trigger the eval breaker.
                        while not done:
                            time.sleep(0.01)
                            if time.time() > zT:
                                raise Exception('timed out!')
                    �r�
run_string�r#�r_done�timeout�w_readys����r�do_work�>TestPendingCalls.test_isolated_subinterpreter.<locals>.do_work�sA����(�(��8!�"(��)"�#*��+.�/6�Y�7�#4�rr�r[r�z-add in main, run in subinterpreter sub-threadc
�H>�[R"TSTSTSTS35 g)Nz�if True:
                    waiting = False
                    done = False
                    def subthread():
                        while not waiting:
                            pass
                        os.write(r3aO:
                                raise Exception('timed out!')
                    t = threading.Thread(target=subthread)
                    with threading_helper.start_threads([t]):
                        # Wait until this interp has handled the pending call.
                        waiting = True
                        os.read(z=, 1)
                        done = True
                    r4r6s����rr:r;sA����(�(��8"�#*��+.�/6�Y�7!�"(��)�!4�rz"add in subinterpreter, run in mainc
�v>�[R"TS5 [R"TSTSTSTS35 g�Nr[z�if True:
                    # Add the pending call and wait for it to finish.
                    actual = _testinternalcapi.pending_identify(zX)
                    # Signal the subinterpreter to stop.
                    os.write(z&, b'\0')
                    os.write(z4, actual.to_bytes(1, 'little'))
                    �r>�readrr5�r#�
main_interpid�r_ready�w_data�w_dones�����r�add_job�>TestPendingCalls.test_isolated_subinterpreter.<locals>.add_job2�K��������#��(�(��8A�AN��P�$�X�&�$�X�&�4�rFc� >�SmU"TS5 Smg�NTr[r#��os_readrr7�waitings ���r�wait�;TestPendingCalls.test_isolated_subinterpreter.<locals>.wait>���������"��rr��
timed out!�littlez(add in subinterpreter, run in sub-threadc
�v>�[R"TS5 [R"TSTSTSTS35 gr>r?rAs�����rrFrGYrHrc� >�SmU"TS5 SmgrJr#rKs ���rrNrOerPrc��>�T(d
T(dM
[R"TS5 T(dD[R"S5 [R"5T:�a[	S5eT(dMCgg)Nr�r�rQ)r>�writer�r��	Exception)rr8r9rMs����r�	subthread�@TestPendingCalls.test_isolated_subinterpreter.<locals>.subthreadjsM���!��"�'�����%�(���J�J�t�$��y�y�{�W�,�'��5�5��$r)r�creater/r5r�r�r�r�rr�r>r@r��pending_identifyrVr7r�r�rW�
from_bytes�start�join)r%�maxtextr0r:r��actual�r_datarFrN�t1�t2�textrX�t3rr#rBr7rCr8rDrEr9rMs`             @@@@@@@@@@r�test_isolated_subinterpreter�-TestPendingCalls.test_isolated_subinterpreter�s(�������
� �'�'�)�����?�@�� � ��0
�	�	��\�\�>�
?�*�}��G�W�'�M�N�F�F��i�i�k�B�&�G�
�
�*� � ��0�A�!�/�/���4������#�*�;�;�H�E�������'�5�
���V�S��]�3�E@�H�\�\�I�
J�*�}��G�W�'�M�N�F�F��i�i�k�B�&�G�
�
�(� � ��0�A�!�/�/���4������#�*�;�;�H�E�������'�5�
���V�S��]�3�CK�F�\�\�>�
?�*�}��G�W�'�M�N�F�F�'�M�N�F�F��i�i�k�B�&�G�
�
��G��D��W�W�
�
�
�!�!��1�B��!�!��.�B�!�/�/���9�!��"�'�����%�(���J�J�t�$��y�y�{�W�,�'��5�5��$��w�w�v�q�)��:��^�^�D�(�3�F����V�S��%7�8�K@�N�\�\�D�
E�*�}��G�W�'�M�N�F�F�'�M�N�F�F��i�i�k�B�&�G�
�
��G��D��W�W�
�
�

6�
6��!�!��1�B��!�!��.�B��!�!��3�B�!�/�/����=��>��7�7�6�1�%�D��^�^�D�(�3�F����V�S��%7�8�QF�V	�}5�4��7@�
?��|5�4��5K�
J��x:�9��3@�
?��T>�=��GF�
E�V	�s��(A!S
�	AR;�#S
�
A!S1�+AS�0#S1�,BT�	T�AT�<T�9T�%B;T8� T'�"AT8�;
S
	�S
�
S�
S.	�)S1�1
T�
T	�
T�
T$�'
T5	�1T8�8
Ur#r")r*r+r,r-r�r�r�r�requires_working_threadingr�r�r�r�rQ�SimpleNamespacer�r�rr rfr0r#rrr�r��s���
�15�U�
M�$�&�0�0�2�:�3�:�(
$�%�%0�N.!�e�+�+�.!�`�0�0�2�
/�3�
/��0�0�2�\B�3�\B�|�_4��_4rr�c��\rSrSr\R
"\"\S5S5S5r\R
"\"\S5S5S5r	Sr
\R
"\"\S5S5S5r\R"\
SLS	5\R
"\"\S5S5\"5S
555rSr\R"\SLS5\"5S
55rSrg)�SubinterpreterTesti�r.zrequires os.pipe()c���SSKn[R"5up#SRU5n[	US5n[
R"U5nURUS5 UR[R"U5[[R55 UR[R"U5[U55 SSS5 g!,(df   g=f)Nrz�if 1:
            import sys, builtins, pickle
            with open({:d}, "wb") as f:
                pickle.dump(id(sys.modules), f)
                pickle.dump(id(builtins), f)
            �rb)r�r>r.�format�openr�run_in_subinterpr7r�pickle�loadr/rw�modules)r%r�r)r-rH�f�rets       r�test_subinterps�"SubinterpreterTest.test_subinterps�s�����w�w�y����
��q�	�	
��!�T�]�a��*�*�4�0�C����S�!�$�������A���3�;�;��@�������A���8��=�	�]�]�s�BC�
C%c�B�[R"5upSRU5n[US5n[R
"U5nUR
US5 UR
[R"U5SSS.5 SSS5 g!,(df   g=f)Naaif 1:
            import pickle
            with open({:d}, "wb") as f:

                @(lambda x:x)  # Py 3.9
                def noop(x): return x

                a = (b := f'1{{2}}3') + noop('x')  # Py 3.8 (:=) / 3.6 (f'')

                async def foo(arg): return await arg  # Py 3.5

                pickle.dump(dict(a=a, b=b), f)
            rmr�123xr)rZr�)	r>r.rnrorrpr7rqrr)r%r)r-rHrtrus      r�(test_subinterps_recent_language_features�;SubinterpreterTest.test_subinterps_recent_language_features�sx���w�w�y������q�	�	
��!�T�]�a��*�*�4�0�C����S�!�$����V�[�[��^�6��-F�G��]�]�s�AB�
Bc���Sn[R"5nUR[R"U5SS5 [R"5nURX#S5 URX#S5 g)Na�if 1:
        import sys, _testinternalcapi

        # Any config value would do, this happens to be the one being
        # double checked at the time this test was written.
        config = _testinternalcapi.get_config()
        config['int_max_str_digits'] = 55555
        config['parse_argv'] = 0
        _testinternalcapi.set_config(config)
        sub_value = _testinternalcapi.get_config()['int_max_str_digits']
        assert sub_value == 55555, sub_value
        rz%subinterp code failure, check stderr.z7Expected get_config() to return a new dict on each callzJCAUTION: Tests executed after this may be running under an altered config.)r��
get_configr7rrp�assertIsNot)r%rH�
before_config�after_configs    r�(test_py_config_isoloated_per_interpreter�;SubinterpreterTest.test_py_config_isoloated_per_interpreter�st��
��*�4�4�6�
�����1�1�$�7��@�	B�(�3�3�5������I�	K�	
����<�	=rc� �SnSnSnSnSnSnX-U-U-U-U-n/SQnUV	s/sHn	SU	3PM
 n
n	S	U
S
'SU
S'S
U
S'US4US4X2-S4S.nS1n[(aS[UR55H6n
[[	X�55nUS(aM#X�	URU
5 M8 UR
5H�up�[[	X�55nUunnUUS.nURU
5 [R"5unn[R"SUS35n[R"U5n[R"U40UD6nURUS
5 UR!5nSSS5 ["R$"W5nURUU5 SSS5 M� UH�n
[[	X�55nURU
5 [R"S5nUR'[(R*5 [R"U40UD6 SSS5 SSS5 M� gs sn	f!,(df   N�=f!,(df   GM�=f!,(df   ND=f!,(df   M�=f)Nr�r������)�obmalloc�forkr+r��daemon_threads�
extensions�own_gil�allow_�use_main_obmallocr�check_multi_interp_extensions���r�r�TF))TTTTTTT)TFFFFFF)FFFTFTF)FFFFFFF��
feature_flagsr�z�
                    import _testinternalcapi, json, os
                    settings = _testinternalcapi.get_interp_settings()
                    with os.fdopen(zX, "w") as stdin:
                        json.dump(settings, stdin)
                    z�
                    import _testinternalcapi
                    _testinternalcapi.get_interp_settings()
                    raise NotImplementedError('unreachable')
                    )rr�keysr[�zip�add�itemsr�r>r.rCrD�fdopenr�run_in_subinterp_with_configr7r@�json�loadsr:r�InterpreterError)r%�OBMALLOC�
EXTENSIONS�THREADS�DAEMON_THREADS�FORK�EXEC�	ALL_FLAGS�featuresr��kwlist�expected_to_work�expected_to_fail�config�kwargsr1�	exp_flags�exp_gilr)r-�script�stdoutrurL�settingss                         r�test_configured_settings�+SubinterpreterTest.test_configured_settings�s������
����������_�t�+�g�5��F�!�"�	�
��)1�1��1�F�1�#�,���1�'��q�	�4��r�
���r�
��D�!��5�!��%�u�-�

��
>�
���?��/�4�4�6�7���c�&�1�2���=�>�>�(�0�$�(�(��0�	8�!1� 6� 6� 8��F��#�f�-�.�F�!)��I�w�!*�"��H����f�%��w�w�y���1�!���.$�%&�3�'�*����Y�Y�q�\�V�!�>�>�v�P��P�C��$�$�S�!�,� �+�+�-�C�"� �:�:�c�?��� � ��8�4�&�%�!9�0'�F��#�f�-�.�F����f�%�!���.���
�&�&�}�'E�'E�F��8�8��J�6�J�G�
&�%�'��i2�V"�\��&�%��2G�F��
&�%�sN�I�8A	I�:I	�;0I�!6I>�I-�/I>�	
I�I�
I*	�-
I;�7I>�>
J
	Nz%test requires _testsinglephase modulec��^^^^	�SnSmSnSnSnSnX-U-U-U-mSSSSSSS	.m	UUU	U4S
jnSTlTRS5 U"SS5 SSS5 TRS
5 U"SS5 SSS5 TRS5 U"SS5 SSS5 TRS5 U"SS5 SSS5 TRS5 U"SS5 SSS5 TRS5 U"SS5 SSS5 g!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   Nv=f!,(df   g=f)Nr�r�r�r�r�r�TF)r��
allow_fork�
allow_exec�
allow_threads�allow_daemon_threadsr�c�n>�[TUS9nU(aT
T-OT
nUSS.nUSUSUUUU(+U(aUS:�OU(+U(+S.
n[R"5upg[(a TR	[R
U5 [R"SUSUS35n[R"U5n	[R"U40UD6n
TRU
S5 U	R5nSSS5 [R"W5nTRX�5 g!,(df   N6=f)	N�r�Fr�r)
�	requested�override__initial�override_after�override_restored�settings__initial�settings_after�settings_restored�allowed__initial�
allowed_after�allowed_restoredzu
                from test.test_capi.check_config import run_singlephase_check
                run_singlephase_check(z, z)
                )r[r>r.rr/r(rCrDr�rr�r7r@r�r�)�enabled�overrider��flagsr�r1r)r-r�r�rurL�results�
BASE_FLAGSr��base_kwargsr%s             ����rr��TSubinterpreterTest.test_overridden_setting_extensions_subinterp_check.<locals>.checkms�����.5��F�07�J��+�J�E�!&� ��H�&�%&�"*�%&�%-�"*�%-�(/�K�8@�x�!�|�g�!N�(/�K�
�H��7�7�9�D�A���������!�,��_�_�*'�'/�j��1�#�6�&��F����1����:�:�6�L�V�L��� � ��a�(��k�k�m����j�j��o�G����W�/�
��s�<:D&�&
D4z*config: check disabled; override: disabledr�z,config: check disabled; override: use configrz)config: check disabled; override: enabledr[z)config: check enabled; override: disabledz+config: check enabled; override: use configz(config: check enabled; override: enabled)�maxDiffr�)
r%r�r�r�r�r�r�r�r�r�s
`      @@@r�2test_overridden_setting_extensions_subinterp_check�ESubinterpreterTest.test_overridden_setting_extensions_subinterp_checkPsF������
����������_�t�+�g�5��F�
�!%���!�$(��

��(	0�(	0�T����\�\�F�
G��%���H�
�\�\�H�
I��%��O�J�
�\�\�E�
F��%��O�G��\�\�E�
F��$��O�G�
�\�\�G�
H��$��N�I�
�\�\�D�
E��$��N�F�
E�H�
G��
I�
I��
F�
F��G�
F��
H�
H��
E�
E�sH�
D
�+
D�
D,�1
D=�
E�7
E�

D�
D)�,
D:�=
E�
E�
E-c��SSKn[R"S5 UR[	UR
S55 g)Nrz1import binascii; binascii.Error.foobar = 'foobar'�foobar)�binasciirrp�assertFalser<�Error)r%r�s  r�test_mutate_exception�(SubinterpreterTest.test_mutate_exception�s/��	�� � �!T�U���������:�;r�$test requires _testmultiphase modulec��[R"5upUR[RU5 UR[RU5 [R
(aSnOSn[R"SUSUS35n[U5 [R"US5n[R"U5nURUS5 [R"US5nURXW5 g)N�AppleFrameworkLoader�ExtensionFileLoadera
            import importlib.machinery
            import importlib.util
            import os

            fullname = '_test_module_state_shared'
            origin = importlib.util.find_spec('_testmultiphase').origin
            loader = importlib.machinery.z�(fullname, origin)
            spec = importlib.util.spec_from_loader(fullname, loader)
            module = importlib.util.module_from_spec(spec)
            attr_id = str(id(module.Error)).encode()

            os.write(z, attr_id)
            �dr)r>r.r/r(r�is_apple_mobilerCrDr+r@rpr7)r%r)r-�loaderr��main_attr_idru�subinterp_attr_ids        r�"test_module_state_shared_in_global�5SubinterpreterTest.test_module_state_shared_in_global�s����w�w�y���������!�$�������!�$��"�"�+�F�*�F����&*�+1��2�
�S�
�
"�
��	
�V���w�w�q�#����&�&�v�.������a� ��G�G�A�s�O������9r)r�)r*r+r,r-rr�r<r>rvrzr�r�r�_testsinglephaserr�r��_testmultiphaser�r0r#rrrkrk�s��
�����V�,�.B�C�
>�D�
>������V�,�.B�C�H�D�H�*=�D�����V�,�.B�C�VK�D�VK�p�_�_�%��-�/V�W�
�����V�,�.B�C�&�'�R�(�D�X�
R�h<��_�_�_��,�.T�U�&�'�$:�(�V�$:rrkc���\rSrSr\R
"SSSSSSSS9\R
"SSSSS\"\5SS9\R
"SSSSSSSS9S.r/S	Qr	S
r
SSjrS
rSr
SrSrSrg)�InterpreterConfigTestsi�FT�own�r�r�r�r�r�r��gil�shared�default)�isolated�legacy�empty)r�r�r�c#��# �SHUnSHLnSHCnSH:nSH1nSH(nSHn[R"UUUUUUUS9v� M! M* M3 M< ME MN MW g7f)N)TF)r�r�r�r�)rQri)r%r�r�r�r��allow_daemon�checkextr�s        r�iter_all_configs�'InterpreterConfigTests.iter_all_configs	su���!.��+�
�"/�J�)6�
�,9�L�,9��+G�C�*/�*?�*?�:K�3=�3=�6C�=I�FN�,/�+&�%&�,H�-:�-:�*7�#0�,�"/�s�AANc���UR[U5[U55 X:XagSSKnSSKnSSKJn SU"X5-nSSR
URUR[U55R5UR[U55R555-nSUS3nURXx5nURURX755 g)Nr)�_common_shorten_reprz%s != %s�
z
namespace(�))r7r��difflib�pprint�
unittest.utilr�r^�ndiff�pformat�vars�
splitlines�_truncateMessage�fail�_formatMessage)	r%�ns1�ns2rMr�r�r��standardMsg�diffs	         r�assert_ns_equal�&InterpreterConfigTests.assert_ns_equal	s�������c��D��I�.��:����6� �#7��#A�A���t�y�y�����~�~�d�3�i�0�;�;�=��~�~�d�3�i�0�;�;�=�"?�@�@���D�6��#���+�+�K�>���	�	�$�%�%�c�7�8rc�^�U4SjnTRS5 U"SS5 SSS5 TRH%nTRU5 U"X"5 SSS5 M' g!,(df   ND=f!,(df   MJ=f)Nc�2>�TRUnU(aU4OSn[R"U6nTRX15 TR	X15 [R"U6nTRXA5 TR	XA5 TR	XC5 g)Nr#)�	supportedr�
new_configrr~)r:r1r�config1�config2r%s     �rr��<InterpreterConfigTests.test_predefined_config.<locals>.check'	s�����~�~�h�/�H�"�D�7��D�#�.�.��5�G�� � ��3����W�/�#�.�.��5�G�� � ��3����W�/����W�.rr�r�)r�r)r%r�r:s`  r�test_predefined_config�-InterpreterConfigTests.test_predefined_config&	sc���	/��\�\�)�
$��$�
�#�%��N�N�D����d�#��d�!�$�#�#�%�
$��$�#�s�
A!�	A2�!
A/�2
B	c
�J	�URR5GH�upURSUS35 Un[U5n[R
"U40UD6nUR
XS5 SSS5 URSUS35 [U5R5VVs0sHupgXg(+_M nnnURHWnURU:XaMX�S'[R"S0UD6n[R
"U40UD6nUR
XS5 MY SSS5 [U5R5H�up�U	S:Xa$URVs/sHowU
:wdM
UPM nnOU
(+/nUHnURUSU	SU
<SU<S35 X�0n[R"S0[[U540UD6D6n[R
"U40UD6nUR
XS5 SSS5 M� M� GM� URS5 URH6nUR[5 [R
"US	S
9 SSS5 M8 SSS5 [URS5R5H{up�U	S:XaM
SS
SSS[54HZn
URSU	SU
<S35 UR[5 [R
"S0X�0D6 SSS5 SSS5 M\ M} S	SSS[54HTn
URSU
<S35 UR[5 [R
"U
S9 SSS5 SSS5 MV SHTn
URSU
<S35 UR[5 [R
"U
S9 SSS5 SSS5 MV g!,(df   GNk=fs snnf!,(df   GN�=fs snf!,(df   GM�=f!,(df   GM�=f!,(df   GN�=f!,(df   GNH=f!,(df   GM�=f!,(df   GN=f!,(df   GMa=f!,(df   N�=f!,(df   GM+=f)Nznoop (r�zchange all (r��.z (z -> zunsupported fieldT)rbr�r[rrbg�?zunsupported value (�=zunsupported value(gil=)r�)rrbzunsupported value (gil=r#)rr�r�r�rrr�
gil_supportedr�rQrir[r:rQrr�)r%r:�vanillar1�	overridesr��k�vr��field�old�valuesrr<s              r�test_update_from_dict�,InterpreterConfigTests.test_update_from_dict;	s���!�^�^�1�1�3�M�D�����t�f�A�.�/�"�� ��M�	�&�1�1�$�D�)�D���$�$�V�6�	0�����T�F�!�4�5�26�w�-�2E�2E�2G�H�2G�$�!�Q��X�2G�	�H��-�-�C��{�{�c�)� �'*�e�$�$�4�4�A�y�A�H�*�5�5�<@�O�DM�O�F��(�(��:�.�6�#�7�m�1�1�3�
���E�>�)-�);�);�H�);�A�C�x�a�);�F�H�F�"%�g�Y�F�!�C������a��w�b���t�C�7�!�&L�M�%*�L�	�#(�#8�#8�$�"�4��=�>�I�>�$��"/�!9�!9�<@�"O�DM�"O���,�,�V�>�N�M�"�4�'4�D�\�\�-�
.������&�&�z�2�!�,�,�T��=�3�2�'�/�!�����!8�9�?�?�A�L�E���~���R���d�F�H�=���\�\�$7��w�a��y��"J�K��*�*�9�5�%�0�0�B�E�>�B�6�L�K�>�	B��A�s�D�&�(�3�E���� 6�u�i�q�A�B��&�&�y�1�!�,�,��7�2�C�B�4�"�E���� 7��y��B�C��&�&�z�2�!�,�,��7�3�D�C�"�k0�/��I�6�5��I�N�M��3�2��/�
.��6�5��L�K��2�1��C�B��
3�2��D�C�s��6O�	O(�&O"
�9A*O(�	O:�*O:�AO?	�%P%�?P�P%�Q	�P7	�6Q	�6Q.�Q�!Q.�R�&R�;R�
O	�"O(�(
O7	�?
P
�
P"�	P%�%
P4�7
Q
�Q	�	
Q�
Q+�&Q.�.
Q>	�
R�R�
R"	c	� ^�[SSS9[SSS9[SSS9[SSS9[SSS9/n[SSS	9/n[(aUR[SS
95 SnU4SjnTR5H�nURS
:XaMU"XR5(aOTRSU35 TR
[R5 U"U5 SSS5 SSS5 MqU"XQ5(a'TRSU35 U"U5 SSS5 M�TRSU35 U"U5 SSS5 M� g!,(df   Nv=f!,(df   M�=f!,(df   GM=f!,(df   GM=f)NTF)r�r�r�)r�r�)r�r�)r�r�r�)r�r�r�c�P�[U5nUHn[U40UD6U:XdM g g)NTF)r�r[)r��override_cases�nsrs    r�match�6InterpreterConfigTests.test_interp_init.<locals>.match�	s/���f��B�+�	���(�i�(�B�.��,�rc�Z>�Sn[R"X5nTRUS5 g)N�passr)r�r�r7)r�r�r�r%s   �rr��6InterpreterConfigTests.test_interp_init.<locals>.check�	s(����F�"�?�?��O�B����R��#rr�z	invalid: zquestionable: zvalid: )	r[rr�r�r�r�r:rr�)r%�questionable�invalidrr�r�s`     r�test_interp_init�'InterpreterConfigTests.test_interp_initw	sv���
�� �
�
��"'�
�

��"�
�

�#�%)�
�
��"&�
�)
��4
�"'�.3�
�
���?��N�N�4�e�D�E�	�	$�
�+�+�-�F��z�z�Y�&���V�%�%��\�\�I�f�X�"6�7��*�*�=�+I�+I�J��f�
�K�8�7��v�,�,��\�\�N�6�(�";�<��&�M�=�<��\�\�G�F�8�"4�5��&�M�6�5�.�
K�J��8�7��=�<��6�5�s<�. E�	E�E�
	E*�1	E=�
E�E�
E'	�*
E:	�=
F
	c	���[RS5nURS5 [R"S5nSUl[(aSUl[R"5tp4[R"U5nURXR5 SSS5 URS5 [R"S5nU"S5n[R"U5nSSS5 URWU5 SSS5 URS5 [R"S5nU"S5n[R"U5nSSS5 URWU5 SSS5 URS5 [R"SS	S
[[5S9nU"U5n[R"U5nSSS5 URWU5 SSS5 g!,(df   GNY=f!,(df   GN=f!,(df   GN=f!,(df   N�=f!,(df   N�=f!,(df   N�=f!,(df   g=f)Nc3�# �[R"USS9nUv� [R"U5 g![Ra gf=f![R"U5 f![Ra ff=f=f7f)NF)�reqrefs)rrZr!�InterpreterNotFoundError)r�r#s  r�
new_interp�:InterpreterConfigTests.test_get_config.<locals>.new_interp�	sv���$�+�+�F�E�B�H�
����!�)�)�(�3��$�=�=������!�)�)�(�3��$�=�=����sZ�B�A�5�B�A�	B�A�B�B�A(�'B�(A?�<B�>A?�?B�Br�r�r�Fr��customr�Tr�)r�r�r�)�
contextlib�contextmanagerr�rrr�rr��get_mainr}r�bool)r%r)r1r#rr��origs       r�test_get_config�&InterpreterConfigTests.test_get_config�	s���	�	"�	"�	�
#�	��\�\�&�
!�$�/�/��9�H� �H�L���9>��6�(�1�1�3�L�H�"�-�-�h�7�F�� � ��2�"��\�\�*�
%�$�/�/�
�;�H��J�'�8�&�1�1�(�;��(�� � ���2�	&��\�\�(�
#�$�/�/��9�H��H�%��&�1�1�(�;��&�� � ���2�	$��\�\�(�
#� �+�+��"&��.2�?�.C�	�D��D�!�X�&�1�1�(�;��"�� � ���.�$�
#�+"�
!��(�'��&�
%��&�%��$�
#��"�!��$�
#�sx�A-G'�.H�
G9�$H�H.�6H�
H.�-I�-H?�I�'
G6�9
H	�H�
H�
H+	�'H.�.
H<�?
I
	�	I�
Ir#r")r*r+r,r-rQrir/rrrr�rr	rr#r1r0r#rrr�r��s����)�)�#����!&�*.��
��'�'�"����!%�*.��*?��
��&�&�#����!&�*/��
�'�I�:1�M�&�$9�""�*:8�x:"�x*/rr�c�z�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrSrg)�InterpreterIDTestsi�	c�4^�U4SjnURU5 g)Nc�h>�[R"T5 g![Ra gf=fr")rr!r(r"s�r�ensure_destroyed�?InterpreterIDTests.add_interp_cleanup.<locals>.ensure_destroyed�	s.���
��%�%�h�/�� �9�9�
��
�s��1�1)r/)r%r#r7s ` r�add_interp_cleanup�%InterpreterIDTests.add_interp_cleanup�	s���	�
	
���(�)rc�R�[R"5nURU5 U$r")rrZr9)r%r/s  r�new_interpreter�"InterpreterIDTests.new_interpreter�	s#��
�
!�
!�
#������#��	rc�X�[RnU"S5nURUS5 g�Nrj)r��normalize_interp_idr7)r%�convertr#s   r�test_conversion_int�&InterpreterIDTests.test_conversion_int�	s&��#�7�7���2�;������2�&rc��[Rn"SS[5nU"U"55nURUS5 g)Nc��\rSrSrSrSrg)�9InterpreterIDTests.test_conversion_coerced.<locals>.MyInti�	c��gr?r#r$s rr�CInterpreterIDTests.test_conversion_coerced.<locals>.MyInt.__index__�	���rr#N)r*r+r,r-rr0r#rr�MyIntrF�	���
rrJrj)r�r@r�r7)r%rArJr#s    r�test_conversion_coerced�*InterpreterIDTests.test_conversion_coerced�	s7��#�7�7��	�C�	��5�7�#������2�&rc�v�[RnUR5nU"U5nURX25 gr")r�r@r<r7)r%rAr#�	converteds    r� test_conversion_from_interpreter�3InterpreterIDTests.test_conversion_from_interpreter�	s3��#�7�7���'�'�)���H�%�	�����-rc��[Rn[5SSS4HGnURSU<35 UR	[
5 U"U5 SSS5 SSS5 MI SnURSU<35 UR	[5 U"U5 SSS5 SSS5 SnURSU<35 UR	[5 U"U5 SSS5 SSS5 g!,(df   N�=f!,(df   M�=f!,(df   N�=f!,(df   N�=f!,(df   N\=f!,(df   g=f)Ng$@�10s10zbad: r�r�)r�r@rr�r:r�rQ�
OverflowError)r%rA�badids   r�test_conversion_bad�&InterpreterIDTests.test_conversion_bad
s��#�7�7��
�H����	
�E�����e�Y�/�0��&�&�y�1��E�N�2�1�0�

���
�\�\�E�%��+�
,��"�"�:�.����/�-���
�\�\�E�%��+�
,��"�"�=�1����2�-�
,�2�1��1�0��/�.��-�
,��2�1��-�
,�sk�D�
	C7�D�D+�	D� D+�E
�	D<�&E
�7
D�D�
D	�
D(	�$D+�+
D9�<
E
	�E
�
Ec�n�UR5nUR[R"U55 gr")r<r8r��interpreter_exists�r%r#s  r�test_lookup_exists�%InterpreterIDTests.test_lookup_exists
s*���'�'�)������0�0��:�	<rc�x�[R"5nUR[R"U55 gr")r��unused_interpreter_idr�rYrZs  r�test_lookup_does_not_exist�-InterpreterIDTests.test_lookup_does_not_exist
s,��$�:�:�<������0�0��:�	<rc��[R"5n[R"U5 UR[R
"U55 gr")rrZr!r�r�rYrZs  r�test_lookup_destroyed�(InterpreterIDTests.test_lookup_destroyed$
s:�� �'�'�)�����h�'�����0�0��:�	<rc�F�[RS[R4$)Nc�,�[R"USS9$)NF)�implieslink)r�incref)r/s rr��9InterpreterIDTests.get_refcount_helpers.<locals>.<lambda>-
s��
�,�,�R�U�Cr)r��get_interpreter_refcountr�decrefr$s r�get_refcount_helpers�'InterpreterIDTests.get_refcount_helpers*
s!���6�6�
C�� � �
�	
rc�b�[Rn[Rn[Rn[RnUR5upVnUR
S5 [R"5nURU"U55 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 SSS5 UR
S5 [R"5n[R"U5 URU"U55 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 UR[R5 U"U5 SSS5 SSS5 g!,(df   GN�=f!,(df   GNf=f!,(df   GNH=f!,(df   GN*=f!,(df   GN=f!,(df   GN�=f!,(df   GN�=f!,(df   GN�=f!,(df   GNh=f!,(df   GNJ=f!,(df   GN,=f!,(df   GN=f!,(df   N�=f!,(df   g=f)Nz
never existed�	destroyed)r�rY�interpreter_refcount_linked�link_interpreter_refcount�unlink_interpreter_refcountrkr�r^r�r:rr(rZr!�	r%�exists�	is_linked�link�unlink�get_refcountrgrjr#s	         r�$test_linked_lifecycle_does_not_exist�7InterpreterIDTests.test_linked_lifecycle_does_not_exist1
s���"�5�5��%�A�A�	� �:�:��"�>�>��'+�'@�'@�'B�$��f�
�\�\�/�
*�(�>�>�@�H�����x� �
"��"�"�=�#I�#I�J��(�#�K��"�"�=�#I�#I�J��X��K��"�"�=�#I�#I�J��x� �K��"�"�=�#I�#I�J��X�&�K��"�"�=�#I�#I�J��x� �K��"�"�=�#I�#I�J��x� �K�+�"�\�\�+�
&�$�+�+�-�H��!�!�(�+�����x� �
"��"�"�=�#I�#I�J��(�#�K��"�"�=�#I�#I�J��X��K��"�"�=�#I�#I�J��x� �K��"�"�=�#I�#I�J��X�&�K��"�"�=�#I�#I�J��x� �K��"�"�=�#I�#I�J��x� �K�'�
&�K�J��J�J��J�J��J�J��J�J��J�J��+�
*��,K�J��J�J��J�J��J�J��J�J��J�J��'�
&�s:�%AN#�1	L7�:'N#�!	M	�*'N#�	M�'N#�	M-�
'N#�1	M?�:'N#�!	N�*N#�A"P �-	N5�6'P �	O�&'P �
	O�'P �=	O+�'P �-	O=�6'P �	P�&P �7
M	�N#�	
M	�N#�
M*	�%N#�-
M<	�7N#�?
N	�	N#�
N 	�N#�#
N2�5
O	�?P �
O	�P �
O(	�#P �+
O:	�5P �=
P	�P �
P	�P � 
P.c���[RnUR5un nUR5nU"U5nU"U5nUR	U5 URUS5 gr)r�rorkr<r�r7)r%rtrwrr#�linked�refcounts       r�test_linked_lifecycle_initial�0InterpreterIDTests.test_linked_lifecycle_initial[
sd��%�A�A�	�!�6�6�8���a���'�'�)���8�$����)������ �����1�%rc��[Rn[RnUR5up4nUR	5nU"U5 URU"U55 UR
SU"U55 U"U5 URU"U55 URU"U55 UR
SU"U55 g�Nr[r)r�rYrorkr<r�r7r8)r%rsrtrwrgrjr#s       r�"test_linked_lifecycle_never_linked�5InterpreterIDTests.test_linked_lifecycle_never_linkedg
s���"�5�5��%�A�A�	�'+�'@�'@�'B�$��f��'�'�)��	�x������h��	!����
�|�H�%�	'�	�x������8��	�����h��	!����
�|�H�%�	'rc�|�[Rn[Rn[Rn[RnUR5nU"U5 UR
U"U55 UR
U"U55 U"U5 UR
U"U55 URU"U55 gr")r�rYrorprqr<r8r�)r%rsrtrurvr#s      r�!test_linked_lifecycle_link_unlink�4InterpreterIDTests.test_linked_lifecycle_link_unlink~
s���"�5�5��%�A�A�	� �:�:��"�>�>���'�'�)��	
�X������8��	�����h��	!�	�x������8��	�����h��	!rc��[Rn[Rn[RnUR	5upEnUR5nU"U5 UR
U"U55 URSU"U55 U"U5 URSU"U55 U"U5 URU"U55 g)Nrr[)	r�rYrorprkr<r8r7r�)r%rsrtrurwrgrjr#s        r�(test_linked_lifecycle_link_incref_decref�;InterpreterIDTests.test_linked_lifecycle_link_incref_decref�
s���"�5�5��%�A�A�	� �:�:��'+�'@�'@�'B�$��f��'�'�)��	
�X������h��	!����
�|�H�%�	'�	�x�����
�|�H�%�	'�	�x������8��	rc�8�[Rn[RnUR5up4nUR	5nU"U5 URSU"U55 U"U5 UR
U"U55 URSU"U55 grZ)r�rorprkr<r7r8)r%rtrurwrgrr#s       r�!test_linked_lifecycle_incref_link�4InterpreterIDTests.test_linked_lifecycle_incref_link�
s���%�A�A�	� �:�:��"&�";�";�"=���a��'�'�)���x�����
�|�H�%�	'�	
�X������h��	!����
�|�H�%�	'rc�$�[Rn[Rn[Rn[RnUR5upVnUR
5nU"U5 URU"U55 U"U5 URSU"U55 U"U5 URU"U55 URSU"U55 U"U5 URU"U55 URSU"U55 gr�)
r�rYrorprqrkr<r8r7r�rrs	         r�/test_linked_lifecycle_link_incref_unlink_decref�BInterpreterIDTests.test_linked_lifecycle_link_incref_unlink_decref�
s���"�5�5��%�A�A�	� �:�:��"�>�>��'+�'@�'@�'B�$��f��'�'�)���X������h��	!�	�x�����
�|�H�%�	'�	�x������h��	!����
�|�H�%�	'�	�x������8��	����
�|�H�%�	'rr#N)r*r+r,r-r9r<rBrLrPrVr[r_rbrkrxr}r�r�r�r�r�r0r#rrr4r4�	sX��*��
'�
'�.��.<�
<�
<�
�(!�T
&�'�.!�,�2'�$'rr4c�F�\rSrSr\\\\\\"S5\	\
\\\
/rSrSrSrg)�BuiltinStaticTypesTestsi�
Nc���URHDnURU5 [RU5nUR	US5 SSS5 MF g!,(df   MX=fr")�TYPESr�r�type_get_tp_basesr~)r%�typeobj�basess   r�test_tp_bases_is_set�,BuiltinStaticTypesTests.test_tp_bases_is_set�
sM���z�z�G����g�&�!�3�3�G�<��� � ���-�'�&�"�&�&���(A�
A%	c���URHDnURU5 [RU5nUR	US5 SSS5 MF g!,(df   MX=fr")r�r�r�type_get_tp_mror~)r%r�rs   r�test_tp_mro_is_set�*BuiltinStaticTypesTests.test_tp_mro_is_set�
sM���z�z�G����g�&��/�/��8��� � ��d�+�'�&�"�&�&�r�r#)r*r+r,r-rr�r�r�r[r/rrW�Warningr�r�r�r�r0r#rrr�r��
s:��	������T�
������
�E�.�,rr�c�R�\rSrSrSr\S5r\RS5r	Sr
Srg)�TestStaticTypesiFc�`�UR(a[R"S5eSUlg)Nz%these tests do not support re-runningT)�_has_runr�SkipTestr�s r�
setUpClass�TestStaticTypes.setUpClasss$���<�<��#�#�$K�L�L���rc'�:# �[R"U6nUv� g7fr")r�get_basic_static_type)r%rr�s   r�basic_static_type�!TestStaticTypes.basic_static_types����-�-�t�4���	�s�c�Z�UR5nURUR[5 UR	UR
[45 UR[
U5[
[55 SSS5 UR[5nURUR[5 UR	UR
[45 UR[
U5[
[55 SSS5 g!,(df   N�=f!,(df   g=fr")r�r�r�rr7r�r�r�s  r�%test_pytype_ready_always_sets_tp_type�5TestStaticTypes.test_pytype_ready_always_sets_tp_types����
#�
#�
%���M�M�#�,�,��/����S�]�]�V�I�6��M�M�$�s�)�T�&�\�2�&��
#�
#�F�
+�s��M�M�#�,�,��/����S�]�]�V�I�6��M�M�$�s�)�T�&�\�2�,�
+�
&�
%��,�
+�s�A*D�A*D�
D�
D*r#N)r*r+r,r-r��classmethodr�r,r-r�r�r0r#rrr�r�s8���H�����������4rr�c��\rSrSr\R
\R"5S55r\R
\R"5S55r\R
\R"5S55r	Sr
Srg)�TestThreadStatei#c�^�U4SjnU"5 [R"US9nUR5 UR5 g)Nc��>^�/mU4Sjn[RU5 U=p[R"S5 TR	TR[R"55SS5 g)Nc�N>�TR[R"55 gr")r�r�r�)�identss�rr��CTestThreadState.test_thread_state.<locals>.target.<locals>.callback,s����
�
�i�1�1�3�4rr[r�z/Couldn't find main thread correctly in the list)r�_test_thread_stater�r�r7r�r�r�)r�rZr�r�r%s   @�rr��1TestThreadState.test_thread_state.<locals>.target)sX����F�
5�
�(�(��2���A��J�J�q�M����V�\�\�)�*=�*=�*?�@�!�N�
Prr�)r�r�r]r^)r%r�r�s`  r�test_thread_state�!TestThreadState.test_thread_state%s2���	P�	�����F�+��	���	�	���rc�~^^�"SS5m[R"5mUU4Sjn[RU5 g)Nc��\rSrSrSrSrg)�8TestThreadState.test_thread_gilstate_in_clear.<locals>.Ci?c�,�[R5 gr")r�gilstate_ensure_releaser$s rr�@TestThreadState.test_thread_gilstate_in_clear.<locals>.C.__del__@s���1�1�3rr#N)r*r+r,r-rr0r#rrr�r�?s��
4rr�c�>�T"5Tlgr"�r�)r��	local_vars��rr��?TestThreadState.test_thread_gilstate_in_clear.<locals>.callbackFs����#�I�Kr)r��localrr�)r%r�r�r�s  @@r�test_thread_gilstate_in_clear�-TestThreadState.test_thread_gilstate_in_clear;s0���	4�	4�
�O�O�%�	�	�	�$�$�X�.rc��[R"S5n[SSSU5nURSUR5 g)Nz�
            import _testcapi

            def callback():
                print('callback called')

            _testcapi._test_thread_state(callback)
            z-X�tracemallocrBscallback called)rCrDrr�rL)r%rHrus   r� test_gilstate_ensure_no_deadlock�0TestThreadState.test_gilstate_ensure_no_deadlockKs<����� ����t�]�D�$�?���
�
�(�#�'�'�2rc�,�[R5 gr")r�test_current_tstate_matchesr$s r�test_gilstate_matches_current�-TestThreadState.test_gilstate_matches_currentZs���-�-�/rr#N)r*r+r,r-r�reap_threadsrhr�r�r�r�r0r#rrr�r�#s����"�"��0�0�2��3�#��(�"�"��0�0�2�/�3�#�/��"�"��0�0�2�3�3�#�3�0rr�c��0n[U5HCnURS5(dMUbURU5(aM6[X5X#'ME U$)N�test_)�dirrG�getattr)�mod�exclude_prefix�funcsr:s    r�get_test_funcsr�^sQ���E��C������w�'�'���%�$�/�/�.�*I�*I���c�(�����Lrc�~�\rSrSr\"5R\"\55 \R"\
S9S5rSrSr
g)�
Test_testcapiiir�c�.�[R"5 gr")r��
test_widecharr$s rr��Test_testcapi.test_widecharms���&�&�(rc�`�UR[R[R5 gr")r7r�
Py_Versionrw�
hexversionr$s r�test_version_api_data�#Test_testcapi.test_version_api_dataqs������-�-�s�~�~�>rr#N)r*r+r,r-�locals�updater�rrr�r�r�r�r0r#rrr�r�is;��
�H�O�O�N�9�-�.��$�$�.@�A�)�B�)�?rr�c�L�\rSrSr\"5R\"\55 Srg)�Test_testlimitedcapiiur#N)	r*r+r,r-r�r�r�r�r0r#rrr�r�us��
�H�O�O�N�#3�4�5rr�c�J�\rSrSr\"5R\"\SS95 Srg)�Test_testinternalcapiiy�
test_lock_)r�r#N)	r*r+r,r-r�r�r�r�r0r#rrr�r�ys��
�H�O�O�N�#4�2>�@�Arr�c�Z�\rSrSr\"5RS\"\555 Srg)�Test_PyLocki~c#�v# �UH/nURS5(dMU[[U54v� M1 g7f)r�N)rGr�r�)rNr:s  rrP�Test_PyLock.<genexpr>�s2���6� 6�����|�4�=�T�7�#4�d�;�<� 6�s�9�9r#N)	r*r+r,r-r�r�r�r�r0r#rrr�r�~s#��
�H�O�O�6� #�$5� 6�6�6rr�r�c�8�\rSrSrSrSrSrSrSrSr	Sr
g	)
�Test_ModuleStateAccessi�c��Sn[RRS5Rn[R
(a [RRX5nO[RRX5n[RRX5n[RRU5nURU5 XPlg)N�!_testmultiphase_meth_state_accessr�)
�	importlib�util�	find_spec�originrr��	machineryr�r��spec_from_loader�module_from_spec�exec_modulere)r%r�r�r��specres      r�setUp�Test_ModuleStateAccess.setUp�s���6�����)�)�*;�<�C�C���"�"��(�(�=�=�h�O�F��(�(�<�<�X�N�F��~�~�.�.�x�@�����0�0��6�����6�"��rc��"SSURR5nU"5nURUR5UR5 g)Nc��\rSrSrSrg)�QTest_ModuleStateAccess.test_subclass_get_module.<locals>.StateAccessType_Subclassi�r#Nr`r#rr�StateAccessType_Subclassr��rarr��re�StateAccessTyper��get_defining_module�r%r�r�s   r�test_subclass_get_module�/Test_ModuleStateAccess.test_subclass_get_module�s=��	�t�{�{�'B�'B�	�,�-���
�
�h�2�2�4�d�k�k�Brc��"SSURR5nU"5nURUR5UR5 g)Nc�(^�\rSrSrU4SjrSrU=r$)�\Test_ModuleStateAccess.test_subclass_get_module_with_super.<locals>.StateAccessType_Subclassi�c� >�[TU]5$r")rrrs �rr�pTest_ModuleStateAccess.test_subclass_get_module_with_super.<locals>.StateAccessType_Subclass.get_defining_module�s����w�2�4�4rr#)r*r+r,r-rr0rrs@rr�r�s
���
5�
5rr�r�rs   r�#test_subclass_get_module_with_super�:Test_ModuleStateAccess.test_subclass_get_module_with_super�s=��	5�t�{�{�'B�'B�	5�,�-���
�
�h�2�2�4�d�k�k�Brc��URR5nURR5nURURS.nUR	5GH�upEURU5 UR
UR5UR55 UR
UR5S5 U"5 UR
UR5UR55 UR
UR5S5 U"S5 UR
UR5UR55 UR
UR5S5 U"SSS9 UR
UR5UR55 UR
UR5S5 UR[5 U"SS	9 SSS5 UR[5 U"SS
S5 SSS5 SSS5 GM� g!,(df   ND=f!,(df   N-=f!,(df   GM�=f)N)�clinic�noclinicrr[r�r�r�T)�twice)�thricerd)
rer��increment_count_clinic�increment_count_noclinicr�r�r7�	get_countr:r�)r%rZr��methodsr:�increment_counts      r�test_state_access�(Test_ModuleStateAccess.test_state_access�s���
�K�K�'�'�)���K�K�'�'�)���.�.��2�2�
��
&-�]�]�_�!�D����d�#�� � ��������
�>�� � ������2��!�� � ��������
�>�� � ������2���"�� � ��������
�>�� � ������2���$�/�� � ��������
�>�� � ������2��&�&�y�1�#�1�-�2��&�&�y�1�#�A�q�!�,�2�'$�#�&5�"2�1��2�1��'$�#�s=�5E$I�H� I�=H/�I�
H,�(I�/
H=�9I�
I	c��URR5nUR[5 UR	5 SSS5 g!,(df   g=fr")rer�r:r��getmodulebydef_bad_def)r%r�s  r�test_get_module_bad_def�.Test_ModuleStateAccess.test_get_module_bad_def�s<���;�;�.�.�0��
�
�
�y�
)��+�+�-�*�
)�
)�s�A
�

Ac��"SS[URR5nURU"5R	5UR5 g)Nc��\rSrSrSrg)�FTest_ModuleStateAccess.test_get_module_static_in_mro.<locals>.Subclassi�r#Nr`r#rr�Subclassr�rarr)rrer�r�r)r%rs  r�test_get_module_static_in_mro�4Test_ModuleStateAccess.test_get_module_static_in_mro�s7��	�}�d�k�k�&A�&A�	��
�
�h�j�4�4�6����Dr)reN)r*r+r,r-r�rr	rrrr0r#rrr�r��s$���C�C�$-�L.�Err�c�6�\rSrSr\S5rSrSrSrSr	g)�TestInternalFrameApii�c�,�[R"5$r")rw�	_getframer#rrrZ�TestInternalFrameApi.func�s���}�}��rc��UR5n[R"U5nURX RR5 gr")rZr��iframe_getcoder�rT)r%�framerHs   r�	test_code�TestInternalFrameApi.test_code�s3���	�	��� �/�/��6���
�
�d�I�I�.�.�/rc���UR5n[R"U5nURUS5 UR	U[URRR55 gr)rZr��iframe_getlastir r�rrT�co_code)r%r(�lastis   r�
test_lasti�TestInternalFrameApi.test_lasti�sP���	�	���!�1�1�%�8�����5�!�$�����s�4�9�9�#5�#5�#=�#=�>�?rc��UR5n[R"U5nURRRnURX#S-5 g)Nrd)rZr��iframe_getlinerT�co_firstlinenor7)r%r(�line�	firstlines    r�	test_line�TestInternalFrameApi.test_line�sD���	�	��� �/�/��6���I�I�&�&�5�5�	�����1�}�-rr#N)
r*r+r,r-�staticmethodrZr)r/r6r0r#rrr"r"�s$������0�
@�.rr"r�c�>�\rSrSrSrSrSrSrSrSr	Sr
S	rg
)�Test_Pep523APIi�c��/n[nU[-n[U5H%nXd:Xa[R"U5 U"5 M' [R"5 U[-nUR[
U5[
U55 [XsSS9Hup�URX�5 M g![R"5 f=f)NT)�strict)�"SUFFICIENT_TO_DEOPT_AND_SPECIALIZErr��set_eval_frame_record�set_eval_frame_defaultr7rr�)
r%rZr@�actual_callsr]r�r{�expected_callsr1r`s
          r�do_test�Test_Pep523API.do_test�s�����2���:�:��	7��5�\���:�%�;�;�L�I���"�

�4�4�6��!C�C������^�,�c�,�.?�@� #�N�� N��H����X�.�!O��
�4�4�6�s�4B.�.Cc�P^�"SS5mU4SjnSS/nURX5 g)Nc��\rSrSrSrSrg)�4Test_Pep523API.test_inlined_binary_subscr.<locals>.Cic��gr"r#)r%�others  rr|�@Test_Pep523API.test_inlined_binary_subscr.<locals>.C.__getitem__r~rr#N)r*r+r,r-r|r0r#rrr�rFs��
rr�c�>�T"5S g�Nr�r#)r�s�rrZ�7Test_Pep523API.test_inlined_binary_subscr.<locals>.funcs���
�C��GrrZr|�rB)r%rZr@r�s   @r�test_inlined_binary_subscr�)Test_Pep523API.test_inlined_binary_subscrs(���	�	�	���'�����T�!rc�F^�SSjmU4Sjn/SQnURX5 g)Nc��gr"r#r�s rr,�/Test_Pep523API.test_inlined_call.<locals>.innerrPrc�$>�T"5 T"S5 grKr#�r,s�rrZ�.Test_Pep523API.test_inlined_call.<locals>.funcs����G��"�Ir)rZr,r,)r�rM�r%rZr@r,s   @r�test_inlined_call� Test_Pep523API.test_inlined_calls ���	�	�+�����T�!rc�B^�SmU4SjnSS/nURX5 g)Nc��gr"r#r�s rr,�;Test_Pep523API.test_inlined_call_function_ex.<locals>.inner!rPrc�>�T"S/6 grKr#rTs�rrZ�:Test_Pep523API.test_inlined_call_function_ex.<locals>.func#s����B�4�LrrZr,rMrVs   @r�test_inlined_call_function_ex�,Test_Pep523API.test_inlined_call_function_ex s#���	�	���!�����T�!rc�B^�SmU4Sjn/SQnURX5 g)Nc3�# �Sv� g7frKr#r#rrr��1Test_Pep523API.test_inlined_for_iter.<locals>.gen)�
����H�r�c�">�T"5HnM gr"r#)rr�s �rrZ�2Test_Pep523API.test_inlined_for_iter.<locals>.func+s����U���r)rZr�r�r�rM)r%rZr@r�s   @r�test_inlined_for_iter�$Test_Pep523API.test_inlined_for_iter(s ���	�	�.�����T�!rc�h^^�"SS5m"SS5mUU4Sjn/SQnURX5 g)Nc�$�\rSrSr\S5rSrg)�0Test_Pep523API.test_inlined_load_attr.<locals>.Ci2c��grKr#r$s rrZ�2Test_Pep523API.test_inlined_load_attr.<locals>.C.a3s��rr#N)r*r+r,r-�propertyrZr0r#rrr�rj2s��
�
��
rr�c��\rSrSrSrSrg)�0Test_Pep523API.test_inlined_load_attr.<locals>.Di6c��grKr#)r%r:s  r�__getattribute__�ATest_Pep523API.test_inlined_load_attr.<locals>.D.__getattribute__7rIrr#N)r*r+r,r-rqr0r#rr�Dro6rKrrsc�J>�T"5R T"5R gr"rG)r�rss��rrZ�3Test_Pep523API.test_inlined_load_attr.<locals>.func9s���
�C�E�E�
�C�E�Er)rZrZrqrM)r%rZr@r�rss   @@r�test_inlined_load_attr�%Test_Pep523API.test_inlined_load_attr1s/���	�	�	�	�	�2�����T�!rc�P^^�SmU4SjmU4Sjn/SQnURX5 g)Nc3�# �Sv� g7frKr#r#rrr,�/Test_Pep523API.test_inlined_send.<locals>.inner@rcr�c3�0># �T"5Shv�N gN7fr"r#rTs�r�outer�/Test_Pep523API.test_inlined_send.<locals>.outerBs�����w���s���c�&>�[T"55 gr")r)r|s�rrZ�.Test_Pep523API.test_inlined_send.<locals>.funcDs������Mr)rZr|r|r,r,r|r,rM)r%rZr@r,r|s   @@r�test_inlined_send� Test_Pep523API.test_inlined_send?s#���	�	�	�N�����T�!rr#N)r*r+r,r-rBrNrWr^rfrvr�r0r#rrr:r:�s%��/� "�"�"�"�"�"rr:zneed Py_GIL_DISABLEDc��\rSrSrSrSrg)�TestPyThreadIdiJc��^^	�[RmSm	"UU	4SjS[R5nSn[	U5Vs/sH	o1"5PM nnUHnUR5 M UHnURR5 M T"5/nUHnURR5 M UHTnUR5 URUR5 URURUR5 MV UH+nURU[ 5 UR#US5 M- UR[%['U55[%U5U5 gs snf)Nr�c�8>^�\rSrSrU4SjrUU4SjrSrU=r$)�5TestPyThreadId.test_py_thread_id.<locals>.GetThreadIdiRc��>�[TU]5 [R"5UlURR5 [R"5UlSUlgr")	rrr�r��get_lockrr��started_lock�py_tidrs �rr�>TestPyThreadId.test_py_thread_id.<locals>.GetThreadId.__init__SsB����� �"� )��� 0��
��
�
�%�%�'�$-�O�O�$5��!�"��rc��>�URR5 URR5 T"5Ul[
R"T5 T"5Ulgr")r�rr�rr�r�r��py_tid2)r%�py_thread_id�short_sleeps ��rr��9TestPyThreadId.test_py_thread_id.<locals>.GetThreadId.runZsC����!�!�%�%�'��
�
�%�%�'�*�n����
�
�;�'�+�~��r)r�r�r�r�)r*r+r,r-rr�r0r)rr�r�s@��r�GetThreadIdr�Rs���
#�
.�
.rr�rer)r�r�r�r�rr]r�rNr�r�r^r�r�r7r�r�r�r rr)
r%r��nthreadrr��thread�
py_thread_idsr�r�r�s
        @@r�test_py_thread_id� TestPyThreadId.test_py_thread_idLs>���)�5�5����
	.�
	.�)�*�*�
	.���*/��.�9�.�Q�;�=�.��9��F��L�L�N���F����$�$�&��&��(�
��F��O�O�#�#�%���F��K�K�M�� � ����/�
���V�^�^�V�]�]�;��!�C��!�!�#�s�+����s�A�&�!�	
����S��/�0�#�m�2D�&�	(��7:s�E4r#N)r*r+r,r-r�r0r#rrr�r�Js��2(rr�c��\rSrSrSrSrg)�	TestCEvali�c��[R"S5n[SU5up#nURS5R	5nURUR
S5S5 URUR
S5S5 g)Nz�
            import _testcapi
            _testcapi.toggle_reftrace_printer(True)
            l1 = []
            l2 = []
            del l1
            del l2
            _testcapi.toggle_reftrace_printer(False)
        rBrzCREATE listrdzDESTROY list)rCrDrrr�r7r�)r%rHrrL�liness     r�test_ceval_decref�TestCEval.test_ceval_decref�sp����� �
��%�T�4�0�	����
�
�7�#�.�.�0��������]�3�Q�7�������^�4�a�8rr#N)r*r+r,r-r�r0r#rrr�r��s��
9rr�r�r")Nr=r�rr,�importlib.machineryr��importlib.utilr�r>rqr�r�rwrCr�r�rQrr�rkr�r5r�test.supportrrrrr	r
rr�test.support.script_helperr
rrr��ImportErrorr�r�r�ModuleNotFoundErrorr;rr�r�r�rr r&r(�force_not_colorized_test_class�TestCaser2r�r�rkr�r4r�r�r�r�r�r�r�rhr�rr�r"r=r:r�r�r�r*r�r#rr�<module>r�sC��������	�
��
�
����������-�&�)�(�-�1�9�(�d�d���������

�'�'��4�	�����<�=��
:�:�
	�'�'�}
�x� � �}
�(�}
�@"�NG�8�,�,�NG��NG�bH4�x�(�(�H4�Vq:��*�*�q:�h	�{/�X�.�.�{/��{/�|�{'��*�*�{'��{'�|,�h�/�/�,�B 4�h�'�'� 4�F80�h�'�'�80�v�	?�H�%�%�	?�6�8�,�,�6�A�H�-�-�A�
�,�,�.�6�(�#�#�6�/�6�
����D�(�*P�Q�YE�X�.�.�YE�R�YE�x.�8�,�,�.�0&)�"�K"�X�&�&�K"�\
���W�,�,�.D�E�3(�X�&�&�3(�F�3(�l9��!�!�9�"�z���M�M�O���_c���������O������������M��sH�K�K%�K4�L�K"�!K"�%K1�0K1�4L�?L�L�L

Youez - 2016 - github.com/yon3zu
LinuXploit