+
    BipE                     Z    ^ RI t ^ RIt^ RIHt ^RIHtHtHtHtH	t	 R t
 ! R R]	4      tR# )    N)support)BREAKPOINT_FNGDB_VERSIONrun_gdbsetup_moduleDebuggerTestsc                      \        4        R # N)r        6/usr/lib/python3.14/test/test_gdb/test_pretty_print.pysetUpModuler   
   s    Nr   c                     a  ] tR t^t o R"R ltR tR#R lt]P                  ! R4      R 4       t	R t
R tR	 t]P                  ! R4      R
 4       t]P                  ! R4      R 4       tR t]P                  ! R4      R 4       t]P                  ! R4      R 4       tR tR tR tR tR#R ltR tR tR tR tR tR tR tR tR tR t R t!R t"R  t#R!t$V t%R# )$PrettyPrintTestsNc                   T;'       g    R .pV P                  V\        VVR7      p\        P                  ! RV\        P                  4      pV'       g   V P                  RV: RV: 24       VP                  ^4      V3# )zbacktrace 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_-]+\.czUnexpected gdb output: 
)get_stack_tracer   researchDOTALLfailgroup)selfsourcer   r   
gdb_outputms   &&&&  r   get_gdb_reprPrettyPrintTests.get_gdb_repr   s}      !6 H H-))&]@U6A * C
 II6 		# IIZPQwwqz:%%r   c                X    V P                  R 4      pV P                  \        V9   4       R# )id(42)N)r   
assertTruer   r   r   s   & r   test_getting_backtrace'PrettyPrintTests.test_getting_backtrace3   s#    ))(3
34r   c           	         V P                  R \        V4      ,           R,           4      w  r4V'       g   \        V4      pV P                  W2V: RV: RV: 24       R# )zid()z did not equal expected z; full output was:
N)r    asciireprassertEqual)r   valexp_reprgdb_reprr   s   &&&  r   assertGdbReprPrettyPrintTests.assertGdbRepr7   sM      $00s1Cc1IJCyH%x=	?r   cpuc                    V P                  ^*4       V P                  ^ 4       V P                  R4       V P                  R4       V P                  R4       R# )*   l    J)Nil  I5 r0   r   s   &r   test_intPrettyPrintTests.test_intA   sK     	212=),-r   c                l    V P                  R 4       V P                  R4       V P                  R4       R# )TFNr5   r6   s   &r   test_singletons PrettyPrintTests.test_singletonsJ   s,    4 5!4 r   c                |    V P                  / 4       V P                  R R/R4       V P                  R RR^*/R4       R# )foobarz{'foo': 'bar'}douglasz{'foo': 'bar', 'douglas': 42}Nr5   r6   s   &r   
test_dictsPrettyPrintTests.test_dictsP   s?    2E5>+;<E5)R8:YZr   c                n    V P                  . 4       V P                  \        \        ^4      4      4       R# )   N)r0   listranger6   s   &r   
test_listsPrettyPrintTests.test_listsW   s&    24a>*r   c                   V P                  R 4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       T P                  \        \        ^4       Uu. uF  qNK  	  up4      4       R# u upi )r   s(   And now for something hopefully the sames7   string with embedded NUL here   and then some more texts7   this is a tab:	 this is a slash-N:
 this is a slash-R:s!   this is byte 255: and byte 128:N)r0   bytesrE   )r   bs   & r   
test_bytesPrettyPrintTests.test_bytes\   s}     	3FGVW 4 	
 	EF5U3Z!8Z!Z!89:!8s   3
B
c                &  a a \        R R4      w  rVoV'       g	   S'       g   \        RV: RV: 24      hVV 3R lpS P                  R4       S P                  R4       S P                  R4       V! R4       V! R	4       V! \        R
4      4       R# )z--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                    <  V P                  S4       SP                  V 4       R #   \         d     SP                  T \        T 4      4        R # i ; ir
   )encoder0   UnicodeEncodeErrorr*   )textencodingr   s   &r   
check_repr1PrettyPrintTests.test_strings.<locals>.check_repr~   sI    )H% ""4( & 6""4t56s   ' &AA z(And now for something hopefully the samez7string with embedded NUL here   and then some more textu   ☠u   文字化けi! N)r   RuntimeErrorr0   chr)r   stdoutstderrrS   rR   s   f   @r   test_stringsPrettyPrintTests.test_stringsk   s     !HJ   $ %& &	) 	2EFUV 	8
 	-. 	3w< r   c                    V P                  \        4       R 4       V P                  RR4       V P                  R4       R# )z()z(1,)N)   )r=   r>   baz)r0   tupler6   s   &r   test_tuplesPrettyPrintTests.test_tuples   s3    57D)4(01r   c                   \         R8  d   V P                  R4       V P                  \        4       R4       V P                  \        R.4      R4       \        P
                  P                  '       g;   V P                  \        RR.4      R4       V P                  \        . RO4      R4       V P                  R4      w  rV P                  VR	4       R
# )   z.pretty-printing of sets needs gdb 7.3 or laterzset()az{'a'}rJ   z
{'a', 'b'}z	{4, 5, 6}z&s = set(['a','b'])
s.remove('a')
id(s)z{'b'}Nrc         rC      )	r   skipTestr0   setsysflagsignore_environmentr    r,   r   r/   r   s   &  r   	test_setsPrettyPrintTests.test_sets   s     MMJK35'*3u:w/yy+++sC:=s9~{;  $00 2	  
 	7+r   c                b   \         R	8  d   V P                  R4       V P                  \        4       R4       V P                  \        R.4      R4       \        P
                  P                  '       g=   V P                  \        RR.4      R4       V P                  \        . R
O4      R4       R# R# )rc   z4pretty-printing of frozensets needs gdb 7.3 or laterzfrozenset()rd   zfrozenset({'a'})rJ   zfrozenset({'a', 'b'})zfrozenset({4, 5, 6})Nre   rg   )r   rj   r0   	frozensetrl   rm   rn   r6   s   &r   test_frozensets PrettyPrintTests.test_frozensets   s     MMPQ9;69cU+-?@yy+++y#s46MNy35KL ,r   c                    V P                  R 4      w  rV P                  VR4       V P                  R4      w  rV P                  VR4       R# )zR
try:
    raise RuntimeError("I am an error")
except RuntimeError as e:
    id(e)
zRuntimeError('I am an error',)z=
try:
    a = 1 / 0
except ZeroDivisionError as e:
    id(e)
z&ZeroDivisionError('division by zero',)Nr    r,   ro   s   &  r   test_exceptions PrettyPrintTests.test_exceptions   s_    #00 2   	9	;
  $00 2   	A	Cr   c                    V P                  R 4      w  r\        P                  ! RV4      pV P                  VRV,          R7       R# )z8
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$   r   r/   r   r   s   &   r   test_modern_class"PrettyPrintTests.test_modern_class   sI    #00 2   HHBHMEP 	 	Rr   c                    V P                  R 4      w  r\        P                  ! RV4      pV P                  VRV,          R7       R# )zO
class Foo(list):
    pass
foo = Foo()
foo += [1, 2, 3]
foo.an_int = 42
id(foo)r{   r|   r}   Nr   r   s   &   r   test_subclassing_list&PrettyPrintTests.test_subclassing_list   sI    #00 2   HHBHMEP 	 	Rr   c                    V P                  R 4      w  r\        P                  ! RV4      pV P                  VRV,          R7       R# )zH
class Foo(tuple):
    pass
foo = Foo((1, 2, 3))
foo.an_int = 42
id(foo)r{   r|   r}   Nr   r   s   &   r   test_subclassing_tuple'PrettyPrintTests.test_subclassing_tuple   sK      $00 2   HHBHMEP 	 	Rr   c                    V'       d   VR .pMR .pV P                  VVR7      w  rVV'       d	   WS8X  d   R# Rp\        P                  ! Wu4      pV'       g   V P                  RV: RV: 24       R# R# )	backtracer   Nz<.* at remote 0x-?[0-9a-f]+>Unexpected gdb representation: r   )r    r   r   r   )	r   r   
corruptionexpreprr   r/   r   patternr   s	   &&&&     r   
assertSanePrettyPrintTests.assertSane   s     #-{";!#.-! f4I  K 	 "  1HHW'II#Z1 2 r   c                X    V P                  R RR.R7      w  rV P                  VR4       R# )r#   zset variable v=0r   r   0x0Nrw   ro   s   &  r   test_NULL_ptrPrettyPrintTests.test_NULL_ptr  s?     h5G5@5B  C 	 	5)r   c                *    V P                  R R4       R# )r#   zset v->ob_type=0Nr   r6   s   &r   test_NULL_ob_type"PrettyPrintTests.test_NULL_ob_type%  s    *	,r   c                .    V P                  R RRR7       R# )r#   zset v->ob_type=0xDEADBEEF42r   Nr   r6   s   &r   test_corrupt_ob_type%PrettyPrintTests.test_corrupt_ob_type*  s    3 $ 	 	&r   c                .    V P                  R RRR7       R# )r#   zset v->ob_type->tp_flags=0x0r   r   Nr   r6   s   &r   test_corrupt_tp_flags&PrettyPrintTests.test_corrupt_tp_flags0  s    6 $ 	 	&r   c                .    V P                  R RRR7       R# )r#   z"set v->ob_type->tp_name=0xDEADBEEFr   r   Nr   r6   s   &r   test_corrupt_tp_name%PrettyPrintTests.test_corrupt_tp_name6  s    < $ 	 	&r   c                    \         P                  P                  '       d   V P                  R 4       V P	                  RRR7      w  r\
        P                  ! RV4      pV P                  VRV,          R7       R# )z(need site module, but -S option was usedzid(__builtins__.help)T)r   z%<_Helper\(\) at remote 0x-?[0-9a-f]+>zUnexpected rendering %rr}   N)rl   rm   no_siterj   r    r   r   r$   r   s   &   r   test_builtins_help#PrettyPrintTests.test_builtins_help<  sj     99MMDE  $001HVZ0[HH=xH5@ 	 	Br   c                    V P                  R 4      w  rV P                  VR4       V P                  R4      w  rV P                  VR4       R# )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, [[...]]]Nrw   ro   s   &  r   test_selfreferential_list*PrettyPrintTests.test_selfreferential_listJ  sT     CD 	#56 MN 	#78r   c                P    V P                  R 4      w  rV P                  VR4       R# )z-a = {} ; b = {'bar':a} ; a['foo'] = b ; id(a)z{'foo': {'bar': {...}}}Nrw   ro   s   &  r   test_selfreferential_dict*PrettyPrintTests.test_selfreferential_dictU  s-     MN 	 	#<=r   c                    V P                  R 4      w  rV P                  \        P                  ! RV4      RV: RV: 24       R# )z:
class Foo:
    pass
foo = Foo()
foo.an_attr = foo
id(foo)1<Foo\(an_attr=<\.\.\.>\) at remote 0x-?[0-9a-f]+>r   r   Nr    r$   r   r   ro   s   &  r   'test_selfreferential_old_style_instance8PrettyPrintTests.test_selfreferential_old_style_instance]  sG       	 	!U!)+ &z3	4r   c                   V P                  R 4      w  rV P                  \        P                  ! RV4      RV: RV: 24       V P                  R4      w  rV P                  \        P                  ! RV4      RV: RV: 24       R# )zB
class Foo(object):
    pass
foo = Foo()
foo.an_attr = foo
id(foo)r   r   r   zR
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]+>Nr   ro   s   &  r   'test_selfreferential_new_style_instance8PrettyPrintTests.test_selfreferential_new_style_instancej  s       	 	!U!)+ &z3	4  	 
 	 	!~!)+ &z3	4r   c                    V P                  R 4      w  rV P                  VR4       V P                  \        V4      R\        R4      ,           4       R# )zid(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)i   z...(truncated)N)r    r,   lenro   s   &  r   test_truncation PrettyPrintTests.test_truncation  sO    #001HI7	8, 	X$4 55	7r   c                    V P                  R 4      w  rV P                  \        P                  ! RV4      RV: RV: 24       R# )z$import sys; id(sys.stdout.readlines)zO<built-in method readlines of _io.TextIOWrapper object at remote 0x-?[0-9a-f]+>r   r   Nr   ro   s   &  r   test_builtin_method$PrettyPrintTests.test_builtin_method  s?    #001WX!s!)+ &z3	4r   c                    V P                  R RR.R7      pV P                  \        P                  ! RV\        P                  4      RV: RV: 24       R# )zQ
import sys
def foo(a, b, c):
    return sys._getframe(0)

f = foo(3, 4, 5)
id(f)
builtin_idzprint (PyFrameObject*)v)r   r   zK.*\s+\$1 =\s+Frame 0x-?[0-9a-f]+, for file <string>, line 4, in foo \(a=3.*r   r   N)r   r$   r   r   r   r%   s   & r   test_framesPrettyPrintTests.test_frames  s[    )) +	 6BAZ@[ * 	,
 	!o!+!#, DNzZ	\r   r   )NFr
   )&__name__
__module____qualname____firstlineno__r    r&   r0   r   requires_resourcer7   r:   r@   rF   rK   rZ   r`   rp   rt   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell__)__classdict__s   @r   r   r      s.    "&H5? u%. &.![+
 u%; &; u%,! &,!\2 u%, &,$ u%	M &	MC,
RRR2:*,
&&&B	9>446784\ \r   r   )r   rl   testr   utilr   r   r   r   r   r   r   r   r   r   <module>r      s-    	 
 * *
h\} h\r   