python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_compileall.cpython-311.opt-1.pyc

ejddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
ZddlZddlZddlmZmZ	ddlmZddlmZddlmZedZn#eef$rdZYnwxYwddlmZdd	lmZdd
lm Z ddl!m"Z"ddl!m#Z#d
Z$dZ%dZ&GddZ'Gdde'ej(e#dZ)Gdde'ej(e#dZ*ej+ej,dGddej(Z-GddZ.Gdde.ej(e#dZ/Gdde.ej(e#dZ0eje1ed d!Gd"d#Z2Gd$d%e2ej(e#dZ3Gd&d'e2ej(e#dZ4e5d(krej6dSdS))N)mock
skipUnless)_cleanup_tests)ProcessPoolExecutor)_check_system_limitsTF)support)	os_helper)
script_helper)without_source_date_epoch)SourceDateEpochTestMetacL|sd}tj||S)Noptimization)	importlibutilcache_from_source)scriptopts  H/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_compileall.pyget_pycr$s*>++F+EEEc fddDS)Nc0g|]}t|S)r).0rrs  r
<listcomp>zget_pycs.<locals>.<listcomp>,s#666SGFC  666rrrrs`rget_pycsr"+s6666I6666rcrtj|j}tj|j}||kS)z8Returns True if two files have the same inode (hardlink))osstatst_ino)	filename1	filename2inode1inode2s    ris_hardlinkr+/s1
WY


&F
WY


&FVrceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZeedejddZdZeedejddZeedejdejddZeedejddejddZdZ d d!d"Z!d#Z"eedd$Z#d%Z$eedd&Z%d'Z&d(Z'd)Z(d*Z)d+Z*e+j,d,Z-dS)-CompileallTestsBasectj|_|tj|jtj|jd|_	tj|j	|_
t|j	dd5}|ddddn#1swxYwYtj|jd|_tj|j|_t	j|j	|jtj|jd|_t
j|jtj|jd|_t	j|j	|jdS)	N_test.pywutf-8encodingzx = 123
z	_test2.py_subdirz	_test3.py)tempfilemkdtemp	directory
addCleanupshutilrmtreer$pathjoinsource_pathrrrbc_pathopenwritesource_path2bc_path2copyfilesubdirectorymkdirsource_path3selffiles  rsetUpzCompileallTestsBase.setUp8s!)++
t~6667<<
CC ~778HII
$"C'
:
:
:	$dJJ{###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$GLLEE!889JKK
($*;<<<GLLCC
"###GLL):KHH($*;<<<<<s(C

CCctj|jd|_t|jdd5}|dddddS#1swxYwYdS)Nz_test_bad.pyr0r1r2zx (
)r$r;r<r7bad_source_pathr?r@rGs  radd_bad_source_filez'CompileallTestsBase.add_bad_source_fileHs!w||DNNKK
$&g
>
>
>	 $JJw	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 sA%%A),A)c6t|jd5}|d}dddn#1swxYwYtt	j|jj}tj	dtjjd|dz}||fS)Nrb<4sLLr)
r?r>readintr$r%r=st_mtimestructpackrrMAGIC_NUMBER)rHrIdatamtimecompares     rtimestamp_metadataz&CompileallTestsBase.timestamp_metadataMs
$,
%
%	!99R==D	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!BGD,--677+gy~'BA#k133W}s8<<cj	tj|jdn,#ttf$r|dYnwxYwt
jtj	5|
tj|jddddS#1swxYwYdS)N)rRrRz0filesystem doesn't support timestamps near 2**32
r$utimer=
OverflowErrorOSErrorskipTest
contextlibredirect_stdoutioStringIO
assertTrue
compileallcompile_filerHs r test_year_2038_mtime_compilationz4CompileallTestsBase.test_year_2038_mtime_compilationUs
	NHT%'=>>>>w'	N	N	NMMLMMMMM	N

'


6
6	G	GOOJ3D4DEEFFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G!&AA.-B((B,/B,cj	tj|jdn,#ttf$r|dYnwxYwt
jtj	5|
tj|jddddS#1swxYwYdS)N) rnz+filesystem doesn't support large timestampsr^rjs rtest_larger_than_32_bit_timesz1CompileallTestsBase.test_larger_than_32_bit_times_s	IHT%~6666w'	I	I	IMMGHHHHH	I

'


6
6	G	GOOJ3D4DEEFFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	Grlctjdrtjdtj|j|j|	t|jd5}|t|d}dddn#1swxYwYt|jd5}||||dddn#1swxYwY|j|	t!j|jdd|j|	dS)	zOCheck that compileall recreates bytecode when the new metadata is
        used.SOURCE_DATE_EPOCHzSOURCE_DATE_EPOCH is setrONwbFTforcequiet)r$environgetunittestSkipTest
py_compilecompiler=assertEqualr\r?r>rSlenr@assertNotEqualrhcompile_dirr7rg)rHmetadatarIbcs    rrecreation_checkz$CompileallTestsBase.recreation_checkis:>>-..	@#$>???4+,,,$113344
$,
%
%	-S]]^^,B	-	-	-	-	-	-	-	-	-	-	-	-	-	-	-
$,
%
%	JJx   JJrNNN																T446677t~U$GGGG00223333s$>*B44B8;B8+DDDcx|tjdtjjdddS)NrQrr)rrVrWrrrXrjs r
test_mtimezCompileallTestsBase.test_mtimeys@fk'9>3N*+Q00	1	1	1	1	1rc0|ddS)Ns)rrjs rtest_magic_numberz%CompileallTestsBase.test_magic_number~sk*****rc|j|jfD]}	tj|#YxYw|tj|jdd|tj	|jo$tj	|jtj|j|tj
|jdd|tj	|jo#tj	|jtj|jtj|j||
tj|jdd|
tj
|jdddS)NFTrsr )r>rBr$unlinkrgrhrir=r;isfilerr7rMassertFalserL)rHfns  rtest_compile_filesz&CompileallTestsBase.test_compile_filess</		B
	"





/0@6;4III	J	J	Jt|44:GNN4=999	;	;	;
	$,
.t~U59;;;	<	<	<t|446t}55	7	7	7
	$,
	$-     """01E7<AGGG	H	H	H/6;1FFF	G	G	G	G	Gs'+c|tj|jtj5}|tj	tj|jdddn#1swxYwY|
|d|tj|jdS)Nz&Compiling ([^WindowsPath|PosixPath].*))rr$r;rr>rcaptured_stdoutrgrhripathlibPathr=assertRegexgetvalue)rHstdouts  rtest_compile_file_pathlikez.CompileallTestsBase.test_compile_file_pathlikes
55666

$
&
&	U&OOJ3GLAQ4R4RSSTTT	U	U	U	U	U	U	U	U	U	U	U	U	U	U	U**,UVVVt|4455555s?BBBc|tj|j|t
jtj	|j
tj	dd|tj|jdS)N	ddir_pathr )ddirrurr$r;rr>rgrhrirrr=rjs rtest_compile_file_pathlike_ddirz3CompileallTestsBase.test_compile_file_pathlike_ddirs55666
/T=M0N0N5<\+5N5N67999	:	:	:	
t|4455555rc|tj|j|t
jtj	|j
tj	dd|tj|jdSN
stripdir_pathr )stripdirrurrjs r#test_compile_file_pathlike_stripdirz7CompileallTestsBase.test_compile_file_pathlike_stripdirs55666
/T=M0N0N9@o9V9V67999	:	:	:	
t|4455555rc|tj|j|t
jtj	|j
tj	dd|tj|jdSNprependdir_pathr )
prependdirrurrjs r%test_compile_file_pathlike_prependdirz9CompileallTestsBase.test_compile_file_pathlike_prependdirs55666
/T=M0N0N;B<HY;Z;Z67999	:	:	:	
t|4455555rctjj|jg5|t
jddddn#1swxYwYtjj|jg5||	t
jdddddddS#1swxYwYdS)Nr;r ruFT)skip_curdirrtru)
testtest_importlibrimport_stater7rgrhcompile_pathrMrrjs rtest_compile_pathz%CompileallTestsBase.test_compile_paths

 
%
2
28H
2
I
I	>	>OOJ3!<<<===	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>
 
%
2
28H
2
I
I	K	K$$&&&Z4;?qJJJ
K
K
K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	Ks#)A!!A%(A%?C##C'*C'ctj|jd}tj|d}tj|t|d5	dddn#1swxYwYt
j||tj	tj|ddS)NrYrIrr__pycache__)
r$r;r<r7rEr?rhrirexists)rHdata_dir	data_files   rtest_no_pycache_in_non_packagez2CompileallTestsBase.test_no_pycache_in_non_packages7<<77GLL622	

)T
"
"																		***X}(M(MNNOOOOOs*A88A<?A<c|tjtj5|t
j|jddddS#1swxYwYdSN)	rMrcrdrerfrrhrirLrjs r#test_compile_file_encoding_fallbackz7CompileallTestsBase.test_compile_file_encoding_fallbacks  """

'


6
6	L	LZ4T5IJJKKK	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	L	Ls-A44A8;A8cXd\}}tj|jd|tj|j|}|tj	
|tj|j|}|tj	
|tj|j|}|tj	
|dS)NF)rr)rrTruoptimizer)
rhrr7rrrr=rgr$r;rrArF)rHrrcachedcached2cached3s      r
test_optimizez!CompileallTestsBase.test_optimizes29
#t~THMMMM11$2B?B2DDv..///.2243D@C3EEw//000.2243D@C3EEw//00000rc|tj|jtj5}tjtj
|jdddn#1swxYwY|
d}||d|tj|jdS)Nrz$Listing ([^WindowsPath|PosixPath].*))rr$r;rr>rrrhrrrr7r
splitlinesrrg)rHrlines   rtest_compile_dir_pathlikez-CompileallTestsBase.test_compile_dir_pathlikes55666

$
&
&	A&"7<#?#?@@@	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A  ++--a0FGGGt|4455555s,BB
Bc|tj|j|t
jtj	|j
tj	dd|tj|jdSrrr$r;rr>rgrhrrrr7rjs r"test_compile_dir_pathlike_stripdirz6CompileallTestsBase.test_compile_dir_pathlike_stripdirs55666
.w|DN/K/K8?_8U8U56888	9	9	9	
t|4455555rc|tj|j|t
jtj	|j
tj	dd|tj|jdSrrrjs r$test_compile_dir_pathlike_prependdirz8CompileallTestsBase.test_compile_dir_pathlike_prependdirs55666
.w|DN/K/K:A,GX:Y:Y56888	9	9	9	
t|4455555rrequires multiprocessingz&concurrent.futures.ProcessPoolExecutorcrtj|jdd||jdSNTruworkersrhrr7rgcalledrH	pool_mocks  rtest_compile_pool_calledz,CompileallTestsBase.test_compile_pool_calleds9	t~T1EEEE	()))))rc|td5tj|jdddddS#1swxYwYdS)Nz%workers must be greater or equal to 0)r)assertRaisesRegex
ValueErrorrhrr7rjs r!test_compile_workers_non_positivez5CompileallTestsBase.test_compile_workers_non_positives

#
#J$KMM	?	?"4>2>>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?sAA	A	ctj|jdd||jddddS)NTrrrmax_workers)rhrr7r|	call_argsrs  rtest_compile_workers_cpu_countz2CompileallTestsBase.test_compile_workers_cpu_countsG	t~T1EEEE,Q/
>EEEEErzcompileall.compile_filectj|jd||j||jdS)NTr)rhrr7rrrg)rHcompile_file_mockrs   rtest_compile_one_workerz+CompileallTestsBase.test_compile_one_workersO	t~T::::)***)011111rNnewcrtj|jdd||jdSrr)rHrs  r$test_compile_missing_multiprocessingz8CompileallTestsBase.test_compile_missing_multiprocessings:	t~T1EEEE)011111rcd}|j}td|dzD]s}tj|d|}tj|d}tj|t
j|j|ttj
|}tj
|jd|dz
|tj|tj
|jd||tj|dS)Nrdir_z	script.pyT)ru	maxlevels)r7ranger$r;r<rEr9rCr=rrrrhrrrrg)rHdepthr;isourcepyc_filenames      rtest_compile_dir_maxlevelsz.CompileallTestsBase.test_compile_dir_maxlevelss~q%!)$$	6	6A7<<jQjj11DW\\$44FHTNNNOD,f5555 ~77??t~TUQYOOOO55666t~TUKKKK|4455555rT)parallelcddg}|j}g}|D]u}tj||}tj|tj|dd|tj|ddv|r|ttj|jd||rdnd	
|||D]}||
|j|tj|}|t#|jtjzd}	tj|\}
}
}tj||	}t(jj|}
||
j||d|dtj|dS)
z@Recursive compile_dir ddir must contain package paths; bpo39769.rfoo__init__rmodzdef fn(): 1/0
fn()
Tr r)rurrN")r7r$r;r<rEr
make_scriptappendr8multiprocessing_cleanup_testsrhrrg
startswithrrrr}sepassert_python_failurerrget_code_from_pycr|co_filenameassertInfsdecode)rHrrfullpathr;modssubdirrmodcodemodpath_errexpected_inmod_code_objs              r_test_ddir_onlyz#CompileallTestsBase._test_ddir_only+sE?~	L	LF7<<f--DHTNNN%dJ;;;KK
1$2IKK
L
L
L
L	;OO9:::d%,1	.	.	.	.	
	@	@COOCNN4>::C@@@n66s;;G#dnRV344556G%;GDDIAq#',,tW55K.3EEgNNL\5{CCCMM,k,,,bk#.>.>????	@	@rc0|ddS)=Recursive compile_dir ddir= contains package paths; bpo39769.
<a prefix>Frrrrjs rtest_ddir_only_one_workerz-CompileallTestsBase.test_ddir_only_one_workerHs###FFFrc0|ddS)rrTrr	rjs rtest_ddir_multiple_workersz.CompileallTestsBase.test_ddir_multiple_workersLs###EEErc0|ddS)?Recursive compile_dir ddir='' contains package paths; bpo39769.rFrr	rjs rtest_ddir_empty_only_one_workerz3CompileallTestsBase.test_ddir_empty_only_one_workerQs##e#<<<rc0|ddS)rrTrr	rjs r test_ddir_empty_multiple_workersz4CompileallTestsBase.test_ddir_empty_multiple_workersUs##d#;;;rcgd}tjj|jg|R}tj|tj|dd}tj	|}tjj|jg|ddR}tj|d|tj|\}}}tjj|dd}	|
|	t|tj||t|tjdS)Nrbuildrealr;r1 / 0r T)rurr2r$r;r<r7makedirsr
rrrrrhrrrstrsysgetdefaultencodingassertNotIn)
rHrr;rrrrcoutrrs
          rtest_strip_onlyz#CompileallTestsBase.test_strip_onlyZs:444w|DN6X666
D*4AA
^
-
-f
5
57<>"1">>>t4(CCCC$:2>>CglHQRRL1

c466777	
	
	
	
c466777	
	
	
	
	
rcgd}tjj|jg|R}tj|tj|dd}tj	|}d}tj|d|tj|\}}}tjj||jg|R}	|
|	t|tjdS)Nrrr/fooT)rurr2)r$r;r<r7rr
rrrrrhrrrrrr)
rHrr;rrrrrrrs
          rtest_prepend_onlyz%CompileallTestsBase.test_prepend_onlyms444w|DN6X666
D*4AA
^
-
-f
5
5
t4JGGGG$:2>>Cgl:t~IIII

c466777	
	
	
	
	
rcgd}tjj|jg|R}tj|tj|dd}tj	|}tjj|jg|ddR}d}tj|d||tj|\}}}	tjj|g|ddR}
|
|
t|	tj||t|	tjdS)	Nrrrr r!T)rurrr2rrHrr;rrrrrrrrs           rtest_strip_and_prependz*CompileallTestsBase.test_strip_and_prepend|sY444w|DN6X666
D*4AA
^
-
-f
5
57<>"1">>>
t4(0Z	I	I	I	I$:2>>Cgl:====

c466777	
	
	
	
c466777	
	
	
	
	
rc2gd}tjj|jg|R}tj|tj|dd|t5tj
|ddddddddS#1swxYwYdS)N)rrrr;rrrTz/barr!)rurrr)r$r;r<r7rr
rassertRaisesrrhr)rHrr;s   rtest_strip_prepend_and_ddirz/CompileallTestsBase.test_strip_prepend_and_ddirs<<<w|DN6X666
D!$888


z
*
*	G	G"4t&,2v
G
G
G
G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	Gs%BBBctj|jdd}g}dD]6}|tj||7ddgddgddggdg}|D]}tj|d	|
|D]e}|	tj||	tj
||V#t$rYbwxYwdS)Ntest_optimizationa = 0rrr rrrrr rTr)r
rr7rrrrrhrirgr$r;rr	Exception)rHrr	opt_leveltest_combinationsopt_combinations      r!test_multiple_optimization_levelsz5CompileallTestsBase.test_multiple_optimization_levelssB*4>+>+244$	P	PIIIin66vDM7OO
P
P
P
PVaVaVYYY?0		O#F$-<
>
>
>
>,

	r)} = =>>>Ibm,,,, D	
		s=C
C%$C%ctj|jddd}tj|jddd}tj|jddd}tj|tj|tj|tj|dd}tj|dd}tj|d	}tj|d
}tj||tj||tj	
|}tj	
|}	tj|d||
tj||tj|	dS)
Nrdirallowedsymlinks
prohibitedtest_allowedr+test_prohibitedtest_allowed.pytest_prohibited.pyT)ru
limit_sl_dest)r$r;r<r7rr
rsymlinkrrrrhrrgrr
rHallowed_path
symlinks_pathprohibited_pathallowed_scriptprohibited_scriptallowed_symlinkprohibited_symlink
allowed_bc
prohibited_bcs
          rtest_ignore_symlink_destinationz3CompileallTestsBase.test_ignore_symlink_destinationsw||DNFE9MMT^VUJOO
',,t~vulSS
L!!!
M"""
O$$$'2<QXYY)5oGXZabb',,}6GHHW\\-9MNN

>?333

$&8999^55oFF
!889KLL
}DUUUUz22333
6677777r).__name__
__module____qualname__rJrMr\rkrorrrrrrrrrrrrrrrr_have_multiprocessingrpatchrrrrrrrr
rrrrr"r%r(r1r	skip_unless_symlinkrGrrrr-r-6s===    
GGGGGG444 111
+++GGG2666666666666KKK
P
P
PLLL
1
1
1666666666Z%'ABBTZ899**:9CB*???
Z%'ABBTZ899FF:9CBFZ%'ABBTZ899TZ)**22+*:9CB2
Z%'ABBTZ8dCCCTZ)**22+*DCCB2666"15@@@@@:GGGZ%'ABBFFCBF===Z%'ABB<<CB<


&








*GGG&"88#"888rr-ceZdZdS)CompileallTestsWithSourceEpochNrHrIrJrrrrOrO	DrrO)	metaclasssource_date_epochceZdZdS)!CompileallTestsWithoutSourceEpochNrPrrrrUrUrQrrUz tempdir is not encodable on WASIc$eZdZdZdZdZdZdS)EncodingTestzTIssue 6716: compileall should escape source code when printing errors
    to stdout.c>tj|_tj|jd|_t|jdd5}|d|dddddS#1swxYwYdS)Nr/r0r1r2z# -*- coding: utf-8 -*-
u
print u"€"
)	r5r6r7r$r;r<r=r?r@rGs  rrJzEncodingTest.setUps!)++7<<
CC
$"C'
:
:
:	,dJJ2333JJ*+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,s+BBBc8tj|jdSr)r9r:r7rjs rtearDownzEncodingTest.tearDowns
dn%%%%%rc	tj}tjtjdt_tj|j|t_dS#|t_wxYw)Nasciir2)rrre
TextIOWrapperBytesIOrhrr7)rHorig_stdouts  r
test_errorzEncodingTest.test_errors\	%*K)"*,,HHHCJ"4>222$CJJJCJ$$$$sAA&&A4N)rHrIrJ__doc__rJrZr`rrrrWrWsK,,,&&&%%%%%rrWcZeZdZdZdZejdZdZdZ	dZ
dZdZd	Z
eejd
dZejd
dZd
dgfdddgfdddgffD]\ZZZeefdZeedez<dZdZedZdZdZejdZdZ dZ!dZ"d Z#d!Z$d"Z%d#Z&d$Z'd%Z(d&Z)d'Z*d(Z+d)Z,e-e.d*d+Z/e0j1d,d-Z2d.Z3d/Z4ejd0Z5d1Z6d2Z7d3S)4CommandLineTestsBasezTest compileall's CLI.ctj|_|tj|jtj|jd|_	t
j
|j	tj|j	d|_tj
|j	dd|_tj
|j	dd|_dS)Nrrrrbar)r5r6r7r8r	r:r$r;r<pkgdirrEpkgdir_cachedirr
rinitfnbarfnrjs rrJzCommandLineTestsBase.setUps!)++	($.999gll4>599
!w||DKGG#/ZLL".t{E2FF


rc#Ktj}tj|jd}	|t_|j|dV|t_dS#|t_wxYw)z&Adjust and restore sys.pycache_prefix.
__testcache__)
PYTHONPATHPYTHONPYCACHEPREFIXN)rpycache_prefixr$r;r<r7)rH
old_prefix
new_prefixs   rtemporary_pycache_prefixz-CommandLineTestsBase.temporary_pycache_prefixsy'
W\\$./BB
	,!+C"n'1



",CC++++sAA)c<gtjddd|S)Nz-S-mrh)r!optim_args_from_interpreter_flags)rHargss  r
_get_run_argsz"CommandLineTestsBase._get_run_args
s<:<<(	rctj||i|ddi\}}}|d||S)NPYTHONIOENCODINGr1r)r
assert_python_okrvr|rHruenv_varsrrrs      rassertRunOKz CommandLineTestsBase.assertRunOKsb$5,,T2236>33*1333C	
c"""
rcdtj||i|ddi\}}}|||fS)Nrxr1)r
rrvrzs      rassertRunNotOKz#CommandLineTestsBase.assertRunNotOKsS$:++D1125=22)0222C3|rctj|}|tj|dSr)rrrrgr$r;rrHrr;s   rassertCompiledz#CommandLineTestsBase.assertCompileds=~//33t,,-----rctj|}|tj|dSr)rrrrr$r;rrs   rassertNotCompiledz&CommandLineTestsBase.assertNotCompiled s?~//33--.....rcBtj|jdd}|5}|jdi|||||j||jddddS#1swxYwYdS)Nbazrr)	r
rr7rqr|rrrhri)rHbazfnenvs   rtest_no_args_compiles_pathz/CommandLineTestsBase.test_no_args_compiles_path$s)$.%DD

*
*
,
,	/D##s###&&&""4;///""4:...		/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sABBBcpuchtj|jdd}|5}|jdi|t
j|}dddn#1swxYwYtj	|tj
dz
fdztj|j}|jdi|tj|j}|
|||jdi|tj|j}|||dS)Nrr<r -fr)r)r
rr7rqr|rrrr$r_timer%rUr|r~)rHrrpycpathrZmtime2s      r test_no_args_respects_force_flagz5CommandLineTestsBase.test_no_args_respects_force_flag-sl)$.%DD

*
*
,
,	>D##s###n66u==G	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	49;;r>+A-...  )3!!*'''%%%%%!!*E6*****s-A))A-0A-c tj|jdd|5}|jdi|}dddn#1swxYwY|d||jdi|}|d|dS)NrrsListing -qr)r)r
rr7rqr|rr)rHrnoisyrus    r test_no_args_respects_quiet_flagz5CommandLineTestsBase.test_no_args_respects_quiet_flag@s!$.%<<<

*
*
,
,	,$D$++s++E	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,

k5)))  ----e,,,,,sA

AAnormalpycrz	opt-1.pyc-Odoubleoptimizez	opt-2.pycz-OOctj|ddd|jgz|tj|jtfddD}|	tt	j
|j||fdt	j
|jDdS)Nrsrhrc3bK|])}|tjjV*dSr)formatrimplementation	cache_tag)rbaseexts  r	<genexpr>z)CommandLineTestsBase.f.<locals>.<genexpr>UsSKK"&#kk#*<*FLLKKKKKKr)z__init__.{}.{}z	bar.{}.{}c>g|]}||Sr)endswith)rrrs  rrz*CommandLineTestsBase.f.<locals>.<listcomp>Ys9333R!#S!1!13b333r)r
ryrfrgr$r;rrgsortedr|listdirr)rHrswitchexpecteds `  rfzCommandLineTestsBase.fPs	*V|T4;7.8
:
:
OOBGNN4+?@@AAAKKKK*IKKKKKHVBJt/C$D$DEExPPP33332:dk+B+B333
4
4
4
4
4rtest_pep3147_paths_cB|dd|j|tj|jtgd}|ttj	|j|dS)Nz-br)__init__.pyz__init__.pyczbar.pyzbar.pyc)
r|rfrr$r;rrgrr|r)rHrs  rtest_legacy_pathsz&CommandLineTestsBase.test_legacy_paths]s	
tT[111(<==>>>&&&''
4; 7 788(CCCCCrc`|d|j|tj|jtj|jd}|tj||d|j|tj|j|tj|dS)Nrr)	r|rfrgr$r;rrgr<r)rH
cachecachedirs  rtest_multiple_runsz'CommandLineTestsBase.test_multiple_runsgs	
t{+++t';<<===T%9=II

66777t{+++t';<<===
6677777rc:|d|jtj|j}t
j|tjdz
fdzt
j	|j
}|d|jt
j	|j
}||||dd|jt
j	|j
}|||dS)Nrrr r)
r|rfrrrrir$r_rr%rUr|r~)rHrrZrs    r
test_forcezCommandLineTestsBase.test_forcetst{+++.224:>>
49;;r>+A-...  )t{+++!!*'''tT[111!!*E6*****rc\tj|jd}tj|tj|dd}tj|dd}|dd|j|||	tj
tj|d|d|j||||dS)Nspamrrhamrz-lr)r$r;r<rfrEr
rr|rrrr)rH
subpackage	subinitfnhamfns    rtest_recursion_controlz+CommandLineTestsBase.test_recursion_controlsW\\$+v66

!-j*bII	)*eR@@tT[111y)))Z(O(OPPQQQt{+++I&&&E"""""rcDtj|jd}tj|d}tj|d}|||fD]}t	j|tj|d}t	j|dd}t	j|dd}t	j|dd}|dd|j|||	tj
tj|d	|dd
|j|||||||dd|j|||||||||dd|j||||||||dS)
Nrreggsrreggrz-r 0rz-r 1z-r 2z-r 5)r$r;r<rfr
make_pkgrr|rrrr)	rHrsubpackage2subpackage3pkgrrspamfneggfns	         rtest_recursion_limitz)CommandLineTestsBase.test_recursion_limitsZW\\$+v66
gll:u55gll;77[9	(	(C"3''''GLL];;	)*eR@@*;CC)+ubAAvt{333y)))GNN27<<
MBBCC	E	E	E	
vt{333I&&&E"""v&&&vt{333I&&&E"""F###u%%%vt{333I&&&E"""F###E"""""rc	tj|jd}t	j|tjdtj|dtjdtj|d|d|j|tj|jdddddS)Nr.evilevil2rr)	r$r;r<rfr
rr<r|r)rHrs  rtest_symlink_loopz&CommandLineTestsBase.test_symlink_loops
gll4;//s###

3S&11222

3S'22333t{+++BGLLK-

					rc||j}|d|j}|d||d|dS)Nrr)r|rfr~r|)rHrrus   r
test_quietzCommandLineTestsBase.test_quiets`  --  t{33C'''e$$$$$rctj|jdd|d|j\}}}|d|j\}}}|d||d|dS)Ncrunchyfrog
bad(syntaxrz-qqr)r
rrfr~r~r|)rHrrusilents    rtest_silentz CommandLineTestsBase.test_silents!$+}lKKK))$<<5!**5$+>>61C'''f%%%%%rc|ddd|j||j||jdS)Nrz-xz
ba[^\\/]*$)r|rfrrirrhrjs rtest_regexpz CommandLineTestsBase.test_regexpsPt]DK@@@tz***DK(((((rctj|jd}tj|tj|dd}tj|dd}|d|j||	|j
|	|j|	||	|dS)Nfoo2rrbar2r)r$r;r<r7rEr
rr|rfrrhri)rHpkgdir2init2fnbar2fns    rtest_multiple_dirsz'CommandLineTestsBase.test_multiple_dirss',,t~v66
+GZDD*7FB??t{G444DK(((DJ'''G$$$F#####rctj|jdd|ddd|j\}}}||ddS)Nrrr-ddinsdaleFile "dinsdale)r
rrfr~rrHrrrs    rtest_d_compile_errorz)CommandLineTestsBase.test_d_compile_errorsW!$+}lKKK**4z4;OOC/00000rctj|jdd}|ddd|jtj|jdd}tj|}tj|tj	
|jdtj|tj|d	
\}}}|
|ddS)Nrzraise Exceptionrrrbingz
import bazzbaz.pycF)
__isolatedr)r
rrfr|rrrr$renamer;r<removerr)rHrrrrrrs       rtest_d_runtime_errorz)CommandLineTestsBase.test_d_runtime_errors)$+u>OPPtZ===

&t{FL
I
In..u55
	#rw||DK;;<<<
	%$:2%PPPC/00000rc|dtj|jd|j\}}}||d||d|tj	tj|j
dS)N-i
nosuchfilesrror.*nosuchfiles	Traceback)r~r$r;r<r7rfrassertNotRegexrrrrrrgrs    rtest_include_bad_filez*CommandLineTestsBase.test_include_bad_files**"',,t~|<<dkKKC1222C...	(H(H,0,@)B)BCC	D	D	D	D	Drctj|jdd}tj|jdd}tj|jdd}tj|jdd}ttj|jddd	5}|tj|jd
tj	z|tj|jdtj	zdddn#1swxYwY|
dtj|jd|||||||||dS)
Nf1rf2f3f4l1r0r1r2f1.pyf2.pyr)
r
rrfr?r$r;r<r7r@linesepr|rrrHrrrrrs      rtest_include_file_with_argz/CommandLineTestsBase.test_include_file_with_args

&t{D"
=
=

&t{D"
=
=

&t{D"
=
=

&t{D"
=
=
"',,t~t44cG
L
L
L	DPRHHRW\\$+w77
BCCCHHRW\\$+w77
BCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	
rw||DNDAA2FFFBBr"""Bs"BD99D=D=ctj|jdd}tj|jdd}tj|jdd}tj|jdd}ttj|jddd	5}|tj|jd
tj	zdddn#1swxYwY|
dtj|jd||||||||dS)Nrrrrrrr0r1r2rr)
r
rrfr?r$r;r<r7r@rr|rrrs      rtest_include_file_no_argz-CommandLineTestsBase.test_include_file_no_args

&t{D"
=
=

&t{D"
=
=

&t{D"
=
=

&t{D"
=
=
"',,t~t44cG
L
L
L	DPRHHRW\\$+w77
BCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	Drw||DNDAABBBr"""Br"""r"""""s"AC44C8;C8cntj|jdd}tj|jdd}tj|jdd}tj|jdd}tj|dddgz}|j|tjz	d	tj
|||||||||dS)
Nrrrrrrr-r\)
r
rrfspawn_pythonrvstdinr@r$rencodekill_pythonrr)rHrrrrps      rtest_include_on_stdinz*CommandLineTestsBase.test_include_on_stdins


&t{D"
=
=

&t{D"
=
=

&t{D"
=
=

&t{D"
=
=&););B)?)?4+)MO	

r"*},,W55666!!$$$r"""r"""Br"""""rcFtj|jdd}|d|j||j\}}}||d||||j||jdS)Nrzsyntax(errorrsrror)	r
rrfr~rhrirrr)rHbingfnrrrs     r!test_compiles_as_much_as_possiblez6CommandLineTestsBase.test_compiles_as_much_as_possibles*4;OO**<+14:??Cg&&&v&&&DK(((DJ'''''rc\|d}||ddS)NbadfilenamesCan't list 'badfilename')r|r)rHrs  r!test_invalid_arg_produces_messagez6CommandLineTestsBase.test_invalid_arg_produces_message%s2}--9:::::rctj|jddtjtj|jd}|	d|jt|d5}|}dddn#1swxYwY|t|dddd	|	d
|jt|d5}|}dddn#1swxYwY|t|dddddS)Nrrrz --invalidation-mode=checked-hashrOlittlerz"--invalidation-mode=unchecked-hashr)r
rrfrrrr$r;r<r|r?rSr|rT
from_bytes)rHrfprYs    rtest_pyc_invalidation_modez/CommandLineTestsBase.test_pyc_invalidation_mode)s!$+tR888n..GLLg..00;T[III
#t__	7799D															QqS	8<<dCCC=t{KKK
#t__	7799D															QqS	8<<dCCCCCs$	B**B.1B.D88D<?D<rctj|jdd}g}tdD]}tj|jd|}t	j|tj|dd}|	tj|dd|
|jdd|||D]}||dS)Nrrrzfoo{}rz-j0)r
rr7rr$r;r<rrErr|r)rHrfilessuffixrfrrIs       rtest_workersz!CommandLineTestsBase.test_workers6s*4>62FFAhh	H	HFW\\$.'..2H2HIIFHV*6:rBBBLL2662FFGGGGs333F###	&	&D%%%%	&	&rzcompileall.compile_dirc0tjdtj|jdg5tj||j|	|j
dddddddS#1swxYwYdS)Nzsys.argvz-j0rrrr)rrLr
executabler7rhmainrgrr|r)rHrs  rtest_workers_available_coresz1CommandLineTestsBase.test_workers_available_coresEs
Z
 ^T^UCEEE	F	FOOOK.///[226yA1EEE		F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	F	FsABBBcgd}tjj|jg|R}tj|tj|dd}tj	|}tjj|jg|ddR}d}|
d|d||tj|\}}}	tjj|g|ddR}
||
t|	tj||t|	tjdS)	Nrrrr r!z-sz-pr2)r$r;r<r7rr
rrrrr|rrrrrrr$s           rr%z+CommandLineTestsBase.test_strip_and_prependMsN444w|DN6X666
D*4AA
^
-
-f
5
57<>"1">>>
xz4@@@$:2>>Cgl:====

c466777	
	
	
	
c466777	
	
	
	
	
rc
Ztj|jd}tj|tj|dd}g}dD]6}|tj	
||7ddgddgddggd	g}|D]}|j|gd
|DR|D]r}|tj
|t|	tj||c#t $rYowxYwdS)N
optimizationsr*r+r,rr12)rrrc3:K|]}dt|zVdS)z-oN)r)rns  rrzICommandLineTestsBase.test_multiple_optimization_levels.<locals>.<genexpr>ps,$L$LqTCFF]$L$L$L$L$L$Lr)r$r;r<r7rr
rrrrrr|rgrrTrr-)rHr;rrr.r/r0s       rr1z6CommandLineTestsBase.test_multiple_optimization_levelsas~w||DNO<<
D*4+>+244$	P	PIIIin66vDM7OO
P
P
P
P!3Z!3Z!3Z,__. 1		ODTM$L$LO$L$L$LMMMM,

	r#i../A B BCCCIbm,,,, D	
		s?D
D'&D'ctj|jddd}tj|jddd}tj|jddd}tj|tj|tj|tj|dd}tj|dd}tj|d	}tj|d
}tj||tj||tj	
|}tj	
|}	||d||tj
||tj
|	dS)Nrr3r4r5r6r7r+r8r9r:z-e)r$r;r<r7rr
rr<rrrr|rgrrr=s
          rrGz4CommandLineTestsBase.test_ignore_symlink_destinationxsw||DNFE9MMT^VUJOO
',,t~vulSS
L!!!
M"""
O$$$'2<QXYY)5oGXZabb',,}6GHHW\\-9MNN

>?333

$&8999^55oFF
!889KLL
l;;;z22333
6677777rc>||jdddS)N-o 1--hardlink-dupes)r~r7rjs rtest_hardlink_bad_argsz+CommandLineTestsBase.test_hardlink_bad_argss%	
DNF4FGGGGGrc
dD]:}tj5}||5tj|dd}t|}gd}|r|d|j|g|R|t|d|d||t|d|d	||t|d|d	|dddn#1swxYwYdddn#1swxYwY<dS)
N)TFdeduprr+)rz-o 0rz-o 2rrrr )
r5TemporaryDirectorysubTestr
rr"rr|r|r+)rHr!r;rpycsrus      r
test_hardlinkz"CommandLineTestsBase.test_hardlinks#
	K
	KE,..
K$\\\..KK*6tXwOOF#F++D999D8$6777$D$T1D1111$$[a$q'%B%BEJJJ$$[a$q'%B%BEJJJ$$[a$q'%B%BEJJJKKKKKKKKKKKKKKK
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K
	K
	Ks5D2CDD2DD2"D#D22D6	9D6	N)8rHrIrJrarJrccontextmanagerrqrvr|r~rrrrrrequires_resourcerrnamerrrlocalsrrrrrr	rMrrrrrrrrrrrrrr	rrKrrrLrr%r1rGrr%rrrrcrcsr  GGG,,,
...//////Wu%%++&%+"Wu%%--&%-
5"	[4&)	;033c6
F
	4
	4
	4
	423&-..DDD888
+
+
+
#
#
# # # #D"#"%%%&&&)))
	$	$	$111
111DDD   ######(((;;;DDDZ%'ABB&&CB&TZ())FF*)F


(."88#"80HHH
KKKKKrrcceZdZdS)CommandLineTestsWithSourceEpochNrPrrrr+r+rQrr+ceZdZdS)CommandLineTestsNoSourceEpochNrPrrrr-r-rQrr-linkzrequires os.linkceZdZdZejdZddZddddd	Zd
Z	ddZ
dZd
ZddZ
dZdZdZdZdZdS)HardlinkDedupTestsBasecd|_dSrrrjs rrJzHardlinkDedupTestsBase.setUps
			rc#Ktj5}||_|Vd|_ddddS#1swxYwYdSr)r5r"r;)rHr;s  rtemporary_directoryz*HardlinkDedupTestsBase.temporary_directorys

(
*
*	dDIJJJDI																		s6::rc8tj|j||Sr)r
rr;)rHcoder(s   rrz"HardlinkDedupTestsBase.make_scripts(D$???rTrF)r!rrtcBtj|jd|||dS)NT)rurhardlink_dupesrt)rhrr;)rHr!rrts    rrz"HardlinkDedupTestsBase.compile_dirs9tyx.35	B	B	B	B	B	Brc|5|d|t5t	j|jddddddn#1swxYwY|t5t	j|jdddgddddn#1swxYwYddddS#1swxYwYdS)NpassTr)rurr7)r3rr'rrhrr;rjs r
test_bad_argsz$HardlinkDedupTestsBase.test_bad_argss
%
%
'
'		<		<V$$$"":..
<
<&tyq6:<<<<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<"":..
<
<&ty1v6:<<<<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<		<		<		<		<		<		<		<		<		<		<		<		<		<		<		<		<		<		<sY0CA/#C/A3	3C6A3	7C C4CC	CC	CCCcg}|r|d|d|r|dd|S)Nz'module docstring'zx = 1z
assert x == 1
)rr<)rH	docstring	assertionliness    rcreate_codez"HardlinkDedupTestsBase.create_codes`	/LL-...
W	*LL)))yyrc#ZKdD]%}dD] }|||}|||fV!&dS)N)FTr=r>)r@)rHr=r>r5s    r
iter_codesz!HardlinkDedupTestsBase.iter_codessa&	3	3I*
3
3	'')y'QQY	22222
3	3	3rc
|D])\}}}|||5|5||}t	|}|d|t|d|d|t|d|d|t|d|ddddn#1swxYwYdddn#1swxYwY+dS)NrBFr rrr )rCr#r3rr"rrr+)rHr5r=r>rr$s      r
test_disabledz$HardlinkDedupTestsBase.test_disableds*.//*;*;	D	D&D)Y	YGG
D
D--//DD!--d33F#F++D$$5$111$$[a$q'%B%BCCC$$[a$q'%B%BCCC$$[a$q'%B%BCCC
DDDDDDDDDDDDDDD
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D	D	Ds6D3CDD3D  D3#D $D33D7	:D7	cPt|}|t|d|d||t|d|d|o||t|d|d|dS)Nrrr )r"r|r+)rHrr=r>r$s     rcheck_hardlinksz&HardlinkDedupTestsBase.check_hardlinkssT!Wd1g66&	(	(	(T!Wd1g66&8y=	:	:	:T!Wd1g66&	(	(	(	(	(rcr|D]\}}}|||5|5||}|||||dddn#1swxYwYdddn#1swxYwYdS)NrB)rCr#r3rrrG)rHr5r=r>rs     rr%z$HardlinkDedupTestsBase.test_hardlinksb*.//*;*;	G	G&D)Y	YGG
G
G--//GG!--d33F$$&&&((IFFFGGGGGGGGGGGGGGG
G
G
G
G
G
G
G
G
G
G
G
G
G
G
G	G	Gs6B+ABB+BB+BB++B/	2B/	c	dD]}||5|5||}||t||d}t||d}|t||dddn#1swxYwYdddn#1swxYwYdS)N))rr)rr )rr )optsrrr)r#r3rr@rrrgr+)rHrJrpyc1pyc2s     rtest_only_two_levelsz+HardlinkDedupTestsBase.test_only_two_levelssf,		=		=D4((
=
=--//=="--d.>.>.@.@AAF$$d$333"64733D"64733DOOKd$;$;<<<===============
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=		=		=s5C B
C	=C 	C

C C
C  C$	'C$	cd|5||}|gdt	|d}t	|d}|t
||ddddS#1swxYwYdS)N)rrrrrKrr)r3rr@rrrgr+)rHrrLrMs    rtest_duplicated_levelsz-HardlinkDedupTestsBase.test_duplicated_levelss
%
%
'
'	5	5%%d&6&6&8&899Flll33361%%D61%%DOOKd33444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5sBB%%B),B)c*|5|d}|||t	|}tj|dj}|d}|ddgd||tj|dj|	t|d|d||tj|dj|tj|d|ddddddS#1swxYwYdS)	Nr+rprint(0)r T)rrtrshallow)r3rrrGr"r$r%r&r|rgr+r~rfilecmpcmprHrr$inodes    rtest_recompilationz)HardlinkDedupTestsBase.test_recompilation$s
%
%
'
'	J	J%%g..F  (((F##DGDG$$+E%%j11F
q!fD999
UBGDG$4$4$;<<<OOKQa99:::rwtAw'7'7'>???W[a$q'4HHHIII)	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	JsE&FFFc`|5||d}|||t|}t
j|dj}|dd}tj
dddd|j	||t
j|dj||t
j|d
j|
t|d|d
|
tj|d|d
d
ddddS#1swxYwYdS)Nmodule)r(rrRrz-cz
import moduleF)rrlr rTrS)r3rr@rrGr"r$r%r&r
ryr;r|rr+rUrVrWs    rtest_importz"HardlinkDedupTestsBase.test_import=s
%
%
'
'	J	J%%d&6&6&8&8x%HHF  (((F##DGDG$$+E%%jx%@@F
*dO$)





UBGDG$4$4$;<<<UBGDG$4$4$;<<<[a$q'::;;;W[a$q'4HHHIII-	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	J	JsFF##F'*F'Nr!)FF)rHrIrJrJrcr&r3rrr:r@rCrErGr%rNrPrYr\rrrr0r0s/@@@@$()5BBBBB<<<    333
D
D
D((((GGG===
5
5
5JJJ2JJJJJrr0ceZdZdS)!HardlinkDedupTestsWithSourceEpochNrPrrrr^r^YrQrr^ceZdZdS)HardlinkDedupTestsNoSourceEpochNrPrrrr`r``rQrr`__main__)7rhrcrUimportlib.utilrrer$rrzr9rVrr5test.test_importlib.utilrrrxrrmultiprocessing.utilrrconcurrent.futuresrconcurrent.futures.processrrKNotImplementedErrorModuleNotFoundErrorrtest.supportr	r
test.test_py_compilerrrr"r+r-TestCaserOrUskipIfis_wasirWrcr+r-hasattrr0r^r`rHrrrr<module>rosh								











%%%%%%%%	"UTTTTT666666?????? 01"""!"""""""&&&&&&::::::888888FFF777N8N8N8N8N8N8N8N8b					%8%-%6/F7;									(;(0(92I:?				"DEE%%%%%8$%%FE%.zKzKzKzKzKzKzKzKz
					&:'/'81H9=									$8%-%6/F7<				WWR((*<==ZJZJZJZJZJZJZJ>=ZJz					(>(0(92I:>									&<&.&70G8=				zHMOOOOOsA%%	A10A1