Ë
    Ç[;jÛ!  ã                   óˆ  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlZd dlZd dlmc mZ d dlmZ e j*                  j-                  e j*                  j/                  e«      «      Ze j*                  j5                  ed«      Ze j*                  j5                  ed«      Z ee«      5 Z eed«      D � �ci c]  \  } }|jA                  «       | “Œ c}} Z!ddd«       da"d„ Z# G d„ d	ejH                  «      Z% G d
„ de%«      Z& G d„ de&«      Z'e(dk(  r ejR                  «        yyc c}} w # 1 sw Y   ŒWxY w)é    N)Ú	ccompiler)ÚCygdbÚcodefileúcfuncs.cé   c            
      óv  — t         �t         S da 	 t        j                  g d¢t        j                  ¬«      } | j	                  «       \  }}d}t        j                  ||j                  dd«      «      }|r÷t        t        t        |j                  «       «      «      }|ddgk\  rÉd	a t        j                  d
¬«      5 }|j                  d«       |j!                  «        t        j                  ddd|j"                  gt        j                  ¬«      } | j	                  «       \  }}	 t        t        t        |j                  dd«      j%                  «       «      «      }|ddgk  rda d d d «       t         st)        j*                  d«       t         S # t        $ r d }Y �Œ(w xY w# t&        $ r da Y ŒHw xY w# 1 sw Y   ŒMxY w)NF)Úgdbz-nxz	--version)ÚstdoutzGNU gdb [^\d]*(\d+)\.(\d+)ÚasciiÚignoreé   é   Tzw+)Úmodez8python import sys; print("%s %s" % sys.version_info[:2])r	   ú-batchú-xz6Skipping gdb tests, need gdb >= 7.2 with Python >= 2.7)Úhave_gdbÚ
subprocessÚPopenÚPIPEÚcommunicateÚreÚmatchÚdecodeÚOSErrorÚlistÚmapÚintÚgroupsÚtempfileÚNamedTemporaryFileÚwriteÚflushÚnameÚsplitÚ
ValueErrorÚwarningsÚwarn)Úpr
   Ú_ÚregexÚgdb_versionÚgdb_version_numberÚpython_version_scriptÚinternal_python_versions           úlG:\00. PROJECTS\API\Inventory\templateJSON\kerjaOCR\Lib\site-packages\Cython/Debugger/Tests/TestLibCython.pyÚtest_gdbr0      sƒ  € äÐÜˆà€Hð	HÜ×ÑÒ8ÄÇÁÔQˆð
 —M‘M“O‰	ˆ�à-ˆÜ—h‘h˜u f§m¡m°G¸XÓ&FÓGˆáÜ!¤#¤c¨;×+=Ñ+=Ó+?Ó"@ÓAÐØ ! Q Ò'ØˆHÜ×,Ñ,°$Õ7Ð;PØ%×+Ñ+ØNôPà%×+Ñ+Ô-Ü×$Ñ$ e¨X°tÐ=R×=WÑ=WÐ%XÜ,6¯O©Oô=�àŸM™M›O‘	�˜ð%Ü.2´3´s¸F¿M¹MÈ'ÐS[Ó<\×<bÑ<bÓ<dÓ3eÓ.fÐ+Ø.°!°Q°Ò7Ø#(˜÷ 8õ Ü�‰ÐNÔOä€Oøô= ò à‹ðûô0 "ò %Ø$’Hð%ú÷ 8Ð7ús=   �'F Â:A(F/Ä#A FÆFÆFÆF,Æ)F/Æ+F,Æ,F/Æ/F8c                   ó   — e Zd Zd„ Zd„ Zy)ÚDebuggerTestCasec           	      ó>  — t        «       syt        j                  «       | _        t        j
                  j                  | j                  d«      | _        t        j
                  j                  | j                  dd«      | _        t        j
                  j                  | j                  d«      | _	        t	        j                  «       | _        	 t	        j                  | j                  «       t        j                  t        | j                  «       t        j                  t         | j                  dz   «       t        j                  t         j#                  dd«      | j                  dz   «       t%        j&                  «       }|j)                  dgd	d
g¬«       t+        | j                  d| j                  ¬«      }t-        j.                  «       }t1        j2                  d| j                  dt1        j4                  t        «      dœ|¤Ž}t7        t        j8                  d«      }t:        j<                  }|t:        _        |j?                  «        	  |j@                  d| j                  ddd	| j                  dœdœ|¤Ž |jC                  |d   |d   |d   dddgi¬«       |jE                  «        |t:        _        |jG                  «        y# |jE                  «        |t:        _        |jG                  «        w xY w#  t	        j                  | j                  «       ‚ xY w)z�
        Run gdb and have cygdb import the debug information from the code
        defined in TestParseTreeTransforms's setUp method
        Nzcodefile.pyxÚcython_debugÚcython_debug_info_codefileÚcfuncsz.cz.hr   Tz-fPIC)ÚdebugÚextra_postargsr   )Útest_directoryÚmoduleÚmodule_pathF)ÚworkdirÚcleanup_workdirÚtagsÚw)Ú	gdb_debugÚ
output_dir)Ú	targetdirÚincdirÚannotateÚextra_compile_optionsr9   r:   Úextra_objectszcfuncs.o)r9   r:   r<   rC   Úextra_extension_args© )$r0   r   ÚmkdtempÚtempdirÚosÚpathÚjoinÚdestfileÚ
debug_destÚcfuncs_destfileÚgetcwdÚcwdÚchdirÚshutilÚcopyr   Úcfuncs_fileÚreplacer   Únew_compilerÚcompileÚdictÚ	build_extÚOptimizationÚruntestsÚCythonCompileTestCaseÚ
parse_tagsÚopenÚdevnullÚsysÚstderrÚdisable_optimizationÚ
run_cythonÚrun_distutilsÚrestore_stateÚclose)ÚselfÚcompilerÚoptsÚoptimization_disablerÚcython_compile_testcaseÚ
new_stderrrc   s          r/   ÚsetUpzDebuggerTestCase.setUpG   s  € ô
 ŒzØä×'Ñ'Ó)ˆŒÜŸ™Ÿ™ T§\¡\°>ÓBˆŒÜŸ'™'Ÿ,™, t§|¡|Ø&4Ø&BóDˆŒô  "Ÿw™wŸ|™|¨D¯L©L¸(ÓCˆÔä—9‘9“;ˆŒðH	Ü�H‰H�T—\‘\Ô"ä�K‰Kœ $§-¡-Ô0Ü�K‰Kœ T×%9Ñ%9¸DÑ%@ÔAÜ�K‰Kœ×+Ñ+¨D°$Ó7Ø×,Ñ,¨tÑ3ô5ô !×-Ñ-Ó/ˆHØ×Ñ˜j˜\°ÀwÀiÐÔPäØ#Ÿ|™|Ø!Ø ŸM™MôˆDô %.×$:Ñ$:Ó$<Ð!ä&.×&DÑ&Dð 'ØŸ™à %Ü×(Ñ(¬Ó2ñ	'ð
 ñ'Ð#ô œbŸj™j¨#Ó.ˆJä—Z‘ZˆFØ#ŒCŒJà!×6Ñ6Ô8ð#Ø2Ð'×2Ñ2ð 	Ø"Ÿl™lØØ"à$(Ø%)§\¡\ñ+ñ		ð ò	ð (×5Ñ5Ø#'Ð(8Ñ#9Ø ™>Ø Ð!1Ñ2ØØ*9¸:¸,Ð)Gð 6ô ð &×3Ñ3Ô5Ø#””
Ø× Ñ Õ"øð &×3Ñ3Ô5Ø#””
Ø× Ñ Õ"ûð	Ü�H‰H�T—X‘XÔØús&   ÃF K: ÉAK
 Ê+K: Ë
-K7Ë7K: Ë:"Lc                 ó–   — t        «       sy t        j                  | j                  «       t	        j
                  | j                  «       y ©N)r0   rK   rS   rR   rT   ÚrmtreerJ   )ri   s    r/   ÚtearDownzDebuggerTestCase.tearDown¡   s*   € ÜŒzØÜ
�‰�—‘ÔÜ�‰�d—l‘lÕ#ó    N)Ú__name__Ú
__module__Ú__qualname__ro   rs   rH   rt   r/   r2   r2   E   s   „ òXót$rt   r2   c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )ÚGdbDebuggerTestCasec           	      óø  •— t        «       sy t        ‰| �	  «        t        j                  d«      }t        j                  dt
        j                  d d ›d�«      }t        j                  | j                  |«      | _
        t        | j                  d«      5 }|j                  |«       d d d «       ddd| j                  d	d
t
        j                  ddg	}g }t        j                  j!                  d«      }|r|j#                  |«       |j#                  t        j$                  j'                  t        j$                  j'                  t        j$                  j)                  t*        j,                  «      «      «      «       t/        t        j                  t        j0                  j3                  |«      ¬«      }t5        j6                  |t4        j8                  t4        j8                  |¬«      | _        y # 1 sw Y   �ŒJxY w)Na              python

            import os
            import sys
            import traceback

            def excepthook(type, value, tb):
                traceback.print_exception(type, value, tb)
                sys.stderr.flush()
                sys.stdout.flush()
                os._exit(1)

            sys.excepthook = excepthook

            # Have tracebacks end up on sys.stderr (gdb replaces sys.stderr
            # with an object that calls gdb.write())
            sys.stderr = sys.__stderr__

            end
            z‡            python

            from Cython.Debugger.Tests import test_libcython_in_gdb
            test_libcython_in_gdb.main(version=r   z)

            end
            Úar	   r   r   z-nz--argsz-czimport codefileÚ
PYTHONPATH)r|   )r
   rc   Úenv)r0   Úsuperro   ÚtextwrapÚdedentrb   Úversion_infoÚcygdbÚmake_command_filerJ   Úgdb_command_filer`   r!   Ú
executablerK   ÚenvironÚgetÚappendrL   ÚdirnameÚabspathÚCythonÚ__file__rZ   ÚpathseprM   r   r   r   r(   )	ri   Úprefix_codeÚcodeÚfÚargsÚpathsrL   r}   Ú	__class__s	           €r/   ro   zGdbDebuggerTestCase.setUpª   sk  ø€ ÜŒzØä‰‰Œä—o‘oð 'ó ˆô, �Šô ×#Ñ# B QÒ'ð *ó +ˆô !&× 7Ñ 7¸¿¹Ø8Có!EˆÔô �$×'Ñ'¨Ô-°Ø�G‰G�DŒM÷ .ð �x  t×'<Ñ'<¸dÀHÜ—‘ Ð&7ð9ˆð ˆÜ�z‰z�~‰~˜lÓ+ˆÙØ�L‰L˜ÔØ�‰”R—W‘W—_‘_¤R§W¡W§_¡_Ü�G‰G�O‰OœFŸO™OÓ,ó&.ó /ô 	0ä”2—:‘:¬"¯*©*¯/©/¸%Ó*@ÔAˆä×!Ñ!ØÜ—?‘?Ü—?‘?Øô	ˆ�÷ .Ñ-ús   ÂG/Ç/G9c                 ó¸  •— t        «       sy 	 t        ‰| �	  «        | j                  rb| j                  j                  j                  «        | j                  j                  j                  «        | j                  j                  «        t        j                  | j                  «       y #  Y ŒbxY w#  Y ŒExY w# t        j                  | j                  «       w xY wrq   )r0   r~   rs   r(   r
   rh   rc   ÚwaitrK   Úremover„   )ri   r“   s    €r/   rs   zGdbDebuggerTestCase.tearDownæ   s�   ø€ ÜŒzØð		-Ü‰GÑÔØ�vŠvØ—V‘V—]‘]×(Ñ(Ô*à—V‘V—]‘]×(Ñ(Ô*à—‘—‘”ä�I‰I�d×+Ñ+Õ,øð ™ûà™ûô �I‰I�d×+Ñ+Õ,ús4   ŽB8 ¨$B* Á$B1 Á0B8 Â*B.Â,B8 Â1B5Â3B8 Â8!C)ru   rv   rw   ro   rs   Ú__classcell__)r“   s   @r/   ry   ry   ¨   s   ø„ ô:÷x-ð -rt   ry   c                   ó   — e Zd Zd„ Zy)ÚTestAllc                 óâ  — t        «       sy | j                  j                  «       \  }}|j                  d«      }|j                  d«      }| j                  j                  }|dk(  r?t
        j                  j                  |«       t
        j                  j                  |«       y |dk\  rFd}|›d|›�}|›d|›�}|›d|›�}d|›d|›|›d|›|›�}t
        j                  j                  |«       y y )	NzUTF-8r   r   z******************************z   v INSIDE GDB v   z   v STDERR v   z   ^ INSIDE GDB ^   Ú
)r0   r(   r   r   Ú
returncoderb   rc   r!   )	ri   ÚoutÚerrÚexit_statusÚborderÚstartrc   ÚendÚerrmsgs	            r/   Útest_allzTestAll.test_allø   sÉ   € ÜŒzØà—6‘6×%Ñ%Ó'‰ˆˆSØ�j‰j˜Ó!ˆØ�j‰j˜Ó!ˆà—f‘f×'Ñ'ˆà˜!ÒÜ�J‰J×Ñ˜SÔ!Ü�J‰J×Ñ˜SÕ!Ø˜AÒØˆFÚ39¹6ÐBˆEÚ/5±vÐ>ˆFÚ39¹6ÐB‰CÚ+0±#²v¹sÁCÐHˆFä�J‰J×Ñ˜VÕ$ð rt   N)ru   rv   rw   r¤   rH   rt   r/   r™   r™   ö   s   „ ó%rt   r™   Ú__main__)*rK   r   rb   rT   r&   r   Úunittestr   r   Ú	distutilsr   r]   ÚCython.Distutils.extensionr‹   ÚCython.Distutils.old_build_extÚ	DistutilsÚold_build_extr[   ÚCython.Debuggerr   r‚   rL   r‰   rŠ   rŒ   ÚrootrM   r   rV   r`   r�   Ú	enumerateÚstripÚsource_to_linenor   r0   ÚTestCaser2   ry   r™   ru   Úmain)ÚiÚlines   00r/   Ú<module>rµ      s  ðÛ 	Û 	Û 
Û Û Û Û Û Û õ  ã Û !ß 2Ð 2Ý *à	‡w�w‡��r—w‘w—‘ xÓ0Ó1€Ø�7‰7�<‰<˜˜jÓ)€Ø�g‰g�l‰l˜4 Ó,€á	ˆ(„^�qÙ7@ÀÀA´ÔG±©G¨A¨t˜Ÿ
™
› a™°ÒGÐ÷ ð €ò&ôR`$�x×(Ñ(ô `$ôFK-Ð*ô K-ô\%Ð!ô %ð8 ˆzÒØ€H‡M�M…Oð ùóu H÷ €^ús   Â6D8ÃD2ÃD8Ä2D8Ä8E