
    7\h-                        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
mZ d dlmZ dad Z G d d e j        dd                    Z ej                    d	             Z ej                    d
             Zd Zd Z ej                    ej        ej        dd            Zd ZddZddZddZ	 ddZ ej                    d             ZdS )    N)source_from_cache)support)make_legacy_pycc                      	 t           _dt          j        v rda dS t          j        sda dS 	 t          j        t          j        dddg           da n# t
          j	        $ r da Y nw xY wt           S )N
PYTHONHOMETF-Ez-czimport sys; sys.exit(0))
$__cached_interp_requires_environmentosenvironr   has_subprocess_support
subprocess
check_callsys
executableCalledProcessError     D/opt/python-3.11.14/usr/lib/python3.11/test/support/script_helper.py interpreter_requires_environmentr      s    " ,32:%%3704- 	3805	9!3>4#')B#D E E E
 4900 , 	8 	8 	837000	8
 0/s   "A A%$A%c                       e Zd Z	 d ZdS )_PythonRunResultc                 ~   	 d}| j         | j        }}t          |          |k    rd|| d          z   }t          |          |k    rd|| d          z   }|                    dd                                          }|                    dd                                          }t          d| j        |||fz            )Ni@  s   (... truncated stdout ...)s   (... truncated stderr ...)asciireplacezRProcess return code is %d
command line: %r

stdout:
---
%s
---

stderr:
---
%s
---)outerrlendecoderstripAssertionErrorrc)selfcmd_linemaxlenr   r   s        r   failz_PythonRunResult.failA   s    B8TXSs88f/#vghh-?Cs88f/#vghh-?Cjj),,3355jj),,3355 # !% # # %% & & 	&r   N)__name__
__module____qualname__r%   r   r   r   r   r   >   s&        <& & & & &r   r   )r!   r   r   c                     t                      }|                    dd           }d|v r|                    d          }n| o| }t          j        ddg}|r|                    d           n|s|s|                    d           |                    dd           r(i }t          j        dk    rt          j        d	         |d	<   nt          j                                        }d
|vrd|d
<   |	                    |           |
                    |            t          j        |t          j        t          j        t          j        ||          }|5  	 |                                \  }}	|                                 t          j                     n,# |                                 t          j                     w xY w	 d d d            n# 1 swxY w Y   |j        }
t%          |
||	          |fS )N__cwd
__isolated-Xfaulthandlerz-Ir   
__cleanenvwin32
SYSTEMROOTTERM )stdinstdoutstderrenvcwd)r   popr   r   appendplatformr
   r   copyupdateextendr   PopenPIPEcommunicatekill_cleanup
returncoder   )argsenv_varsenv_requiredr7   isolatedr#   r6   procr   r   r!   s              r   run_python_until_endrI   ^   s/   355L
,,w
%
%Cx<<--<4$4n5H  	 l  ||L$''  <7"" !#
< 8C joo XFJJxOODHJO *
 c+ + +D 
 " "	"''))HCIIKKK!!!! IIKKK!!!!!" " " " " " " " " " " " " " " 
BBS))833s*   GF'(G)F88GGGc                r    t          |i |\  }}|j        r| s	|j        s| s|                    |           |S N)rI   r!   r%   )expected_successrD   rE   resr#   s        r   _assert_pythonrN      sR    ($;(;;MC # SV <L Jr   c                  $    	 t          dg| R i |S )NTrN   rD   rE   s     r   assert_python_okrR      s'    	 $2222222r   c                  $    	 t          dg| R i |S )NFrP   rQ   s     r   assert_python_failurerT      s'     %3$333(333r   )r4   r5   c                 2   	 t           j        g}t                      s|                    d           |                    |           |                    dt          t          j                            }d|d<   t          j
        |ft          j        | |d|S )Nr   r6   vt100r1   )r3   r4   r5   )r   r   r   r9   r=   
setdefaultdictr
   r   r   r>   r?   )r4   r5   rD   kwr#   r6   s         r   spawn_pythonrZ      s    
 H+-- OOD --tBJ//
0
0CCKH "JO#)&" " " " "r   c                     	 | j                                          | j                                        }| j                                         |                                  t          j                     |S rK   )r3   closer4   readwaitr   rB   )pdatas     r   kill_pythonra      sX    IGMMOOO8==??DHNN FFHHHKr   Fc                    |}|s|t           j        dz   z  }t           j                            | |          }t	          |dd          5 }|                    |           d d d            n# 1 swxY w Y   t          j                     |S )Npywzutf-8)encoding)r
   extseppathjoinopenwrite	importlibinvalidate_caches)
script_dirscript_basenamesourceomit_suffixscript_filenamescript_namescript_files          r   make_scriptrt      s    %O ,29t++',,z?;;K	k3	1	1	1 "[&!!!" " " " " " " " " " " " " " "!!!s   	A++A/2A/c                 j   |t           j        z   dz   }t           j                            | |          }t	          j        |d          5 }||                    t           j                  }t          |          dk    rJ|d         dk    r>t          t          |                    }t           j                            |          }|}nt           j                            |          }|                    ||           d d d            n# 1 swxY w Y   |t           j                            ||          fS )Nziprd      __pycache__)r
   rf   rg   rh   zipfileZipFilesplitsepr   r   r   basenamerj   )	zip_dirzip_basenamerr   name_in_zipzip_filenamezip_namezip_fileparts
legacy_pycs	            r   make_zip_scriptr      s<   	)%/Lw||G\22H	3	'	' 	18%%bf--E5zzQ59#=#=,->{-K-KLL
 g..z::( g..{;;{K000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 RW\\(K8888s   B4DDDr2   c                 P    t          j        |            t          | d|           d S )N__init__)r
   mkdirrt   )pkg_dirinit_sources     r   make_pkgr      s*    HW[11111r      c                    g }t          | dd          }|                    |           t          j                            |          }	t          | ||          }
|                    |
           |rCt          j        |d          }t          j        |
d          }
|                    ||
f           fdt          d|dz             D             }t          j        	                    |d         t          j                            |
                    }|t          j
        z   dz   }t          j        	                    | |          }t          j        |d	          5 }|D ]8}t          j        	                    ||	          }|                    ||           9|                    |
|           d d d            n# 1 swxY w Y   |D ]}t          j        |           |t          j        	                    ||          fS )
Nr   r2   T)doraisec                 V    g | ]%}t           j                            g|z            &S r   )r
   r}   rh   ).0ipkg_names     r   
<listcomp>z make_zip_pkg.<locals>.<listcomp>	  s-    FFFqhZ\**FFFr   r   rv   rd   )rt   r9   r
   rg   r~   
py_compilecompiler=   rangerh   rf   rz   r{   rj   unlink)r   r   r   rn   ro   depthcompiledr   	init_nameinit_basenamerr   	pkg_namesscript_name_in_zipr   r   r   nameinit_name_in_zips     `               r   make_zip_pkgr      s   FGZ44I
MM)G$$Y//Mg??K
MM+ 0&y$???	 (dCCCy+.///FFFFE!U1W4E4EFFFIimRW5E5Ek5R5RSS	)%/Lw||G\22H	3	'	' 88 	8 	8D!w||D-@@NN9&67777{$6777	8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
   
	$
 RW\\(,>????s   AF;;F?F?c                    t           j        rd }dt          j                            |            }t                       t           ||          d           t          j        dddd| d	g}t          j	        |          }t           || d
|j
                   d           |j
        rt          | d          d S t          d| d	           d S )Nc                     d|  dS )Nz===== z ======r   )texts    r   titlezrun_test_script.<locals>.title  s    )D))))r   zscript T)flushr   r,   r-   z-uz-vz completed: exit code z failed)r   verboser
   rg   r~   printr   r   r   runrC   r    rR   )scriptr   r   rD   rH   s        r   run_test_scriptr     s     -	* 	* 	* 4))&1133eeDkk&&&& dND&$O~d##eetDD4?DDEE	 	 	 	? 	3 D!1!1!1222	3 	3 	vt,,,,,r   )FrK   )r2   )r   F) collectionsrk   r   r
   os.pathr   r   rz   importlib.utilr   testr   test.support.import_helperr   r	   r   
namedtupler   requires_subprocessrI   rN   rR   rT   r?   STDOUTrZ   ra   rt   r   r   r   r   r   r   r   <module>r      s-           



 				           , , , , , ,       6 6 6 6 6 6 (, $%0 %0 %0P& & & & &-{-.@*>@ @ & & &@ 14 14 14h   3 3 34 4 4 )z7H " " " " ".	 	 		 	 	 	9 9 9 9(2 2 2 2 ,1@ @ @ @< - - - - -r   