Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/test/test_gdb/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/test/test_gdb/__pycache__/test_pretty_print.cpython-312.pyc

�

)ΜgpE��X�ddlZddlZddlmZddlmZmZmZmZm	Z	d�Z
Gd�de	�Zy)�N)�support�)�
BREAKPOINT_FN�GDB_VERSION�run_gdb�setup_module�
DebuggerTestsc��t�y�N)r���</usr/local/lib/python3.12/test/test_gdb/test_pretty_print.py�setUpModuler
s���Nr
c��eZdZ		d!d�Zd�Zd"d�Zejd�d��Zd�Z	d�Z
d	�Zejd�d
��Zejd�d��Z
d�Zejd�d
��Zejd�d��Zd�Zd�Zd�Zd�Zd"d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"y)#�PrettyPrintTestsNc���|xsdg}|j|t||��}tjd|tj�}|s|jd|�d|���|j
d�|fS)Nzbacktrace 1)�
breakpoint�cmds_after_breakpoint�import_sitezS#0\s+builtin_id\s+\(self\=.*,\s+v=\s*(.*?)?\)\s+at\s+\S*[A-Za-z]+/[A-Za-z0-9_-]+\.czUnexpected gdb output: �
r)�get_stack_tracer�re�search�DOTALL�fail�group)�self�sourcerr�
gdb_output�ms      r�get_gdb_reprzPrettyPrintTests.get_gdb_reprsz�� !6� H�-����)�)�&�]�@U�6A�*�C�
�
�I�I�
6�
��	�	�
#����I�I��Z�P�Q��w�w�q�z�:�%�%r
c�T�|jd�}|jt|v�y)N�id(42))r�
assertTruer�rrs  r�test_getting_backtracez'PrettyPrintTests.test_getting_backtrace3s#���)�)�(�3�
����
��3�4r
c	��|jdt|�zdz�\}}|st|�}|j|||�d|�d|���y)Nzid(�)z did not equal expected z; full output was:
)r!�ascii�repr�assertEqual)r�val�exp_repr�gdb_reprrs     r�
assertGdbReprzPrettyPrintTests.assertGdbRepr7sQ�� $�0�0���s��1C�c�1I�J���*���C�y�H�����8�%�x��=�	?r
�cpuc��|jd�|jd�|jd�|jd�|jd�y)z0Verify the pretty-printing of various int values�*ri����lJ)�l�����I�5N�r/�rs r�test_intzPrettyPrintTests.test_intAsK��	
���2�����1�����2�����=�)����,�-r
c�j�|jd�|jd�|jd�y)z2Verify the pretty-printing of True, False and NoneTFNr3r4s r�test_singletonsz PrettyPrintTests.test_singletonsJs,�����4� ����5�!����4� r
c�x�|ji�|jddid�|jddd�d�y)z*Verify the pretty-printing of dictionaries�foo�barz{'foo': 'bar'}r2)r9�douglasz{'foo': 'bar', 'douglas': 42}Nr3r4s r�
test_dictszPrettyPrintTests.test_dictsPs;�����2�����E�5�>�+;�<����5�R�8�:Y�Zr
c�l�|jg�|jttd���y)z#Verify the pretty-printing of lists�N)r/�list�ranger4s r�
test_listszPrettyPrintTests.test_listsWs&�����2�����4��a��>�*r
c��|jd�|jd�|jd�|jd�|jd�|jttd�D�cgc]}|��c}��ycc}w)z#Verify the pretty-printing of bytesr
s(And now for something hopefully the sames7string with embedded NUL here  and then some more texts7this is a tab:	 this is a slash-N:
 this is a slash-R:
s!this is byte 255:� and byte 128:��N)r/�bytesr@)r�bs  r�
test_byteszPrettyPrintTests.test_bytes\s}��	
���3�����F�G����V�W����4�	�
	
���E�F����5�U�3�Z�!8�Z��!�Z�!8�9�:��!8s�3	Bc����tdd�\}}|�|s�std|�d|������fd�}�jd��jd��jd�|d	�|d
�|td��y)
z-Verify the pretty-printing of unicode stringsz--eval-commandz:python import locale; print(locale.getpreferredencoding())zZunable to determine the Python locale preferred encoding of embedded Python in GDB
stdout=z
stderr=c���	|j���j|�y#t$r�j|t|��YywxYwr)�encoder/�UnicodeEncodeErrorr))�text�encodingrs ��r�
check_reprz1PrettyPrintTests.test_strings.<locals>.check_repr~sI���
)����H�%��"�"�4�(��&�
6��"�"�4��t��5�
6�s�&�$A
�A
�z(And now for something hopefully the samez7string with embedded NUL here  and then some more textu☠u文字化けi!�N)r�RuntimeErrorr/�chr)r�stdout�stderrrMrLs`   @r�test_stringszPrettyPrintTests.test_stringsks����!��H�J���������� ��$� ��%�&�
&�	)�	
���2�����E�F����U�V�	�8��
	�-�.�	�3�w�<� r
c�~�|jt�d�|jdd�|jd�y)z$Verify the pretty-printing of tuplesz())rz(1,))r9r:�bazN)r/�tupler4s r�test_tupleszPrettyPrintTests.test_tuples�s3�����5�7�D�)����4��(����0�1r
c��tdkr|jd�|jt�d�|jtdg�d�tj
js:|jtddg�d�|jtgd��d	�|jd
�\}}|j|d�y)
z"Verify the pretty-printing of sets���z.pretty-printing of sets needs gdb 7.3 or laterzset()�az{'a'}rEz
{'a', 'b'}��r>�z	{4, 5, 6}z&s = set(['a','b'])
s.remove('a')
id(s)z{'b'}N)	r�skipTestr/�set�sys�flags�ignore_environmentr!r+�rr.rs   r�	test_setszPrettyPrintTests.test_sets�s�������M�M�J�K����3�5�'�*����3��u�:�w�/��y�y�+�+����s�C��:���=����s�9�~�{�;� $�0�0�2	� 
���*�	
����7�+r
c�N�tdkr|jd�|jt�d�|jtdg�d�tj
js;|jtddg�d�|jtgd��d	�y
y
)z(Verify the pretty-printing of frozensetsrYz4pretty-printing of frozensets needs gdb 7.3 or laterzfrozenset()r\zfrozenset({'a'})rEzfrozenset({'a', 'b'})r]zfrozenset({4, 5, 6})N)rr`r/�	frozensetrbrcrdr4s r�test_frozensetsz PrettyPrintTests.test_frozensets�s�������M�M�P�Q����9�;�
�6����9�c�U�+�-?�@��y�y�+�+����y�#�s��4�6M�N����y��3�5K�L�,r
c��|jd�\}}|j|d�|jd�\}}|j|d�y)NzR
try:
    raise RuntimeError("I am an error")
except RuntimeError as e:
    id(e)
zRuntimeError('I am an error',)z=
try:
    a = 1 / 0
except ZeroDivisionError as e:
    id(e)
z&ZeroDivisionError('division by zero',)�r!r+res   r�test_exceptionsz PrettyPrintTests.test_exceptions�sc��#�0�0�2� ���*�	
����9�	;�
 $�0�0�2� ���*�	
����A�	Cr
c��|jd�\}}tjd|�}|j|d|z��y)z7Verify the pretty-printing of new-style class instancesz8
class Foo:
    pass
foo = Foo()
foo.an_int = 42
id(foo)�*<Foo\(an_int=42\) at remote 0x-?[0-9a-f]+>�'Unexpected new-style class rendering %r��msgN�r!r�matchr$�rr.rr s    r�test_modern_classz"PrettyPrintTests.test_modern_class�sK��#�0�0�2� ���*�
�H�H�B�H�M������E��P�	�	Rr
c��|jd�\}}tjd|�}|j|d|z��y)z<Verify the pretty-printing of an instance of a list subclasszO
class Foo(list):
    pass
foo = Foo()
foo += [1, 2, 3]
foo.an_int = 42
id(foo)rnrorpNrrrts    r�test_subclassing_listz&PrettyPrintTests.test_subclassing_list�sK��#�0�0�2� ���*�
�H�H�B�H�M������E��P�	�	Rr
c��|jd�\}}tjd|�}|j|d|z��y)z=Verify the pretty-printing of an instance of a tuple subclasszH
class Foo(tuple):
    pass
foo = Foo((1, 2, 3))
foo.an_int = 42
id(foo)rnrorpNrrrts    r�test_subclassing_tuplez'PrettyPrintTests.test_subclassing_tuple�sM�� $�0�0�2� ���*�
�H�H�B�H�M������E��P�	�	Rr
c��|r|dg}ndg}|j||��\}}|r||k(ryd}tj||�}|s|jd|�d|���yy)z�Run Python under gdb, corrupting variables in the inferior process
        immediately before taking a backtrace.

        Verify that the variable's representation is the expected failsafe
        representation�	backtrace�rNz<.* at remote 0x-?[0-9a-f]+>�Unexpected gdb representation: r)r!rrsr)	rr�
corruption�expreprrr.r�patternr s	         r�
assertSanezPrettyPrintTests.assertSane�s����#-�{�";�!�#.�-�!�
���f�4I�
�
K�	��*���7�"��1���H�H�W�h�'����I�I�#�Z�1�
2�r
c�X�|jdddg��\}}|j|d�y)z2Ensure that a NULL PyObject* is handled gracefullyr#zset variable v=0r{r|�0x0Nrkres   r�
test_NULL_ptrzPrettyPrintTests.test_NULL_ptrsA��
���h�5G�5@�5B�
�
C�	��*�	
����5�)r
c�(�|jdd�y)z?Ensure that a PyObject* with NULL ob_type is handled gracefullyr#zset v->ob_type=0N�r�r4s r�test_NULL_ob_typez"PrettyPrintTests.test_NULL_ob_type%s������*�	,r
c�,�|jddd��y)zDEnsure that a PyObject* with a corrupt ob_type is handled gracefullyr#zset v->ob_type=0xDEADBEEF�42�rNr�r4s r�test_corrupt_ob_typez%PrettyPrintTests.test_corrupt_ob_type*s������3� $�	�	&r
c�,�|jddd��y)zDEnsure that a PyObject* with a type with corrupt tp_flags is handledr#zset v->ob_type->tp_flags=0x0r�r�Nr�r4s r�test_corrupt_tp_flagsz&PrettyPrintTests.test_corrupt_tp_flags0s������6� $�	�	&r
c�,�|jddd��y)zCEnsure that a PyObject* with a type with corrupt tp_name is handledr#z"set v->ob_type->tp_name=0xDEADBEEFr�r�Nr�r4s r�test_corrupt_tp_namez%PrettyPrintTests.test_corrupt_tp_name6s������<� $�	�	&r
c���tjjr|jd�|j	dd��\}}tjd|�}|j|d|z��y)	zAEnsure that the new-style class _Helper in site.py can be handledz(need site module, but -S option was usedzid(__builtins__.help)T)rz%<_Helper\(\) at remote 0x-?[0-9a-f]+>zUnexpected rendering %rrpN)rbrc�no_siter`r!rrsr$rts    r�test_builtins_helpz#PrettyPrintTests.test_builtins_help<si���9�9����M�M�D�E� $�0�0�1H�VZ�0�[���*��H�H�=�x�H������5��@�	�	Br
c��|jd�\}}|j|d�|jd�\}}|j|d�y)zbEnsure that a reference loop involving a list doesn't lead proxyval
        into an infinite loop:z#a = [3, 4, 5] ; a.append(a) ; id(a)z[3, 4, 5, [...]]z-a = [3, 4, 5] ; b = [a] ; a.append(b) ; id(a)z[3, 4, 5, [[...]]]Nrkres   r�test_selfreferential_listz*PrettyPrintTests.test_selfreferential_listJsX��
���C�D�	��*�����#5�6�
���M�N�	��*�����#7�8r
c�P�|jd�\}}|j|d�y)zbEnsure that a reference loop involving a dict doesn't lead proxyval
        into an infinite loop:z-a = {} ; b = {'bar':a} ; a['foo'] = b ; id(a)z{'foo': {'bar': {...}}}Nrkres   r�test_selfreferential_dictz*PrettyPrintTests.test_selfreferential_dictUs/��
���M�N�	��*�	
����#<�=r
c��|jd�\}}|jtjd|�d|�d|���y)Nz:
class Foo:
    pass
foo = Foo()
foo.an_attr = foo
id(foo)�1<Foo\(an_attr=<\.\.\.>\) at remote 0x-?[0-9a-f]+>r}r�r!r$rrsres   r�'test_selfreferential_old_style_instancez8PrettyPrintTests.test_selfreferential_old_style_instance]sI������
�	��*�	
������!U�!)�+�&�z�3�	4r
c��|jd�\}}|jtjd|�d|�d|���|jd�\}}|jtjd|�d|�d|���y)NzB
class Foo(object):
    pass
foo = Foo()
foo.an_attr = foo
id(foo)r�r}rzR
class Foo(object):
    pass
a = Foo()
b = Foo()
a.an_attr = b
b.an_attr = a
id(a)zZ<Foo\(an_attr=<Foo\(an_attr=<\.\.\.>\) at remote 0x-?[0-9a-f]+>\) at remote 0x-?[0-9a-f]+>r�res   r�'test_selfreferential_new_style_instancez8PrettyPrintTests.test_selfreferential_new_style_instancejs�������
�	��*�	
������!U�!)�+�&�z�3�	4�
���	�
�	��*�	
������!~�!)�+�&�z�3�	4r
c��|jd�\}}|j|d�|jt|�dtd�z�y)z)Verify that very long output is truncatedzid(list(range(1000)))a[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226...(truncated)iz...(truncated)N)r!r+�lenres   r�test_truncationz PrettyPrintTests.test_truncation�sQ��#�0�0�1H�I���*�����7�	8�,	
����X����$4� 5�5�	7r
c��|jd�\}}|jtjd|�d|�d|���y)Nz$import sys; id(sys.stdout.readlines)zO<built-in method readlines of _io.TextIOWrapper object at remote 0x-?[0-9a-f]+>r}rr�res   r�test_builtin_methodz$PrettyPrintTests.test_builtin_method�sA��#�0�0�1W�X���*�������!s�!)�+�&�z�3�	4r
c��|jdddg��}|jtjd|tj�d|�d|���y)NzQ
import sys
def foo(a, b, c):
    return sys._getframe(0)

f = foo(3, 4, 5)
id(f)�
builtin_idzprint (PyFrameObject*)v)rrzK.*\s+\$1 =\s+Frame 0x-?[0-9a-f]+, for file <string>, line 4, in foo \(a=3.*r}r)rr$rrsrr%s  r�test_frameszPrettyPrintTests.test_frames�s[���)�)�+	�6B�AZ�@[�*�	,�
�	
������!o�!+�!#���,�DN�z�Z�	\r
)NFr)#�__name__�
__module__�__qualname__r!r&r/r�requires_resourcer5r7r<rArFrSrWrfrirlrurwryr�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrrs5��+/�!&�"&�H5�?��W���u�%�.�&�.�!�[�+�
�W���u�%�;�&�;��W���u�%�,!�&�,!�\2��W���u�%�,�&�,�$�W���u�%�	M�&�	M�C�,
R�R�
R�2�:*�,�
&�&�&�B�	9�>�4�4�67�84�\r
r)rrb�testr�utilrrrrr	rrrr
r�<module>r�s-��	�
��*�*�
�h\�}�h\r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists