
    i                        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dS )z*Test cases that run tests as subprocesses.    )annotationsN)	ccompiler	sysconfig)Any)
get_cflagsinclude_dir   )PREFIXzstatic_data.cc                  |    e Zd ZddZ ej        ej                            d          d          dd            Z	dS )	TestExternalreturnNonec                J   t                      t          fdt          j                  D                       }t	          j                    }t          j        |           g}dD ]2}t          j        |          }|r||vr|	                    |           3t          j                    5 }dD ]}t          |j        d|          }t          j                            ||rdnd          }	|D ]}
t          j                            |
          }|                     |
|          5  	 |                    |g|	||	           n)# t$          $ r}t'          d
|
 d| d          |d}~ww xY w	 ddd           n# 1 swxY w Y   	 ddd           dS # 1 swxY w Y   dS )zACompile each top-level lib-rt C file as its own translation unit.c              3     K   | ]a}|                     d           rJt          j                            t          j                            |                    r|t
          v]|V  bdS )z.cN)endswithospathisfilejoinEXCLUDED_LIB_RT_COMPILE_FILES).0name
lib_rt_dirs     W/root/projects/qq-shell/venv/lib64/python3.11/site-packages/mypyc/test/test_external.py	<genexpr>zHTestExternal.test_lib_rt_c_files_compile_individually.<locals>.<genexpr>   s{       
 
}}T""
 rw||J==>>	

 999	  :999
 
    )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0$X..."|* 	* 	*M+-HHHD *L00##D)))(** 	'f)6 ' '%#"*"8!*?  
  W\\.CRNN 
 $0 ' 'K"$',,z;"G"GK[G\]] ' ''$,,!,+5-9/5	 -      ) ' ' '"0!J[ !J !J1F!J !J !J# # $'''' ' ' ' ' ' ' ' ' ' ' ' ' ' '''	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	's[   /A;F*E=	,EE=	
E-E((E--E=	1F=FFFFFFwinzrt tests don't work on windowsc           
        g }t           j                                        }t          j        dk    r|g dz  }nt          j        dk    r|dgz  }d                    |          |d<   t          j                    5 }t          j	        t          j
        ddd	| d
| dg|t           j                            t          dd                    }t           j                                        }dt           j        vrd|d<   t          j        t          j
        ddg||          }|dk    rt          d          	 ddd           dS # 1 swxY w Y   dS )z!Run C unit tests in a subprocess.darwin)-O0z-mmacosx-version-min=10.10z-stdlib=libc++linuxrA    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/   r0   
subprocess
check_call
executabler   r
   callr4   )r5   cppflagsrG   r8   statuss        r   test_c_unit_testzTestExternal.test_c_unit_testE   s    !joo<8##OOOOHH\W$$H((8,,J (** 	Gf*N+6++,F,,& GLL(;;  F *//##CBJ..%*M"_'_`  F
 {{$%EFFF -	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	Gs   :B<EEEN)r   r   )
__name__
__module____qualname__r=   unittestskipIfrM   rN   
startswithrU    r   r   r   r      sp        ,' ,' ,' ,'` X_S\,,U335UVV"G "G "G WV"G "G "Gr   r   )__doc__
__future__r   r   rO   rM   r/   rY   	distutilsr   r   typingr   mypyc.buildr   r   configr
   r   TestCaser   r\   r   r   <module>rd      s    0 0 " " " " " " 				     



   * * * * * * * *       / / / / / / / /      !0 1 TG TG TG TG TG8$ TG TG TG TG TGr   