+
    Bi}                     6   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI	H
t
 ^ RIHt ^ RIHt  ^ RItRtRtRt ! R R	]	P(                  4      t ! R
 R]	P(                  4      t]R8X  d   ]	P0                  ! 4        R# R#   ] d    Rt LWi ; i)    N)mock)support)	os_helpera  NAME=Fedora
VERSION="32 (Thirty Two)"
ID=fedora
VERSION_ID=32
VERSION_CODENAME=""
PLATFORM_ID="platform:f32"
PRETTY_NAME="Fedora 32 (Thirty Two)"
ANSI_COLOR="0;34"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:32"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f32/system-administrators-guide/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=32
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=32
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"
a~  NAME="Ubuntu"
VERSION="20.04.1 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.1 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
a  
# test data
ID_LIKE="egg spam viking"
EMPTY=
# comments and empty lines are ignored

SINGLE_QUOTE='single'
EMPTY_SINGLE=''
DOUBLE_QUOTE="double"
EMPTY_DOUBLE=""
QUOTES="double\'s"
SPECIALS="\$\`\\\'\""
# invalid lines
=invalid
=
INVALID
IN-VALID=value
IN VALID=value
c                   X  a  ] tR t^Rt o R tR tR t]P                  ]	P                  ! 4       R 4       4       tR tR tR tR tR	 tR
 tR tR tR tR tR tR t]P2                  ! ]P6                  P9                  R4      R4      R 4       tR tR tR t R t!R t"R t#R t$]PJ                  ! ]P6                  R09   R4      ]	P                  ! 4       R 4       4       t&]P2                  ! ]P6                  P9                  R4      R4      R 4       t'R t(]P2                  ! ]	PR                  R4      R  4       t*]PJ                  ! ]	PR                  R!4      R" 4       t+R# t,]P2                  ! ]P6                  R$8H  R%4      R& 4       t-R' t.R( t/R) t0]	Pb                  R* 4       t2R+ t3R, t4R- t5R.t6V t7R/# )1PlatformTestc                    \         P                  P                  4        \         P                  P                  4        R \         n        R \         n        R # N)platform_platform_cacheclear_sys_version_cache_uname_cache_os_release_cacheselfs   &)/usr/lib/python3.14/test/test_platform.pyclear_cachesPlatformTest.clear_cachesS   s6      &&(##))+ $%)"    c                   V P                  4        V P                  \        P                  / 4       V P                  \        P                  / 4       V P                  \        P                  4       V P                  \        P                  4       \        P                  ! 4        \        P                  ! 4        \        P                  ! 4        V P                  \        P                  / 4       V P                  \        P                  / 4       V P                  \        P                  4        \        P                  ! 4        V P                  \        P                  4       V P                  R 4      ;_uu_ 4        \        P                  ! 4        V P                  \        P                  / 4       V P                  \        P                  / 4       V P                  \        P                  4       V P                  \        P                  4       RRR4       R#   \         d#    T P                  \        P                  4        Li ; i  + '       g   i     R# ; i)zclear platform cachesN)r   assertDictEqualr
   r   r   assertIsNoner   r   python_implementationunameassertNotEqualassertIsNotNonefreedesktop_os_releaseOSErrorsubTestinvalidate_cachesr   s   &r   test_invalidate_caches#PlatformTest.test_invalidate_cachesY   s   X55r:X88"=(//0(445 	&&( 	H44b9H77<X223	=++-   !;!;<\\122&&(  !9!92>  !<!<bAh334h889 32  	:h889	:
 322s   .H ;BI	*II	I	c                0    \         P                  ! 4       pR # r	   )r
   architecturer   ress   & r   test_architecturePlatformTest.test_architecturey   s    ##%r   c           	         \         P                  ! 4       ;_uu_ 4       pRpV P                  VP                  ! V!  VP                  ! V!  4       RRR4       R#   + '       g   i     R# ; i)-cN)r*   z/import platform; print(platform.architecture()))r   PythonSymlinkassertEqual	call_real	call_link)r   pycmds   &  r   test_architecture_via_symlink*PlatformTest.test_architecture_via_symlink|   sK     ""$$ICR\\3/s1CD %$$$s   1AA*	c                V    R F"  pR F  p\         P                   ! W4      pK  	  K$  	  R# )FN)FT)r
   )r   aliasedterser&   s   &   r   test_platformPlatformTest.test_platform   s&    $G&''7 ' %r   c                0    \         P                  ! 4       pR # r	   )r
   systemr%   s   & r   test_systemPlatformTest.test_system   s    oor   c                0    \         P                  ! 4       pR # r	   )r
   noder%   s   & r   	test_nodePlatformTest.test_node   s    mmor   c                0    \         P                  ! 4       pR # r	   )r
   releaser%   s   & r   test_releasePlatformTest.test_release        r   c                0    \         P                  ! 4       pR # r	   )r
   versionr%   s   & r   test_versionPlatformTest.test_version   rD   r   c                0    \         P                  ! 4       pR # r	   )r
   machiner%   s   & r   test_machinePlatformTest.test_machine   rD   r   c                0    \         P                  ! 4       pR # r	   )r
   	processorr%   s   & r   test_processorPlatformTest.test_processor   s      "r   c                    \         P                  V n        \         P                  V n        \         P
                  V n        R # r	   )sysrF   save_version_gitsave_gitr
   save_platformr   s   &r   setUpPlatformTest.setUp   s%    KK \\r   c                    V P                   \        n        V P                  \        n        V P
                  \        n        R # r	   )rS   rR   rF   rU   rT   rV   r
   r   s   &r   tearDownPlatformTest.tearDown   s'    ''==))r   c           
     @   R F7  w  r\         P                  ! V4      w  r4rVrxp	V P                  W4RRWxV	3V4       K9  	  RRV P                  3R	R
RRRRRV P                  3R/p
V
P	                  4        EFW  w  w  rrV\
        n        Vf   \        \
        R4      '       d   \
        =MV\
        n        Ve   V\
        n         V P                  \         P                  ! 4       V^ ,          4       V P                  \         P                  ! 4       V^,          4       V P                  \         P                  ! 4       V^,          4       V P                  \         P                  ! 4       V^,          4       V P                  \         P                  ! 4       V^,          4       V P                  \         P                  ! 4       V^,          4       EKZ  	  V P                  \         4      ;_uu_ 4        \         P                  ! R4       RRR4       R#   + '       g   i     R# ; i)C2.4.3 (#1, Jun 21 2006, 13:54:21) 
[GCC 3.3.4 (pre 3.3.5 20040809)] zX2.6.1 (r261:67515, Dec  6 2008, 15:26:00) 
[GCC 4.0.1 (Apple Computer, Inc. build 5370)]Nz12.5.2 (63378, Mar 26 2009, 18:03:29)
[PyPy 1.0.0]rT   z2. 4.3 (truncation) 
[GCC])	)r]   )CPython2.4.3r^   r^   1zJun 21 2006 13:54:21zGCC 3.3.4 (pre 3.3.5 20040809))z"2.4.3 (truncation, date, t) 
[GCC])r_   r`   r^   r^   
truncationzdate tGCC)z!2.4.3 (truncation, date, ) 
[GCC]r_   r`   r^   r^   rb   daterc   )z 2.4.3 (truncation, date,) 
[GCC]rd   )z2.4.3 (truncation, date) 
[GCC]rd   )z2.4.3 (truncation, d) 
[GCC])r_   r`   r^   r^   rb   drc   )z2.4.3 (truncation, ) 
[GCC]r_   r`   r^   r^   rb   r^   rc   )z2.4.3 (truncation,) 
[GCC]rg   )z2.4.3 (truncation) 
[GCC]rg   )r_   	tags/r26167515)r_   z2.6.1rh   ri   )z
r261:67515zDec  6 2008 15:26:00z+GCC 4.0.1 (Apple Computer, Inc. build 5370))zC3.10.8 (tags/v3.10.8:aaaf517424, Feb 14 2023, 16:28:12) [GCC 9.4.0]Nlinux)r_   z3.10.8r^   r^   )ztags/v3.10.8:aaaf517424zFeb 14 2023 16:28:12z	GCC 9.4.0)z^2.5 (trunk:6107, Mar 26 2009, 13:02:18) 
[Java HotSpot(TM) Client VM ("Apple Computer, Inc.")])Jythontrunk6107java1.5.0_16)rk   z2.5.0rl   rm   )z
trunk:6107Mar 26 2009rn   )PyPyrl   63378)rp   z2.5.2rl   rq   )rq   ro   r^   )r
   _sys_versionr,   rV   itemsrR   rF   hasattrrT   r   python_versionpython_branchpython_revisionpython_buildpython_compilerassertRaises
ValueError)r   inputoutputnamerF   branchrevisionbuildno	builddatecompilersys_versionsversion_tagscmsys_platforminfos   &              r   test_sys_versionPlatformTest.test_sys_version   s   ME. **51 LTFg(BHEvO1< i.0B0BD@R9@ B'););=/6 ""$ 3,[|%CK{3'''+X;;=tAwGX446Q@X335tAw?X557aAX224d1g>X557aA %  z**!!"?@ +***s   +HH	c                    \         P                  ! \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       4      pR # r	   )r
   system_aliasr9   rA   rF   r%   s   & r   test_system_aliasPlatformTest.test_system_alias   s4    ##OO
r   c                   \         P                  ! 4       pV P                  \        V4      4       V P	                  V^ ,          VP
                  4       V P	                  VR	,          VP
                  4       V P	                  V^,          VP                  4       V P	                  VR
,          VP                  4       V P	                  V^,          VP                  4       V P	                  VR,          VP                  4       V P	                  V^,          VP                  4       V P	                  VR,          VP                  4       V P	                  V^,          VP                  4       V P	                  VR,          VP                  4       V P	                  V^,          VP                  4       V P	                  VR,          VP                  4       V P	                  \        V4      ^4       \        P                  R8X  Ed   \        P                  ! 4       pV P	                  VP                  VP                  4       V P	                  VP                  VP                  4       V P	                  VP                  VP                  4       \        P                   R8X  dX   V P	                  VP
                  R4       V P	                  VP                  \         P                   ! 4       P                  4       R# \        P                   R8X  d   \"        '       dZ   V P%                  VP
                  RR04       V P	                  VP                  \         P&                  ! 4       P                  4       R# V P	                  VP
                  R4       V P	                  VP                  R4       R# V P	                  VP
                  VP(                  4       V P	                  VP                  VP                  4       R# R# )r   posixandroidAndroidiosiOSiPadOSr^   Ni)r
   r   
assertTrueanyr,   r9   r=   rA   rF   rJ   rN   lenosr~   nodenamerR   android_ver_ctypesassertInios_versysname)r   r&   r   s   &  r   
test_unamePlatformTest.test_uname   s   nnC!Q,R#**-Q*R#((+Q-R#++.Q-R#++.Q-R#++.Q/R#--0S1%77gHHJESXXu~~6S[[%--8S[[%--8||y(  Y7  h.B.B.D.L.LM& 7MM#**uh.?@$$S[[(2B2B2D2L2LM$$SZZ4$$S[["5  U]];  emm<+ r   winzwindows only testc                    R  p\         P                  ! \        RV4      ;_uu_ 4        V P                  4        RRR4       R#   + '       g   i     R# ; i)c                      \        4       hr	   r   as   *r   raises_oserrorAPlatformTest.test_uname_win32_without_wmi.<locals>.raises_oserror#  	    )Or   
_wmi_queryN)r   	swap_attrr
   r   )r   r   s   & r   test_uname_win32_without_wmi)PlatformTest.test_uname_win32_without_wmi!  s8    	 x~FFOO GFFFs   AA	c                    \         P                  ! 4       pVP                  VP                  VP                  VP
                  VP                  VP                  3pV P                  \        V4      V4       R # r	   )
r
   r   r9   r=   rA   rF   rJ   rN   r,   tupler   r&   expecteds   &  r   test_uname_cast_to_tuple%PlatformTest.test_uname_cast_to_tuple)  sQ    nnJJ#++s{{CKKMM
 	sX.r   c                   \         P                  ! 4       pVP                  R RRRRR7      pV P                  VP                  R 4       V P                  VP
                  R4       V P                  VP                  R4       V P                  VP                  R4       V P                  VP                  R4       V P                  VP                  VP                  4       R# )r9   r=   rA   rF   rJ   )r9   r=   rA   rF   rJ   N)
r
   r   _replacer,   r9   r=   rA   rF   rJ   rN   )r   r&   news   &  r   test_uname_replacePlatformTest.test_uname_replace1  s    nnll&)y  2 	X.6*i0i0i06r   c                    \         P                  ! 4       pV P                  \        P                  ! V4      V4       V P                  \        P                  ! V4      V4       R # r	   )r
   r   r,   copydeepcopy)r   r   s   & r   test_uname_copyPlatformTest.test_uname_copy>  s@     5)51u-u5r   c                f   \         P                  ! 4       p\        \        P                  ^,           4       Fc  pV P                  VR7      ;_uu_ 4        \        P                  ! W4      p\        P                  ! V4      pV P                  WA4       RRR4       Ke  	  R#   + '       g   i     Kz  ; i)   )protocolN)	r
   r   rangepickleHIGHEST_PROTOCOLr   dumpsloadsr,   )r   origprotopickledrestoreds   &    r   test_uname_picklePlatformTest.test_uname_pickleC  su    ~~622Q67Eu-- ,,t3!<<0  0 .- 8---s   >BB0c                    \         P                  ! 4       p\        V4      pV P                  VR ,          V4       V P                  VR,          VR,          4       R# ):NNN:N   NN)r
   r   r   r,   r   s   &  r   test_uname_slicesPlatformTest.test_uname_slicesK  sC    nn:Q*R(2,/r   c                d    V P                  R \        P                  ! 4       P                  4       R# )rN   N)r   r
   r   _fieldsr   s   &r   test_uname_fieldsPlatformTest.test_uname_fieldsQ  s    k8>>#3#;#;<r   c                    \         P                  ! 4       P                  4       pV P                  \	        V4      ^4       V P                  RV4       R# )   rN   N)r
   r   _asdictr,   r   r   r%   s   & r   test_uname_asdictPlatformTest.test_uname_asdictT  s9    nn&&(S1%k3'r   zuname -p not usedc                (    \         P                  ! RR.RR7      P                  4       p\        P                  ! V4      pV P                  \        P                  ! 4       P                  V4       R#   \
        \         P                  3 d    Rp LPi ; i)zd
On some systems, the processor must match the output
of 'uname -p'. See Issue 35967 for rationale.
r   z-pTtextr^   N)

subprocesscheck_outputstripr
   _unknown_as_blankr   CalledProcessErrorr,   r   rN   )r   proc_resexpects   &  r   test_uname_processor!PlatformTest.test_uname_processorY  sv    	!..TJPPRH//9F 	)33V< 667 	F	s   >A1 1BBc           
     ,   R  p\         P                  ! \        RV4      ;_uu_ 4        \        P                  ! 4       ;_uu_ 4       p VR RVR&   R\        n        \        P                  ! 4       w  r4rVrxV P                  VR4       RVR&   R\        n        \        P                  ! 4       w  r4rVrxV P                  VR4       R\        n         RRR4       RRR4       R#   R\        n        i ; i  + '       g   i     L*; i  + '       g   i     R# ; i)c                      \        4       hr	   r   r   s   *r   r   BPlatformTest.test_uname_win32_ARCHITEW6432.<locals>.raises_oserrorp  r   r   r   PROCESSOR_ARCHITEW6432fooPROCESSOR_ARCHITECTURENbar)r   r   r
   r   EnvironmentVarGuardr   r   r,   )	r   r   environr9   r=   rA   rF   rJ   rN   s	   &        r   test_uname_win32_ARCHITEW6432*PlatformTest.test_uname_win32_ARCHITEW6432g  s    	 x~FF..00G1 898=G45,0H)IQIYFF'G$$We48=G45,0H)IQIYFF'G$$We4,0H) 1 GF -1H) 10 GFFs<   DC/	A9CC/	DC,,C/	/C?:DD	c                   ^ RI pVP                  R4      pV P                  \        V4      ;_uu_ 4        \        P
                  ! 4       pRRR4       V P                  \        X4      ^4       R#   + '       g   i     L-; i)r   Nz>'java_ver' is deprecated and slated for removal in Python 3.15)reescapeassertWarnsRegexDeprecationWarningr
   java_verr,   r   )r   r   msgr&   s   &   r   test_java_verPlatformTest.test_java_ver  s\    iiL
 ""#5s;;##%C <S1% <;s   A//A?	z%This test only makes sense on Windowsc                   Rw  rr4\         P                  ! WW44      pV P                  \        V4      ^4       Vw  rgrV'       d   V P	                  Wa4       V'       d6   V P                  RV4       VP                  R4       F  p
\        V
4       K  	  V'       d   V P                  VR4       V	'       dC   \        P                  ! 4       ^8  d   V P                  RV	4       R# V P                  RV	4       R# R# )r   .SPMultiprocessorUniprocessorN)r   bcrf   )r
   	win32_verr,   r   r   r   splitintassertStartsWithr   	cpu_count)r   release1version1csd1ptype1r&   rA   rF   csdptypevs   &          r   test_win32_verPlatformTest.test_win32_ver  s    +=(D  TBS1%'*$# 2 MM#w']]3'A (!!#t,||~!.6ne4	 r   z)This test only makes sense on non Windowsc                r    Rw  rr4\         P                  ! WW44      pV P                  WQW#V3\        R7       R# )r   )seq_typeN)r   1.0r  rf   )r
   r  assertSequenceEqualr   )r   rA   rF   r  r  r&   s   &     r   test_win32_ver_on_non_windows*PlatformTest.test_win32_ver_on_non_windows  s8    ';$#  3>  e&Du Ur   c                D   \         P                  ! 4       p\         P                  ! 4       P                  R 8X  Edf   \        P
                  ! R.RR7      pVP                  4        FA  pVP                  R4      '       g   K  VP                  4       P                  4       R,          p M	  V P                  RV: 24       V^ ,          P                  R4      pXP                  R4      p\        V4      \        V4      ,
          pV^ 8  d   VP                  R.V,          4       VRR	.8w  d   V P                  WV4       V P                  V^,          R4       \        P                  R
8X  d   V P!                  V^,          R4       R# V P                  V^,          R4       R# R# )Darwinsw_versTr   zProductVersion:z failed to parse sw_vers output: r   01016littlePowerPCNr   r^   r^   r^   )i386x86_64arm64)r
   mac_verr   r9   r   r   
splitlines
startswithr   r  failr   extendr,   rR   	byteorderr   )r   r&   r}   linereal_verresult_listexpect_listlen_diffs   &       r   test_mac_verPlatformTest.test_mac_ver  sJ    >>""h.  ,,i[tDF))+??#455#zz|113B7H ,
 		<VJGHa&,,s+K"..-K;'#k*::H!|""C58#34 tTl*  :
 SV\2}}(c!f&AB  Q3= /r   darwinzOSX only testc                    \         P                  ! 4       pV^ 8X  d.   \        P                  ! 4       p\         P                  ! ^ 4       R# \
        P                  ! V^ R7       R# )r   )exitcodeN)r   forkr
   r&  _exitr   wait_process)r   pidr   s   &  r   test_mac_ver_with_fork#PlatformTest.test_mac_ver_with_fork  sA     ggi!8##%DHHQK   q1r   c                \   \         P                  ! 4       p\        P                   R 8X  Ed   \        '       Ed}   Vw  r#rEV P	                  VP
                  V4       V P	                  VP                  V4       V P	                  VP                  V4       V P	                  VP                  V4       V P                  VRR04       VP                  R4      pV P                  \        V4      ^4       T P                  \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      4       V'       d   V P                  VRR04       MFT P                  VP                  R4      ;'       g    VP                  R4      ;'       d    R	V9   4       V P	                  \!        V4      \"        4       R# V P	                  VP
                  R
4       V P	                  VP                  R
4       V P	                  VP                  R
4       V P%                  VP                  4       \         P                  ! RRRR4      pV P	                  VP
                  R4       V P	                  VP                  R4       V P	                  VP                  R4       V P                  VP                  4       R# )r   r   r   r   c              3   @   "   T F  qP                  4       x  K  	  R # 5ir	   )isdigit).0parts   & r   	<genexpr>,PlatformTest.test_ios_ver.<locals>.<genexpr>  s     A545s   FTiPhoneiPad,r^   FooBarWhizN)r
   r   rR   r   r,   r9   rA   modelis_simulatorr   r  assertGreaterEqualr   r   allr(  typeboolassertFalse)r   resultr9   rA   rI  rJ  partsoverrides   &       r   test_ios_verPlatformTest.test_ios_ver  s   !!# <<5 WW390FUV]]F3V^^W5V\\51V00,? MM&5("34 MM#&E##CJ2OOCCA5ACCCA5AAB
 eh%78%%h/KK53C3CF3K % %u
 T,/6 V]]B/V^^R0V\\2.V001  ''ufdCHX__e4X--u5X^^V4OOH112r   c                   \         P                  '       d   \        P                  ! 4       R8X  g   Q hR# \        P
                  P                  \        P                  4      '       dS   \        P
                  P                  \        P                  R,           4      '       d   \        P                  R,           pMn\        P                  R8X  dJ   \        P
                  P                  \        P                  4      '       g   ^ RI
pVP                  ^ 4      pM\        P                  p\        P                  ! V4       \        P                  pV P                  \        P                  V4       \         P"                  ! RRRR7      ;_uu_ 4        V P%                  \        P                  ! 4       R4       R Fq  w  rE\'        VR4      ;_uu_ 4       pVP)                  R	V,          4       VP+                  4        RRR4       V P%                  \        P                  ! VR
7      V4       Ks  	  RRR4       ^pR F|  w  rE\'        VR4      ;_uu_ 4       pVP)                  RV^
,
          ,          4       VP)                  V4       RRR4       V P%                  V\        P                  ! VRRVR7      4       K~  	  R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lf; i)
emscriptenNz.exewin32z
os.confstrTzmock 1.0)createreturn_valuewbs
   [xxx%sxxx])
executabletest100.1.0   x)librF   	chunksize)rV  z4.0.12)r   r  )
)s   __libc_init)libcr^   )s	   GLIBC_2.9)glibcz2.9)s   libc.so.1.2.5)ra  1.2.5)s   libc_pthread.so.1.2.5)ra  z1.2.5_pthread)s    /aports/main/musl/src/musl-1.2.5muslrc  )s   /aports/main/musl/src/musl-12.5)re  z12.5)s"   /aports/main/musl/src/musl-1.2.5.7)re  z1.2.5.7)s   libc.musl.so.1)re  ra   )s   libc.musl-x86_64.so.1.2.5rd  )r   )r^   r^   ))s"   GLIBC_1.23.4 GLIBC_1.9 GLIBC_1.21 )rb  z1.23.4)s#   libc.so.2.4 libc.so.9 libc.so.23.1 )ra  z23.1)s!   musl-1.4.1 musl-2.1.1 musl-2.0.1 re  z2.1.1)sM   libc.musl-x86_64.so.1.4.1 libc.musl-x86_64.so.2.1.1 libc.musl-x86_64.so.2.0.1rf  )s#   no match here, so defaults are used)r\  r]  )r   is_emscriptenr
   libc_verr   pathisdirrR   r[  exists_winapiGetModuleFileNamer   TESTFN
addCleanupunlinkr   patchr,   openwriteflush)	r   r[  rl  filenamedatar   fpr`  fs	   &        r   test_libc_verPlatformTest.test_libc_ver  s      $$&*BBBB77==((77>>#../00&0J\\W$RWW^^CNN-K-K  2215JJ*%##	(((3ZZT
KKX..0/B# (D))RHH]T12HHJ *
   !2!2h!G!)+%# L: 		ND h%%i"n-. & !!%'		 *)% LKP &%s1   AK)J:93K1K :K
KK	 K0c           	        \         P                  ! 4       pV P                  V\        4       V P	                  WP
                  VP                  VP                  VP                  VP                  VP                  34       \        P                   R 8X  d   R	 FX  pV P                  V4      ;_uu_ 4        \        W4      pV P                  V\        4       V P                  VR4       RRR4       KZ  	  V P                  VP                  \         4       V P#                  VP                  \        P$                  ! 4       4       V P                  VP                  \&        4       R# V P	                  VP
                  R4       V P	                  VP                  ^ 4       V P	                  VP                  R4       V P	                  VP                  R4       V P	                  VP                  R4       V P	                  VP                  R4       \         P                  ! R^RRRR4      pV P	                  VP
                  R4       V P	                  VP                  ^4       V P	                  VP                  R4       V P	                  VP                  R4       V P	                  VP                  R4       V P	                  VP                  R4       R#   + '       g   i     EKL  ; i)
r   r^   NFalphabravocharliedeltaT)rA   manufacturerrI  device)r
   r   assertIsInstancer   r,   rA   	api_levelr  rI  r  is_emulatorrR   r   getattrstrr   r  rK  getandroidapilevelrN  )r   r&   r~   values   &   r   test_android_verPlatformTest.test_android_ver\  s   ""$c5){{CMM3;K;K"yy#**cooG 	H <<9$F\\$''#C.E))%5''r2 (' G !!#--5##CMM33I3I3KL!!#//48 S[["-S]]A.S--r2SYY+SZZ,S__e4 &&GY?CS[['2S]]A.S--w7SYY	2SZZ1S__d37 (''s   24KK"c                V   ^ RI Hp V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R	4      4       V P                  V! R4      V! R
4      4       V P                  V! R	4      V! R4      4       V P                  V! R
4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R4      4       V P                  V! R4      V! R 4      4       V P                  V! R!4      V! R"4      4       V P                  V! R!4      V! R4      4       V P                  V! R 4      V! R"4      4       V P                  V! R4      V! R"4      4       V P                  V! R#4      V! R$4      4       V P                  V! R%4      V! R&4      4       V P                  V! R'4      V! R(4      4       R)# )*r   )_comparable_versionz1.2.3z1.2.10z1.2.3.4z1_2-3+4z1.2spamz1.2devz1.2alphaz1.2az1.2betaz1.2bz1.2cz1.2RCz1.2rcz1.2.0z1.2plz1.2pz1.5.1z1.5.2b2z3.10a161z8.02z3.4jz
1996.07.12z3.1.1.6z3.2.pl02g611gz0.9z2.2z1.2z1.2.1z1.1z1.2.2z0.4z0.4.0z1.13++z5.5.kwz0.960923z	2.2beta29N)r
   r  r,   
assertLess)r   Vs   & r   test__comparable_version%PlatformTest.test__comparable_version  s   57QwZ0'
AhK09q|4)ak2(Qz]3(QvY/*q|4&	1V9-)ai0&	1V9-&	1W:.&	1W:.'
AgJ/'
AgJ/'
AgJ/'
AfI.'
AiL1'
AeH-6AfI.&	1\?3)a	l3%!E(+%!E(+%!G*-%!G*-%!E(+'
AgJ/%!G*-%!G*-(Qx[1*q~6r   c                f   V P                  V P                  4       R	pR
p\        P                  P	                  \
        RR4      ;_uu_ 4        \        P                  P	                  \        RVR7      ;_uu_ 4        \        P                  P	                  \        RVR7      ;_uu_ 4        R F  w  r4p\        P                  P	                  \        RVR7      ;_uu_ 4        V P                  4        V P                  \        P                  ! ^R7      V4       V P                  \        P                  ! 4       V4       RRR4       K  	  RRR4       RRR4       RRR4       R#   + '       g   i     K  ; i  + '       g   i     L6; i  + '       g   i     LA; i  + '       g   i     R# ; i)r  r
   r3  r   )rY  r$   r&  )r5   N)r  hostnamez17.7.0z_Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64r$  r#  )64bitr^   ))r"  zDarwin-17.7.0zDarwin-17.7.0-x86_64-i386-64bit))z10.13.6r"  r$  zmacOS-10.13.6zmacOS-10.13.6-x86_64-i386-64bit)ro  r   r   rq  objectrR   r
   r,   )r   r   archr&  expected_terser   s   &     r   
test_macosPlatformTest.test_macos  s7   ))*#
 ZZsJ99ZZxuEEZZxdKK	61 ZZ&&x4; ' = =%%'$$X%6%6Q%?P$$X%6%6%8(C	= =	6 L F :9= = = LK FE :99sU   /F</F	+7E9"AE%?E9F	F%E60	E99F	F	FFF0	c                p   V P                  V P                  4       V P                  4        \        ;QJ d*    R  \        P                   4       F  '       g   K   RM	  RM! R  \        P                   4       4      '       df   \        P
                  ! 4       pV P                  RV4       V P                  RV4       RVR&   V P                  R\        P
                  ! 4       4       R# V P                  \        4      ;_uu_ 4        \        P
                  ! 4        RRR4       R#   + '       g   i     R# ; i)c              3   `   "   T F$  p\         P                  P                  V4      x  K&  	  R # 5ir	   )r   ri  isfile)r?  fns   & r   rA  ;PlatformTest.test_freedesktop_os_release.<locals>.<genexpr>  s"     L,Kbrww~~b!!,Ks   ,.TFNAMEIDr\  CPYTHON_TESTN)
ro  r   r   r
   _os_release_candidatesr   r   assertNotInrz   r   )r   r   s   & r   test_freedesktop_os_release(PlatformTest.test_freedesktop_os_release  s    ))*3LH,K,KL333LH,K,KLLL224DMM&$'MM$%#)D //1
 ""7++//1 ,+++s   D$$D5	c                   \         P                  ! \        P                  4       4      pV P	                  VR ,          R4       V P	                  VR,          R4       V P                  RV4       V P	                  VR,          R4       \         P                  ! \        P                  4       4      pV P	                  VR ,          R4       V P	                  VR,          R4       V P	                  VR,          R	4       V P	                  VR,          R
4       \         P                  ! \        P                  4       4      pRRR RRRRRRRRRRRRRRRRRRR/pV P	                  W4       V P	                  \        VR,          4      ^4       R# )r  Fedorar  fedoraID_LIKEVERSION_CODENAMEr^   Ubuntuubuntudebianfocalrj   LinuxPRETTY_NAMEzegg spam vikingEMPTYDOUBLE_QUOTEdoubleEMPTY_DOUBLESINGLE_QUOTEsingleEMPTY_SINGLEQUOTESzdouble'sSPECIALSz$`\'"N)	r
   _parse_os_releaseFEDORA_OS_RELEASEr'  r,   r  UBUNTU_OS_RELEASETEST_OS_RELEASEr   )r   r   r   s   &  r   test_parse_os_release"PlatformTest.test_parse_os_release  sX   ))*;*F*F*HIfx0dX.D)0126))*;*F*F*HIfx0dX.i(3017;))/*D*D*FG'G7(RHBHBj	
 	(T*-.2r   )rU   rV   rS   N)rW  OpenVMS)8__name__
__module____qualname____firstlineno__r   r!   r'   r   skip_unless_symlinkr   requires_subprocessr1   r6   r:   r>   rB   rG   rK   rO   rW   rZ   r   r   r   unittest
skipUnlessrR   r
   r(  r   r   r   r   r   r   r   r   skipIfr   r   r   
MS_WINDOWSr  r  r1  r:  rS  ry  r  cpython_onlyr  r  r  r  __static_attributes____classdictcell____classdict__s   @r   r   r   R   s    *:@& ""  "E # #E
8
 !!!#*
*
KAZ
&=R 0079LM N/76
10=(
 __S\\%99;NO  "
= # P
= 0079LM1 N14& ++-TU5 V50 __W'')TUV VV
!4H 1?C2 D203dIX#4J !7 !7HD82$3 3r   r   c                   b   a  ] tR tRt o R tR tR tR tR t]	P                  R 4       tRtV tR	# )
CommandLineTesti  c                n    \         P                  ! 4        V P                  \         P                  4       R # r	   )r
   r    ro  r   s   &r   rW   CommandLineTest.setUp  s     ""$223r   c                   \         P                  ! 4       p\        P                  ! V4      ;_uu_ 4        \        P
                  ! VR 7       RRR4       VP                  4       #   + '       g   i     TP                  4       # ; i)argsN)ioStringIO
contextlibredirect_stdoutr
   _maingetvalue)r   flagsr}   s   &* r   invoke_platformCommandLineTest.invoke_platform  sR    ''//NN& 0   0/  s   A$$B	c           	     ^   V P                  \        4      ;_uu_ 4        \        P                  ! 4       p\        P
                  ! V4      ;_uu_ 4        V P                  R 4      pRRR4       V P                  VR4       RRR4       R#   + '       g   i     L,; i  + '       g   i     R# ; i)z	--unknownNzusage: )rz   
SystemExitr  r  r  redirect_stderrr  r	  )r   r}   _s   &  r   test_unknown_flag!CommandLineTest.test_unknown_flag  sq    z**[[]F++F33((5 4!!&)4 +* 43 +**s#   4BB	$BBBB,	c                    Rp\        \        V4      ^,           4       F0  p\        P                  ! W4       F  pV P                  ! V!   K  	  K2  	  R# )--terseN)r  --nonaliasedr5   
nonaliased)r   r   	itertoolscombinationsr  )r   r  rcombinations   &   r   test_invocationCommandLineTest.test_invocation  sF    
 s5zA~&A(55e?$$k2  @ 'r   c           
        R .RR3R.RR3R.RR3R.RR3RR.RR3R R.RR3RR.RR33pV F  w  r#pV P                  W#VR7      ;_uu_ 4        \        P                  P                  \        R4      ;_uu_ 4       pV P
                  ! V!   VP                  W44       RRR4       RRR4       K  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)	r  Fr  r  Tr5   )r  r4   r5   r
   N)r   r   rq  r  r
   r  assert_called_once_with)r   optionsr  r4   r5   objs   &     r   test_arg_parsing CommandLineTest.test_arg_parsing  s     ue,^UE*[$%Yd#G$eT2g&t4&t4
 &-!EEE%HHZZ&&x<<((%0//? = IH &-<< IHHs$   -C9"B1C1C<CCc           	        \         P                  ! 4       pV P                  \        4      ;_uu_ 4        \        P
                  ! V4      ;_uu_ 4        \        P                  ! R .R7       RRR4       RRR4       V P                  VP                  4       R4       R#   + '       g   i     L:; i  + '       g   i     LE; i)z--helpr  Nzusage:)
r  r  rz   r  r  r  r
   r  r	  r  )r   r}   s   & r   	test_helpCommandLineTest.test_help%  sr    z**++F33XJ/ 4 + 	foo/: 43 +*s#   B0B	+B0B-(B00C 	 N)r  r  r  r  rW   r  r  r  r  r   force_not_colorizedr  r  r  r  s   @r   r  r    s9     4!53@,   ; !;r   r  __main__)r  r   r  r  r   r   r
   r   rR   r  r   r\  r   test.supportr   r   ImportErrorr  r  r  TestCaser   r  r  mainr  r   r   <module>r     s      	  	    
    "  , *^
38$$ ^
3B:;h'' :;z zMMO w  Gs   B 	BB