
    0hhj                         S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJr  S SKJ	r	  S SK
Jr   S SKrSrSrSr " S S	\R"                  5      r\S
:X  a  \R(                  " 5         gg! \ a    Sr N>f = f)    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                      \ rS rSrS rS r\R                  \R                  " 5       S 5       5       r
S rS rS rS rS	 rS
 rS rS rS rS rS rS r\R0                  " \R4                  R7                  S5      S5      S 5       rS rS rS rS r S r!S r"S r#\RH                  " \R4                  S;   S5      \R                  " 5       S 5       5       r%\R0                  " \R4                  R7                  S5      S5      S 5       r&S r'\R0                  " \RP                  S 5      S! 5       r)\RH                  " \RP                  S"5      S# 5       r*S$ r+\R0                  " \R4                  S%:H  S&5      S' 5       r,S( r-\RH                  " \R\                  S)5      S* 5       r/S+ r0\Rb                  S, 5       r2S- r3S. r4S/ r5S0r6g1)2PlatformTestO   c                     [         R                  R                  5         [         R                  R                  5         S [         l        S [         l        g N)platform_platform_cacheclear_sys_version_cache_uname_cache_os_release_cacheselfs    ;/opt/python-3.13.8/usr/lib/python3.13/test/test_platform.pyclear_cachesPlatformTest.clear_cachesP   s6      &&(##))+ $%)"    c                 .    [         R                  " 5       ng r
   )r   architecturer   ress     r   test_architecturePlatformTest.test_architectureV   s    ##%r   c                     [         R                  " 5        nSnU R                  UR                  " U6 UR                  " U6 5        S S S 5        g ! , (       d  f       g = f)N)z-cz/import platform; print(platform.architecture()))r   PythonSymlinkassertEqual	call_real	call_link)r   pycmds      r   test_architecture_via_symlink*PlatformTest.test_architecture_via_symlinkY   sE     ""$ICR\\3/s1CD %$$s   /A
Ac                 T    S H"  nS H  n[         R                   " X5      nM     M$     g )N)FT)r   )r   aliasedterser   s       r   test_platformPlatformTest.test_platform`   s&    $G&''7 ' %r   c                 .    [         R                  " 5       ng r
   )r   systemr   s     r   test_systemPlatformTest.test_systeme   s    oor   c                 .    [         R                  " 5       ng r
   )r   noder   s     r   	test_nodePlatformTest.test_nodeh   s    mmor   c                 .    [         R                  " 5       ng r
   )r   releaser   s     r   test_releasePlatformTest.test_releasek        r   c                 .    [         R                  " 5       ng r
   )r   versionr   s     r   test_versionPlatformTest.test_versionn   r7   r   c                 .    [         R                  " 5       ng r
   )r   machiner   s     r   test_machinePlatformTest.test_machineq   r7   r   c                 .    [         R                  " 5       ng r
   )r   	processorr   s     r   test_processorPlatformTest.test_processort   s      "r   c                     [         R                  U l        [         R                  U l        [         R
                  U l        g r
   )sysr9   save_version_gitsave_gitr   save_platformr   s    r   setUpPlatformTest.setUpw   s%    KK \\r   c                     U R                   [        l        U R                  [        l        U R
                  [        l        g r
   )rF   rE   r9   rH   rG   rI   r   r   s    r   tearDownPlatformTest.tearDown|   s'    ''==))r   c           
         S H7  u  p[         R                  " U5      u  p4pVpxn	U R                  X4SSXxU	4U5        M9     SSU R                  4SSSSS	S
SU R                  4S0n
U
R	                  5        GH<  u  u  ppU[
        l        Uc  [        [
        S5      (       a  [
        ?OU[
        l        Ub  U[
        l         U R                  [         R                  " 5       US   5        U R                  [         R                  " 5       US   5        U R                  [         R                  " 5       US   5        U R                  [         R                  " 5       US   5        U R                  [         R                  " 5       US   5        U R                  [         R                  " 5       US   5        GM?     U R                  [         5         [         R                  " S5        S S S 5        g ! , (       d  f       g = f)N)	)zC2.4.3 (#1, Jun 21 2006, 13:54:21) 
[GCC 3.3.4 (pre 3.3.5 20040809)])CPython2.4.3 rR   1zJun 21 2006 13:54:21zGCC 3.3.4 (pre 3.3.5 20040809))z"2.4.3 (truncation, date, t) 
[GCC])rP   rQ   rR   rR   
truncationzdate tGCC)z!2.4.3 (truncation, date, ) 
[GCC]rP   rQ   rR   rR   rT   daterU   )z 2.4.3 (truncation, date,) 
[GCC]rV   )z2.4.3 (truncation, date) 
[GCC]rV   )z2.4.3 (truncation, d) 
[GCC])rP   rQ   rR   rR   rT   drU   )z2.4.3 (truncation, ) 
[GCC]rP   rQ   rR   rR   rT   rR   rU   )z2.4.3 (truncation,) 
[GCC]rY   )z2.4.3 (truncation) 
[GCC]rY   rR   zX2.6.1 (r261:67515, Dec  6 2008, 15:26:00) 
[GCC 4.0.1 (Apple Computer, Inc. build 5370)])rP   	tags/r26167515)rP   z2.6.1rZ   r[   )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)rP   z3.10.8rR   rR   )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)r]   z2.5.0r^   r_   )z
trunk:6107Mar 26 2009r`   z12.5.2 (63378, Mar 26 2009, 18:03:29)
[PyPy 1.0.0])PyPyr^   63378)rb   z2.5.2r^   rc   )rc   ra   rR   rG   r                  z2. 4.3 (truncation) 
[GCC])r   _sys_versionr   rI   itemsrE   r9   hasattrrG   python_implementationpython_versionpython_branchpython_revisionpython_buildpython_compilerassertRaises
ValueError)r   inputoutputnamer9   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   G((
G6c                     [         R                  " [         R                  " 5       [         R                  " 5       [         R                  " 5       5      ng r
   )r   system_aliasr,   r4   r9   r   s     r   test_system_aliasPlatformTest.test_system_alias   s4    ##OO
r   c                    [         R                  " 5       nU R                  [        U5      5        U R	                  US   UR
                  5        U R	                  US   UR
                  5        U R	                  US   UR                  5        U R	                  US   UR                  5        U R	                  US   UR                  5        U R	                  US   UR                  5        U R	                  US   UR                  5        U R	                  US   UR                  5        U R	                  US	   UR                  5        U R	                  US
   UR                  5        U R	                  US   UR                  5        U R	                  US   UR                  5        U R	                  [        U5      S5        [        R                  S:X  Ga  [        R                  " 5       nU R	                  UR                  UR                  5        U R	                  UR                  UR                  5        U R	                  UR                  UR                  5        [        R                   S:X  aV  U R	                  UR
                  S5        U R	                  UR                  [         R                   " 5       R                  5        g [        R                   S:X  a  ["        (       aX  U R%                  UR
                  SS15        U R	                  UR                  [         R&                  " 5       R                  5        g U R	                  UR
                  S5        U R	                  UR                  S5        g U R	                  UR
                  UR(                  5        U R	                  UR                  UR                  5        g g )Nr   ird   re   rf   rg   rh      posixandroidAndroidiosiOSiPadOSrR   )r   uname
assertTrueanyr   r,   r0   r4   r9   r=   rA   lenosrv   nodenamerE   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                     S n[         R                  " [        SU5         U R                  5         S S S 5        g ! , (       d  f       g = f)Nc                      [        5       er
   OSErroras    r   raises_oserrorAPlatformTest.test_uname_win32_without_wmi.<locals>.raises_oserror   	    )Or   
_wmi_query)r   	swap_attrr   r   )r   r   s     r   test_uname_win32_without_wmi)PlatformTest.test_uname_win32_without_wmi   s2    	 x~FOO GFFs	   :
Ac                     [         R                  " 5       nUR                  UR                  UR                  UR
                  UR                  UR                  4nU R                  [        U5      U5        g r
   )
r   r   r,   r0   r4   r9   r=   rA   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                    [         R                  " 5       nUR                  SSSSSS9nU R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR                  UR                  5        g )Nr,   r0   r4   r9   r=   )r,   r0   r4   r9   r=   )
r   r   _replacer   r,   r0   r4   r9   r=   rA   )r   r   news      r   test_uname_replacePlatformTest.test_uname_replace  s    nnll&)y  2 	X.6*i0i0i06r   c                     [         R                  " 5       nU R                  [        R                  " U5      U5        U R                  [        R                  " U5      U5        g 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                 B   [         R                  " 5       n[        [        R                  S-   5       HX  nU R                  US9   [        R                  " X5      n[        R                  " U5      nU R                  XA5        S S S 5        MZ     g ! , (       d  f       Ml  = f)Nrd   )protocol)	r   r   rangepickleHIGHEST_PROTOCOLsubTestdumpsloadsr   )r   origprotopickledrestoreds        r   test_uname_picklePlatformTest.test_uname_pickle   so    ~~622Q67Eu- ,,t3!<<0  0 .- 8--s   >B
B	c                     [         R                  " 5       n[        U5      nU R                  US S  U5        U R                  US S US S 5        g )Nrh   )r   r   r   r   r   s      r   test_uname_slicesPlatformTest.test_uname_slices(  sG    nn:Q*Ra(2A,/r   c                 b    U R                  S[        R                  " 5       R                  5        g )NrA   )r   r   r   _fieldsr   s    r   test_uname_fieldsPlatformTest.test_uname_fields.  s    k8>>#3#;#;<r   c                     [         R                  " 5       R                  5       nU R                  [	        U5      S5        U R                  SU5        g )Nr   rA   )r   r   _asdictr   r   r   r   s     r   test_uname_asdictPlatformTest.test_uname_asdict1  s9    nn&&(S1%k3'r   )win32OpenVMSzuname -p not usedc                     [         R                  " SS/SS9R                  5       n[        R                  " U5      nU R                  [        R                  " 5       R                  U5        g ! [
        [         R                  4 a    Sn NNf = f)Nr   z-pTtextrR   )

subprocesscheck_outputstripr   _unknown_as_blankr   CalledProcessErrorr   r   rA   )r   proc_resexpects      r   test_uname_processor!PlatformTest.test_uname_processor6  sv    	!..TJPPRH//9F 	)33V< 667 	F	s   ;A- -BBc                     S n[         R                  " [        SU5         [        R                  " 5        n US	 SUS'   S [        l        [        R                  " 5       u  p4pVpxU R                  US5        SUS'   S [        l        [        R                  " 5       u  p4pVpxU R                  US5        S [        l         S S S 5        S S S 5        g ! S [        l        f = f! , (       d  f       N'= f! , (       d  f       g = f)Nc                      [        5       er
   r   r   s    r   r   BPlatformTest.test_uname_win32_ARCHITEW6432.<locals>.raises_oserrorM  r   r   r   PROCESSOR_ARCHITEW6432fooPROCESSOR_ARCHITECTUREbar)r   r   r   r   EnvironmentVarGuardr   r   r   )	r   r   environr,   r0   r4   r9   r=   rA   s	            r   test_uname_win32_ARCHITEW6432*PlatformTest.test_uname_win32_ARCHITEW6432D  s    	 x~F..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Fs:   C/CA9C1C=C/CC
C,	(C//
C=c                     SS K nUR                  S5      nU R                  [        U5         [        R
                  " 5       nS S S 5        U R                  [        W5      S5        g ! , (       d  f       N*= f)Nr   z>'java_ver' is deprecated and slated for removal in Python 3.15rg   )reescapeassertWarnsRegexDeprecationWarningr   java_verr   r   )r   r   msgr   s       r   test_java_verPlatformTest.test_java_ver_  sY    iiL
 ""#5s;##%C <S1% <;s   A&&
A4z%This test only makes sense on Windowsc                    Su  pp4[         R                  " XX45      nU R                  [        U5      S5        Uu  pgpU(       a  U R	                  Xa5        U(       a5  U R                  SU5        UR                  S5       H  n
[        U
5        M     U(       a  U R                  UR                  S5      US9  U	(       a?  [        R                  " 5       S:  a  U R                  SU	5        g U R                  SU	5        g g )	N)r   bcrX   rg   .SP)r   rd   MultiprocessorUniprocessor)r   	win32_verr   r   assertNotEqualr   splitintr   
startswithr   	cpu_count)r   release1version1csd1ptype1r   r4   r9   csdptypevs              r   test_win32_verPlatformTest.test_win32_verh  s    +=(D  TBS1%'*$# 2 MM#w']]3'A (OOCNN40cO:||~!.6ne4	 r   z)This test only makes sense on non Windowsc                 j    Su  pp4[         R                  " XX45      nU R                  XQX#U4[        S9  g )N)r   1.0r   rX   )seq_type)r   r  assertSequenceEqualr   )r   r4   r9   r  r  r   s         r   test_win32_ver_on_non_windows*PlatformTest.test_win32_ver_on_non_windows  s8    ';$#  3>  e&Du Ur   c                    [         R                  " 5       n[         R                  " 5       R                  S:X  Ga@  [        R
                  " S/SS9nUR                  5        H<  nUR                  S5      (       d  M  UR                  5       R                  5       S   n  O   U R                  SU< 35        US   R                  S	5      nWR                  S	5      n[        U5      [        U5      -
  nUS:  a  UR                  S
/U-  5        USS/:w  a  U R                  XV5        U R                  US   S5        [        R                  S:X  a  U R!                  US   S5        g U R                  US   S5        g g )NDarwinsw_versTr   zProductVersion:r   z failed to parse sw_vers output: r   r   01016rd   rR   rR   rR   littlere   )i386x86_64arm64PowerPC)r   mac_verr   r,   r   r   
splitlinesr  r   r  failr   extendr   rE   	byteorderr   )r   r   ru   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                     [         R                  " 5       nUS:X  a,  [        R                  " 5       n[         R                  " S5        g [
        R                  " USS9  g )Nr   )exitcode)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                 
   [         R                  " 5       n[        R                   S:X  Gab  [        (       GaV  Uu  p#pEU R	                  UR
                  U5        U R	                  UR                  U5        U R	                  UR                  U5        U R	                  UR                  U5        U R                  USS15        UR                  S5      nU R                  [        U5      S5        U R                  [        S U 5       5      5        U(       a  U R                  USS15        ODU R                  UR                  S5      =(       d    UR                  S5      =(       a    S	U;   5        U R	                  [!        U5      ["        5        g U R	                  UR
                  S
5        U R	                  UR                  S
5        U R	                  UR                  S
5        U R%                  UR                  5        [         R                  " SSSS5      nU R	                  UR
                  S5        U R	                  UR                  S5        U R	                  UR                  S5        U R                  UR                  5        g )Nr   r   r   r   re   c              3   @   #    U  H  oR                  5       v   M     g 7fr
   )isdigit).0parts     r   	<genexpr>,PlatformTest.test_ios_ver.<locals>.<genexpr>  s     A545s   iPhoneiPad,rR   FooBarWhizT)r   r   rE   r   r   r,   r4   modelis_simulatorr   r  assertGreaterEqualr   r   allr  typeboolassertFalse)r   resultr,   r4   rD  rE  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OOCA5AAB
 eh%78%%h/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   zDoes not apply to Emscriptenc                    [         R                  R                  [        R                  5      (       aI  [         R                  R                  [        R                  S-   5      (       a  [        R                  S-   nOl[        R                  S:X  aH  [         R                  R                  [        R                  5      (       d  SS KnUR                  S5      nO[        R                  n[        R                  " U5        [        R                  nU R                  [        R                  U5        [        R                  " SSSS9   U R!                  [        R                  " 5       S5        S	 Hb  u  pE[#        US
5       nUR%                  SU-  5        UR'                  5         S S S 5        U R!                  [        R                  " US9U5        Md     S S S 5        Sn[#        US
5       nUR%                  SUS-
  -  5        UR%                  S5        S S S 5        U R!                  [        R                  " X7S9S5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NU= f)Nz.exer   r   z
os.confstrTzmock 1.0)createreturn_value)r   r  ))s   __libc_init)libcrR   )s	   GLIBC_2.9)glibcz2.9)s   libc.so.1.2.5)rS  z1.2.5)s   libc_pthread.so.1.2.5)rS  z1.2.5_pthread)r   )rR   rR   wbs
   [xxx%sxxx])
executablei @     x
   s"   GLIBC_1.23.4 GLIBC_1.9 GLIBC_1.21 )	chunksize)rT  z1.23.4)r   pathisdirrE   rV  existsr   _winapiGetModuleFileNamelibc_verr   TESTFN
addCleanupunlinkr   patchr   openwriteflush)	r   rV  r]  filenamedatar   fprY  fs	            r   test_libc_verPlatformTest.test_libc_ver  s    77==((77>>#../00&0J\\W$RWW^^CNN-K-K  2215JJ*%##	(((3ZZT
KX..0/B# (D)RHH]T12HHJ *
   !2!2h!G!)+# L, 	(D!QGGD)b.)*GG<= " 	**8I,	. *) LK. "!s0   9I=%H>"0I()I >
II
I 
I.c           	         [         R                  " 5       nU R                  U[        5        U R	                  XR
                  UR                  UR                  UR                  UR                  UR                  45        [        R                   S:X  a  S HP  nU R                  U5         [        X5      nU R                  U[        5        U R                  US5        S S S 5        MR     U R                  UR                  [         5        U R#                  UR                  [        R$                  " 5       5        U R                  UR                  [&        5        g U R	                  UR
                  S5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S5        [         R                  " SSSS	S
S5      nU R	                  UR
                  S5        U R	                  UR                  S5        U R	                  UR                  S5        U R	                  UR                  S	5        U R	                  UR                  S
5        U R	                  UR                  S5        g ! , (       d  f       GM@  = f)Nr   )r4   manufacturerrD  devicerR   r   Falphard   bravocharliedeltaT)r   r   assertIsInstancer   r   r4   	api_levelrn  rD  ro  is_emulatorrE   r   getattrstrr  r  rF  getandroidapilevelrI  )r   r   rv   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   )4K
K	c                 T   SSK Jn  U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S	5      5        U R                  U" S5      U" S
5      5        U R                  U" S	5      U" S5      5        U R                  U" S
5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S 5      U" S!5      5        U R                  U" S"5      U" S#5      5        U R                  U" S"5      U" S 5      5        U R                  U" S!5      U" S#5      5        U R                  U" S 5      U" S#5      5        U R                  U" S$5      U" S%5      5        U R                  U" S&5      U" S'5      5        U R                  U" S(5      U" S)5      5        g )*Nr   )_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.2beta29)r   r~  r   
assertLess)r   Vs     r   test__comparable_version%PlatformTest.test__comparable_versionC  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                    U R                  U R                  5        SnSn[        R                  R	                  [
        SS5         [        R                  R	                  [        SUS9   [        R                  R	                  [        SUS9   S H  u  p4n[        R                  R	                  [        S	US9   U R                  5         U R                  [        R                  " S
S9U5        U R                  [        R                  " 5       U5        S S S 5        M     S S S 5        S S S 5        S S S 5        g ! , (       d  f       M  = f! , (       d  f       N1= f! , (       d  f       N:= f! , (       d  f       g = f)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  )64bitrR   r   r.  r   )rR  r   ))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-64bitr"  rd   )r(   )ra  r   r   rc  objectrE   r   r   )r   r   archr"  expected_terser   s         r   
test_macosPlatformTest.test_macosh  s!   ))*#
 ZZsJ9ZZxuEZZxdK	61 ZZ&&x4; ' =%%'$$X%6%6Q%?P$$X%6%6%8(C	= =	6 L F :9= = LK FE :9sU   $E,)$E,E
9AD8E
E'E,8
EE


EE
E)	%E,,
E:c                    U R                  U R                  5        U R                  5         [        S [        R                   5       5      (       ad  [        R
                  " 5       nU R                  SU5        U R                  SU5        SUS'   U R                  S[        R
                  " 5       5        g U R                  [        5         [        R
                  " 5         S S S 5        g ! , (       d  f       g = f)Nc              3   `   #    U  H$  n[         R                  R                  U5      v   M&     g 7fr
   )r   rZ  isfile)r:  fns     r   r<  ;PlatformTest.test_freedesktop_os_release.<locals>.<genexpr>  s"     L,Kbrww~~b!!,Ks   ,.NAMEIDtestCPYTHON_TEST)
ra  r   r   r   _os_release_candidatesfreedesktop_os_releaser   assertNotInrr   r   )r   r   s     r   test_freedesktop_os_release(PlatformTest.test_freedesktop_os_release  s    ))*LH,K,KLLL224DMM&$'MM$%#)D //1
 ""7+//1 ,++s   
C))
C7c                    [         R                  " [        R                  5       5      nU R	                  US   S5        U R	                  US   S5        U R                  SU5        U R	                  US   S5        [         R                  " [        R                  5       5      nU R	                  US   S5        U R	                  US   S	5        U R	                  US   S
5        U R	                  US   S5        [         R                  " [        R                  5       5      nSSSSSSSSSSSS.nU R	                  X5        U R	                  [        US   5      S5        g )Nr  Fedorar  fedoraID_LIKEVERSION_CODENAMErR   Ubuntuubuntudebianfocalr\   Linuxzegg spam vikingdoublesinglezdouble'sz$`\'")r  r  PRETTY_NAMEr  EMPTYDOUBLE_QUOTEEMPTY_DOUBLESINGLE_QUOTEEMPTY_SINGLEQUOTESSPECIALSr  rh   )	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  sA   ))*;*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"($$ !
 	(T*-.2r   )rH   rI   rF   N)7__name__
__module____qualname____firstlineno__r   r   r   skip_unless_symlinkr   requires_subprocessr$   r)   r-   r1   r5   r:   r>   rB   rJ   rM   r   r   r   unittest
skipUnlessrE   r   r  r   r   r   r   r   r   r   r   skipIfr   r   r   
MS_WINDOWSr  r  r,  r5  rN  is_emscriptenrk  r{  cpython_onlyr  r  r  r  __static_attributes__ r   r   r   r   O   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 __W**,JK.. L..`#4J !7 !7HD82$3r   r   __main__)r   r   r   r   r   rE   r  r   r  r   test.supportr   r   ImportErrorr  r  r  TestCaser   r  mainr  r   r   <module>r     s    	     
    "  , *c	38$$ c	3L zMMO G  Gs   A( (A32A3