Ë
    pPêj½  ã                  ó¤   — d Z ddlm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	m
Z
 ddlmZ ddlmZmZ ddlmZ d	gZ G d
„ dej&                  «      Zy)z*Test cases that run tests as subprocesses.é    )ÚannotationsN)Ú	ccompilerÚ	sysconfig)ÚAny)Ú
get_cflagsÚinclude_diré   )ÚPREFIXzstatic_data.cc                  óz   — e Zd Zdd„Z ej
                  ej                  j                  d«      d«      dd„«       Z	y)ÚTestExternalc                ó  ‡— t        «       Št        ˆfd„t        j                  ‰«      D «       «      }t	        j
                  «       }t        j                  |«       ‰g}dD ]1  }t        j                  |¬«      }|sŒ||vsŒ!|j                  |«       Œ3 t        j                  «       5 }dD ]™  }t        |j                  d|¬«      }t        j                  j                  ||rdnd«      }	|D ]V  }
t        j                  j                  ‰|
«      }| j!                  |
|¬«      5  	 |j#                  |g|	||¬	«       	 ddd«       ŒX Œ› 	 ddd«       y# t$        $ r}t'        d
|
› d|› d�«      |‚d}~ww xY w# 1 sw Y   Œ’xY w# 1 sw Y   yxY w)zACompile each top-level lib-rt C file as its own translation unit.c              3  óÎ   •K  — | ]\  }|j                  d «      rIt        j                  j                  t        j                  j	                  ‰|«      «      r|t
        vr|–— Œ^ y­w)z.cN)ÚendswithÚosÚpathÚisfileÚjoinÚEXCLUDED_LIB_RT_COMPILE_FILES)Ú.0ÚnameÚ
lib_rt_dirs     €ú]/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/test/test_external.pyú	<genexpr>zHTestExternal.test_lib_rt_c_files_compile_individually.<locals>.<genexpr>   sM   øè ø€ ò 
àØ�}‰}˜TÔ"Ü—‘—‘œrŸw™wŸ|™|¨J¸Ó=Ô>ØÔ9Ñ9ô	 ñ
ùs   ƒA"A%)FT)Úplat_specificÚ0)Úcompiler_typeÚ	opt_levelÚexperimental_featuresÚexperimentalÚdefault)Úsourcer   )Ú
output_dirÚinclude_dirsÚextra_postargszfailed to compile z (experimental=ú)N)r   Úsortedr   Úlistdirr   Únew_compilerr   Úcustomize_compilerÚget_python_incÚappendÚtempfileÚTemporaryDirectoryr   r   r   r   ÚsubTestÚcompileÚ	ExceptionÚAssertionError)ÚselfÚsource_namesÚcompilerr#   r   r   Útmpdirr   Úcflagsr"   Úsource_nameÚsource_pathÚerrr   s                @r   Ú(test_lib_rt_c_files_compile_individuallyz5TestExternal.test_lib_rt_c_files_compile_individually   s¬  ø€ ä “]ˆ
Üó 
äŸ
™
 :Ó.ô
ó 
ˆô "×.Ñ.Ó0ˆÜ×$Ñ$ XÔ.à"�|ˆØ*ò 	*ˆMÜ×+Ñ+¸-ÔHˆDÚ˜ LÒ0Ø×#Ñ# DÕ)ð	*ô
 ×(Ñ(Ó*ð 	'¨fØ)6ò 'Ð%Ü#Ø"*×"8Ñ"8Ø!Ø*?ô�ô
  ŸW™WŸ\™\ØÑ.C™NÈó�
ð $0ò '�KÜ"$§'¡'§,¡,¨z¸;Ó"G�KØŸ™¨[ÐG\˜Ó]ñ 'ð'Ø$×,Ñ,Ø!, Ø+5Ø-9Ø/5ð	 -õ ÷'ð 'ñ'ñ'÷	'ð 	'øô*  )ò 'Ü"0Ø"4°[°Mð B1Ø1FÐ0GÀqð!Jó#ð $'ð'ûð'ú÷'ð 'ú÷	'ð 	'úsC   Â)A:FÄ#E6	Ä%EÄ<FÅ	E3ÅE.Å.E3Å3E6	Å6E?Å;FÆFÚwinzrt tests don't work on windowsc           
     ó®  — g }t         j                  j                  «       }t        j                  dk(  r|g d¢z  }nt        j                  dk(  r|dgz  }dj                  |«      |d<   t        j                  «       5 }t        j                  t        j                  ddd	|› �d
|› �dg|t         j                  j                  t        dd«      ¬«      }t         j                  j                  «       }dt         j                  vrd|d<   t        j                  t        j                  ddg||¬«      }|dk7  rt        d«      ‚	 ddd«       y# 1 sw Y   yxY w)z!Run C unit tests in a subprocess.Údarwin)ú-O0z-mmacosx-version-min=10.10z-stdlib=libc++Úlinuxr>   ú ÚCPPFLAGSzsetup.pyÚ	build_extz--build-lib=z--build-temp=z--run-capi-testsÚmypyczlib-rt)ÚenvÚcwdÚGTEST_COLORÚyesz-cz6import sys, test_capi; sys.exit(test_capi.run_tests())r   zmake test: C unit test failureN)r   ÚenvironÚcopyÚsysÚplatformr   r,   r-   Ú
subprocessÚ
check_callÚ
executabler   r
   Úcallr1   )r2   ÚcppflagsrD   r5   Ústatuss        r   Útest_c_unit_testzTestExternal.test_c_unit_testE   s:  € ð !ˆÜ�j‰j�o‰oÓˆÜ�<‰<˜8Ò#ØÒOÑO‰HÜ�\‰\˜WÒ$Ø˜˜ÑˆHØŸ(™( 8Ó,ˆˆJ‰ô ×(Ñ(Ó*ð 	G¨fÜ×*Ñ*ä—N‘NØØØ" 6 (Ð+Ø# F 8Ð,Ø&ðð Ü—G‘G—L‘L¤¨°(Ó;ôˆFô —*‘*—/‘/Ó#ˆCØ¤B§J¡JÑ.Ø%*��MÑ"Ü—_‘_Ü—‘ Ð'_Ð`ØØôˆFð
 ˜Š{Ü$Ð%EÓFÐFð ÷-	G÷ 	Gñ 	Gús   Á=CEÅEN)ÚreturnÚNone)
Ú__name__Ú
__module__Ú__qualname__r:   ÚunittestÚskipIfrJ   rK   Ú
startswithrR   © ó    r   r   r      s<   „ ó,'ð` €X‡_�_�S—\‘\×,Ñ,¨UÓ3Ð5UÓVò"Gó Wñ"Gr\   r   )Ú__doc__Ú
__future__r   r   rL   rJ   r,   rX   Ú	distutilsr   r   Útypingr   Úmypyc.buildr   r   Úconfigr
   r   ÚTestCaser   r[   r\   r   ú<module>rd      sE   ðÙ 0å "ã 	Û Û 
Û Û ß *Ý ç /å à!0Ð 1Ð ôTG�8×$Ñ$õ TGr\   