A]'0jSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK r SSK r SSK r SSK r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSKJ r SSKJ!r! SSKJ"r" SSKJ#r# SSKJ$r$ SSK J%r% SSK&r&SSK(r(SSK)r)SSK*r*\*RV"5Vs/sHoRXPM snr-SSK/r/SS K/J0r0J1r1 SSK3r3SS K4J5r5 SS KJ6r6 SS K7J8r8 S r9\:"\ S5(a\ Rv"5S:Hr9\:"\S5(aA\RxRz(a&\RxRzR}S5r?OS r?\RR}S5=(a \ R"5S:HrASrBSSjrC\R"\RR}S5S5rESrF"SS\R5rH"SS\R5rI"SS\R5rJ"SS\R5rKSSKJLrL "S S!\LR5rN"S"S#\R5rO\R"\:"\ S$5S%5"S&S'\O55rQ"S(S)\O5rR\R"\:"\ S$5S%5"S*S+\Q55rS"S,S-\R5rT\R"\:"\ S.5S/5"S0S1\R55rU"S2S3\R5rV\R"\RS45"S5S6\R55rX"S7S8\R5rY\R"\:"\ S95S:5"S;S<\R55rZ\R"S=5S>:H=(d1 \R"S?5S>:H=(d \R"S@5S>:Hr\\R"\\SA5\R"\RSB:HSC5"SDSE\R555r]\RSSFj5r_\R"\:"\ SG5SH5"SISJ\R55r`\R"\RSK:HSL5"SMSN\R55ra\R"\RSO5"SPSQ\R55rb\R"\:"\ SR5SS5"STSU\R55rc\R"\RSK:HSV5"SWSX\R55rd\R"\RSK:HSV5"SYSZ\R55re\R"\RSK:HSL5"S[S\\R55rf\R"\RSK:HSL5"S]S^\R55rg\R"\ RS_:HS`5"SaSb\R55ri\R"\:"\ Sc5Sd5"SeSf\R55rj\R"\RSK:HSL5\!R"SgSh\R555rl\R"\RSK:HSL5"SiSj\R55rm\R"\RSK:HSL5"SkSl\R55rn\!R"SmSn\R55ro"SoSp\R5rp"SqSr\R5rq\R"5"SsSt\R55rs\R"5"SuSv\R55rt\R"Sw5\R"\:"\ Sx5Sy5"SzS{\R555rv\R"\:"\ S|5=(a \:"\ S}5S~5"SS\R55rw\R"\:"\ S5S5"SS\R55rySrz\R"\z"5S5\R"SSS5"SS\R555r|\R"\:"\ S5S5"SS\R55r}\R"\:"\ S5S5\R"SS5"SS\R555r~\R"\:"\ S5S5\R"SSS5"SS\R555r\R"\:"\ S5S5\R"\RS:HS5\R"SSS5"SS\R5555r"SS\R5r"SS\R5r\R"5"SS\R55r\R"\:"\ S5S5"SS\R55r"SS\R5r\R"\:"\ S5S5\R"\GR S5\R"\RSK:HS5"SS\R5555r"SS\R5r"SS\R5r"SS\R5r"SS\R5r"SS\R5r\GR"5"SS\R55r\:"\ S5(a "SS\5r\S:Xa\GR""5 gg!\'a Sr&G N-f=f!\'a Sr(G N7f=f!\'a Sr)G NAf=fs snf!\'\.4a /r-G N'f=f!\'a Sr/\Rd=r0r1G N7f=f!\'a Sr3G NAf=f)N)support) import_helper) os_helper) socket_helper)infinite_recursion)warnings_helper) win32_is_iot)INT_MAXPY_SSIZE_T_MAXassert_python_ok) unix_shell)FakePathFgeteuid thread_info linuxthreadsfreebsdcR[R"[[U5SU-5$)Nzrequires os.%s)unittest skipUnlesshasattrosnames 3/opt/alt/python313/lib64/python3.13/test/test_os.pyrequires_os_funcr]s"   wr402BT2I JJct[USS5nURU5 SSS5 g!,(df  g=f)Nxbr)openwrite)filenamecontentfps r create_filer%as( ha B  ! s) 7aixz%on AIX, splice() only accepts socketsc0[R"S5 gN)asyncioset_event_loop_policyrrtearDownModuler,ks !!$'rc&\rSrSrSrSrSrSrg) MiscTestsocZ[R"5nURU[5 gr()rgetcwdassertIsInstancestrselfcwds r test_getcwdMiscTests.test_getcwdpsiik c3'rcSn[RS:XaSnSnSnUSU[U5- --n[R"5n[ R "U5nUn[R"5nURXv5 U[U5[[RR5-- nUS::aOj[U5U:a US:aUSUn[RRXS5n[R"U5 [R"U5 UnM[&R((a[+S[U535 SSS5 SSS5 g![a MJ[ a*n U R"["R$:XaSn A MweSn A ff=f!,(df  NZ=f!,(df  g=f) Nvxworkspython_test_dir_arz!Tested current directory length: )sysplatformlentempfileTemporaryDirectoryr change_cwdrr1 assertEqualpathsepjoinmkdirchdirFileNotFoundErrorOSErrorerrno ENAMETOOLONGrverboseprint) r5min_lendirlendirnametmpdirrGexpectedr6needexcs rtest_getcwd_long_pathMiscTests.test_getcwd_long_pathtss <<9 $G$SFS\$9:;  ( ( *f%%f-))+C$$S3"c#hRWW[[1A&ABDqy7|d*tax")%4.77<<6D" $H7:??=c#hZHIC.+ *(-""99(:(::!! "1.-+ *saF;BF*:,E'&0F*F;' F'1F*4 F'=F"F*!F""F''F** F8 4F;; G c[R"5nURU[5 UR [R "U5[R "55 gr()rgetcwdbr2bytesrFfsdecoder1r4s r test_getcwdbMiscTests.test_getcwdbs<jjl c5) S)299;7rr+N)__name__ __module__ __qualname____firstlineno__r7rYr___static_attributes__r+rrr.r.os(7Jr8rr.c\rSrSrSr\rSr\R"\ RS5\R"\ RS5S55r \ RS5rSr\ R\R "\\:S 5\ R&"\S -S S S 9S555rSrSr\R "\R0S:HS5S5rSrSrSrSrSr\R "\"\ S5S5S5r!\R "\"\ S5S5S5r"\R "\"\ S5S5S5r#\R "\"\ S5S5S 5r$\R "\"\ S5S5\%S!55r&\R "\"\ S5S5\%S"55r'\R "\"\ S5S5\%S#55r(S$r)g%)& FileTestsc[RR[R5(a%[R "[R5 ggr()rrGlexistsrTESTFNunlinkr5s rsetUpFileTests.setUps2 77??9++ , , IIi&& ' -rc<[R"[R[R[R -5n[R "U5 UR[R"[R[R55 gr() rr rrkO_CREATO_RDWRclose assertTrueaccessW_OKr5fs r test_accessFileTests.test_accesssQ GGI$$bjj&: ;    )"2"2BGG<=rz"Test is unstable under Emscripten.zWASI does not support dup.cT[R"[R[R[R -5n[R "U5nSnX!S-:waS[R"U5 US- nUS:aURS5 U[R "U5p!X!S-:waMS[R"U5 [R"XS-5 UR[[RUS5 g![R"U5 f=f)Nr z%couldn't allocate two consecutive fdsa) rr rrkrqrrduprsskipTest closerange assertRaisesrMr!)r5firstsecondretriess rtest_closerangeFileTests.test_closeranges (("**RYY*>? GAI%1 R<MM"IJ &vv AI% HHV  eQY' '288UD9 HHV s ADD'c[Rn[R"U5nUR [ [ RUS5 [R"U5nURX#5 gNr) rrkr@ getrefcountr TypeErrorrrenamerF)r5rGoldnews r test_renameFileTests.test_renamesOood# )RYYa8ood# "rc[[RS5nURS5 UR 5 UR 5n[ R"USS5 [ R"US5nUR[U5[5 URUS5 SSS5 g!,(df  g=f)Nw+bspamr) r rrkr!flushfilenorlseekreadrFtyper])r5fobjfdss r test_readFileTests.test_reads )""E *d JJw  JJLB HHRA AA   T!We ,   Q (+ * *s BB66 Czneeds INT_MAX < PY_SSIZE_T_MAXr}r|F)sizememusedry_runcjUR[R[R5 [ [RS5 [ [RS5n[ R"UR5U5nSSS5 URWS5 g!,(df  N!=f)Nstestrb) addCleanuprrlrkr%r rrrrF)r5rr$datas rtest_large_readFileTests.test_large_readsx  (()*:*:;I$$g.)""D )R77299;-D* w' * )s #&B$$ B2cz[R"[R[R[R -5nUR [[RUS5 [R"US5 [R"U[S55 [R"U[S55 [R"U5 [[RS5nURUR5R5/SQ5 SSS5 g!,(df  g=f)Nbeanssbacon seggs sspam r)sbaconseggsr)rr rrkrqO_WRONLYrrr! bytearray memoryviewrsrFr splitlines)r5rrs r test_writeFileTests.test_writes WWY%%rzzBKK'? @ )RXXr7; Z  Yy)* Z *+  )""D )T   TYY[335, .* ) )s 21D,, D:cp[R"U[RSS9nURUS5 g)NT) creationflagsshellr) subprocesscallCREATE_NEW_CONSOLErF)r5argsretcodes rwrite_windows_consoleFileTests.write_windows_console s0//$$77  !$rwin32z$test specific to the Windows consolecSnUR[RSU5 UR[RSSU5 g)Nzprint('x' * 100000)-cz-u)rr@ executabler5codes rtest_write_windows_console$FileTests.test_write_windows_consoles7% ""3>>4> ""3>>4tDrc[R"[R[R5n[R "U/UQ7SS06nUR 5 g)Nencodingutf-8)rr rrkO_RDONLYfdopenrs)r5rrrxs r fdopen_helperFileTests.fdopen_helpers= WWY%%r{{ 3 IIb 24 2' 2  rc[R"[R[R[R -5n[R "U5 UR5 URS5 URSS5 g)Nrd)rr rrkrqrrrsrr5rs r test_fdopenFileTests.test_fdopen#sZ WWY%%rzz"))'; <    3 3$rcL[RS-nUR[R[R5 UR[RU5 [ [RS5 [ US5 [ R "[RU5 UR[[ R[R5 [USSS9nURUR5S5 SSS5 g!,(df  g=f)Nz.212rrr1) rrkrrlr%rreplacerrLstatr rFr)r5TESTFN2rxs r test_replaceFileTests.test_replace+s""T)  (()*:*:;  (('2I$$d+GT" 9##W- +RWWi6F6FG '3 1Q   QVVXs +2 1 1s +!D D#c[R"[[RSSS9n[R"U5 g)N)rGflagsmodedir_fd)rr __file__rrsrws rtest_open_keywordsFileTests.test_open_keywords8s( GG5   rc[R"[S5nU"S[RSSS9 g![ [ 4a gf=f)NsymlinktargetF)srcdsttarget_is_directoryr)r get_attributerrrkNotImplementedErrorrM)r5rs rtest_symlink_keywordsFileTests.test_symlink_keywords=sG''I6  i&6&6$)$ 8#W-   s5AAcopy_file_rangeztest needs os.copy_file_range()cUR[5 [R"SSS5 SSS5 g!,(df  g=fNrr|i)r ValueErrorrrrms r#test_copy_file_range_invalid_values-FileTests.test_copy_file_range_invalid_valuesEs.   z *   q!S )+ * * 8 Ac~[RS-nSn[[RU5 UR[R[R5 [ [RS5nURUR 5 UR5n[ US5nUR[RU5 URUR 5 UR5n[R"XFS5nURU[SS55 [ US5nURUR5USU5 SSS5 g!,(df  g=f![a:nUR[R :waeUR#U5 SnAgSnAff=f)N.3 0123456789rrr)rrkr%rrlr rsrrrassertInrangerFrrMrNENOSYSr) r5rrin_filein_fdout_fileout_fdies rtest_copy_file_rangeFileTests.test_copy_file_rangeJsA""T)I$$d+  (()*:*:;y''.  & '  (('2 '" ;""5!4A MM!U1a[ )gt$  bq:%$$ ww%,,& MM!    s$;E8:$E'' E58 F<0F77F<c[RS-nSnSnSnSn[[RU5 UR[R[R5 [ [RS5nURUR 5 UR5n[ US5nUR[RU5 URUR 5 UR5n [R"XyUUUS9n URU [S US -55 [ US5nUR5n SSS5 URW SUS U-5 URXSX$XJ-5 g!,(df  N?=f![a:n U R[R :waeUR#U 5 Sn A gSn A ff=f) N.4rrrrr) offset_src offset_dstrr|)rrkr%rrlr rsrrrrrrrFrMrNrr) r5TESTFN4r bytes_to_copyin_skipout_seekrrrrrrrs rtest_copy_file_range_offset%FileTests.test_copy_file_range_offsetls""T) I$$d+  (()*:*:;y''.  & '  (('2 '" 6""5-.5.68A MM!U1mAo6 7gt$||~%   T)8_gh.> ?   T)_!')4 6 %$ ww%,,& MM!    s$FF  F G"(0GG"spliceztest needs os.splice()cUR[5 [R"SSS5 SSS5 g!,(df  g=fr)rrrrrms rtest_splice_invalid_values$FileTests.test_splice_invalid_valuess,   z * IIaC + * *rc^^[RS-nSn[[RU5 UR[R[R5 [ [RS5nURUR 5 UR5n[R"5ummURU4Sj5 URU4Sj5 [R"UTS5nURU[SS55 UR[R"TS 5USU5 g![a:nUR [ R":waeUR%U5 SnAgSnAff=f) Nrrrc0>[R"T5$r(rrsread_fdsr'FileTests.test_splice.. 1rc0>[R"T5$r(rwrite_fdsrrr 2rrrrr)rrkr%rrlr rsrrpiperrrrFrrMrNrr) r5rrrrrrrrs @@r test_spliceFileTests.test_splices ""T)I$$d+  (()*:*:;y''.  & GGI 12 23 > %1-A MM!U1a[ )   RWWWc2D!H = ww%,,& MM!    s(E F 0FF c,^ ^ [RS-nSnSnSn[[RU5 UR[R[R5 [ [RS5nURUR 5 UR5n[R"5um m URU 4Sj5 URU 4Sj5 [R"UT X4S9nURU[S US -55 [R"T S 5nURXXDU-5 g![a:n U R [ R":waeUR%U 5 Sn A gSn A ff=f) Nrrrrrc0>[R"T5$r(rrsrr1FileTests.test_splice_offset_in..rrc0>[R"T5$r(rrsrrr$rr)rrr|r)rrkr%rrlr rsrrrrrrrrFrMrNrr) r5r rr r rrrrrrrs @@rtest_splice_offset_inFileTests.test_splice_offset_ins7""T) I$$d+  (()*:*:;y''.  & GGI 12 23 < %=MA MM!U1mAo6 7777C(D   T #: ; ww%,,& MM!    s,E F0FFc^ ^ [RS-nSnSnSn[[RU5 UR[R[R5 [ R "5um m URU 4Sj5 URU 4Sj5 [ R"T U5 [US5nUR[RU5 URUR5 UR5n[ R"T XcUS9nURU[S US -55 [US 5nUR5n SSS5 URW SUS U-5 URXSUSU5 g!,(df  N>=f![ a:n U R"["R$:waeUR'U 5 Sn A gSn A ff=f) Nrrrrc0>[R"T5$r(rrsrr2FileTests.test_splice_offset_out..rrc0>[R"T5$r(rrsrrr*rrr)rrr|rr)rrkr%rrlrrr!r rsrrrrrrFrMrNrr) r5r rr r rrrrrrrrs @@rtest_splice_offset_out FileTests.test_splice_offset_outs""T) I$$d+  (()*:*:;GGI 12 23 4 '  (('2 '" 8 '6XNA MM!U1mAo6 7gt$||~%   T)8_gh.> ?   T)_d2Ah 7 %$ ww%,,& MM!    s$F0F F-0 G4:0G//G4r+N)*rarbrcrdrntearDownryrskipIfr is_emscriptenis_wasir cpython_onlyrrrr r bigmemtestrrrr@rArrrrrrrrrrr rrequires_splice_piper r&r,rer+rrrgrgse(H> __C__5: :* ##) >19; Wr\!UC (D; ( .%0?AEAE % , %679Z[*\*%679Z[;\;B%679Z[*6\*6XX.0HI!J!X.0HI>J>>X.0HI"<J".trunc%s Q-rcU$r(r+r@s rrBrC's(rzst_atime st_mtime st_ctimei_nsi'r~deltar=No exception raisedr|r}rr|r~rrrr r} )rrrFST_SIZEst_sizedirlowerendswithgetattrrsplitr?assertAlmostEqual st_birthtimest_birthtime_nsAttributeErrorfail IndexErrorst_modest_rdevrparrot stat_result) r5r9resultmembersrattrrBfloaty nanosecondyresult2s rcheck_stat_attributes(StatAttributeTests.check_stat_attributessm  -q1 +f+IDBQx5 zz|==((/*  wv'=I> J Jc:URUR5 gr()rir9rms rtest_stat_attributes'StatAttributeTests.test_stat_attributesbs ""4::.rcURR[R"55nUR W5 g![a! UR SUR-5 N  6#<# ?*   FNNA. u-.rcS[RR[R"55S-n[R"U5nUR UR [R5 g)Nz//./r)rrG splitdriver1rrFr_S_IFBLK)r5r9rcs rtest_stat_block_device)StatAttributeTests.test_stat_block_devicesM++BIIK8;; 6r)r9N)rarbrcrdrnrirlrrr~rrrrrrr@rArrrrrrrer+rrr6r6sv( HT/* 4Y/1JK)L)VY/,. 0. 002HI5J502HI V,.BC ;DJ ;F 0?A+A+&02HI/J/*02HI7J7rr6c\rSrSrSrSrSSjrSr\S5r Sr S r \ R"\R\R ;S 5S 5r\ R"\R\R$;S 5S 5r\ R"\R\R(;S5S5rSrSrSrSrSrSrSrSr\R>S5r Sr!g) UtimeTestsicJ[RUl[RR URS5UlUR[RUR5 [R"UR5 [UR 5 g)Nf1) rrkrTrrGrIr9rrmtreerJr%rms rrnUtimeTests.setUps] '' WW\\$,,5   (($,,7 DJJrc[R"U5nURUS:g=(d+ URUS:g=(d URUS:g$)NrKrLrM)rrst_atimest_mtimest_ctime)r5r"sts rsupport_subsecondUtimeTests.support_subsecond sQWWX 1%*KK2a5(*KK2a5( +rNc U(d URnURU5nU(aSnSnOSnSnU"X$U45 [R"U5nU(a=UR UR US-SS9 UR UR US-SS9 O>URUR US-5 URUR US-5 URURU5 URURU5 g)Ni8Z;l o]r TlP9& .>gư>rF) r9rrrrYrrrF st_atime_ns st_mtime_ns)r5set_timer"ratime_nsmtime_nsrs r _test_utimeUtimeTests._test_utimeszzH 228< "H!H!H Hh/0 WWX    " "2;;4t " L  " "2;;4t " L   R[[(T/ :   R[[(T/ : 2 2rc,SnURU5 g)Nc,[R"XS9 gNnsrutimer"rs rr'UtimeTests.test_utime..set_time2 HHX %rrr5rs r test_utimeUtimeTests.test_utime1s & "rcUS-S-$)Nrg& .>r+rs r ns_to_secUtimeTests.ns_to_sec7s T V##rc4^U4SjnTRU5 g)Nc>Uup#TRU5nTRU5n[R"XU45 gr(rrrr"rrratimemtimer5s rr2UtimeTests.test_utime_by_indexed..set_time@s9!# HNN8,ENN8,E HHXu~ .rrrs` rtest_utime_by_indexed UtimeTests.test_utime_by_indexed>s / "rc4^U4SjnTRU5 g)Nc~>Uup#TRU5nTRU5n[R"XU4S9 g)N)timesrrs rr0UtimeTests.test_utime_by_times..set_timeJs7!# HNN8,ENN8,E HHXU^ 4rrrs` rtest_utime_by_timesUtimeTests.test_utime_by_timesIs 5 "rz9follow_symlinks support for utime required for this test.c,SnURU5 g)Nc.[R"XSS9 g)NF)rfollow_symlinksrrs rr9UtimeTests.test_utime_nofollow_symlinks..set_timeVs HHXe .set_time_s2ha(B,)((s $; A rrs r test_utime_fdUtimeTests.test_utime_fd\s - "rz0dir_fd support for utime required for this test.c,SnURU5 g)Nc[RRU5up#[R"U5n[R "X4US9 SSS5 g!,(df  g=f)N)rr)rrGrXr open_dir_fdr)r"rrTrdirfds rr.UtimeTests.test_utime_dir_fd..set_timeis@GGMM(3MG&&w/530//s A A%rrs rtest_utime_dir_fdUtimeTests.test_utime_dir_fdfs 4 "rc<SnURXRS9 g)Nc,[R"XS9 grrrs rr1UtimeTests.test_utime_directory..set_timeqrr)r")rrTrs rtest_utime_directoryUtimeTests.test_utime_directoryps & LL9rc\[R"5nU"UR5 URUR5(dSnOSn[R"UR5nSUR <SU<SUR U- <3nUR UR UX5S9 g)Ng?g?zst_time=z , current=z, dt=)rGmsg)timer9rrrrrY)r5rcurrentrGrrs r_test_utime_currentUtimeTests._test_utime_currentvs))+ %%djj11EE WWTZZ ++w g(=? r{{G%*  5rc4^U4SjnTRU5 g)NcF>[R"TR5 gr(rrr9r"r5s rr/UtimeTests.test_utime_current..set_times HHTZZ rrrs` rtest_utime_currentUtimeTests.test_utime_currents !   *rc4^U4SjnTRU5 g)NcH>[R"TRS5 gr(rrs rr3UtimeTests.test_utime_current_old..set_times HHTZZ &rrrs` rtest_utime_current_old!UtimeTests.test_utime_current_olds '   *rc [R"5nSnUR[5n[R"X!U45 SSS5 UR WR RU5 g!,(df  N5=f)N nonexistent)rrrLrrrFrr")r5nowr"cms rtest_utime_nonexistent!UtimeTests.test_utime_nonexistents[iik    0 1R HHXSz *2 ..92 1s A55 Bc r[RS:Xa[RR [RR U55SS-nSSKnURRnURSS5nURUSSSSSU[U55nU(a UR$gg)Nrr\r) r@rArrGrabspathctypeswindllkernel32create_unicode_bufferGetVolumeInformationWrBr)r5rGrootr,r.bufoks rget_file_systemUtimeTests.get_file_systems <<7 "77%%bggood&;UR[5 [R"URSSS9 SSS5 [R[R;ac[URSS 5nUR[ 5 [R"UR5S5 SSS5 SSS5 [R[R;a?UR[5 [R"URSS S 9 SSS5 gg!,(df  GN=f!,(df  GN=f!,(df  GNr=f!,(df  GNE=f!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GNt=f!,(df  GN =f!,(df  GN=f!,(df  g=f) N)rrrr)r)rrrFrrrr) rrrrr9rsupports_follow_symlinksr supports_fdr rsupports_dir_fd)r5r$s rtest_utime_invalid_arguments'UtimeTests.test_utime_invalid_argumentss4   z * HHTZZF 3+   y ) HHTZZ!Q (*   y ) HHTZZ &*   y ) HHTZZ +*   y ) HHTZZQF +*   y ) HHTZZD )*   y ) HHTZZI .* 88266 6""#67VUC8 882>> )djj$*b&&y1HHRYY[&12+ 882-- -""#67VA687 .-+ * ) ) ) ) ) ) ) ) ) ) ) )8721+*87s!K>$L"L""L4"M M M*.!M<N &&N N !N2> L  L" L14 M M M'* M9< N  N N  N/2 OcSnUR[5 [R"URU"S5S4S9 SSS5 UR[5 [R"URU"S5S4S9 SSS5 UR[5 [R"URU"S5S4S9 SSS5 g!,(df  N=f!,(df  Ne=f!,(df  g=f)Nc,^"U4SjS5nU"5$)Nc">\rSrSrU4SjrSrg)?UtimeTests.test_issue31577..get_bad_int..BadIntic>T$r(r+)rdivmod_ret_vals r __divmod__JUtimeTests.test_issue31577..get_bad_int..BadInt.__divmod__s ))rr+N)rarbrcrdrIre)rHsrBadIntrFs **rrKr+)rHrKs` r get_bad_int/UtimeTests.test_issue31577..get_bad_ints * *8Or*r|rr+)r|r~r)rrrrr9)r5rLs rtest_issue31577UtimeTests.test_issue31577s    y ) HHTZZ[_a$8 9*   y ) HHTZZ[_a$8 9*   y ) HHTZZ[%;Q$? @* ) * ) ) ) ) )s#(C(C%#(C6 C"% C36 D)rTr9r()"rarbrcrdrnrrr staticmethodrrrrrrrr>rr?rr@rr rrr r&r4r9rArr2rOrer+rrrrs +3># $$ ##R%@%@@*+#+#R^^3GI#I#R%7%77KM#M#: 5,+ + : !>78  A Arr) mapping_testsc\rSrSrSrSrSrSrSr\ R"\ =(a \ RR\ 5S5\ R"\"\ S5S 5\R""5S 555r\ R"\ =(a \ RR\ 5S5\ R"\"\ S5S 5\R""5S 555rS rS rSrSr\ R"\ R0S5S5r\R""5S5r\R6"SS5S5rSrSrSrSr Sr!Sr"Sr#Sr$Sr%Sr&S r'S!r(g)" EnvironTestsiNc[[R5Ul[R(a[[R 5UlUR5R5HupU[RU'M gr() dictrr_EnvironTests__savesupports_bytes_environenvironb_EnvironTests__saveb _referenceitemsr5keyrs rrnEnvironTests.setUpsT2::& $ $ ,DL//+113JC#BJJsO4rcL[RR5 [RRUR5 [R (aH[R R5 [R RUR5 ggr()rrclearupdaterWrXrYrZrms rr.EnvironTests.tearDowns\  $++& $ $ KK    KK  t|| , %rcSSSS.$)NVALUE1VALUE2VALUE3)KEY1KEY2KEY3r+rms rr[EnvironTests._referencesBBrc^[RR5 [R$r()rrrarms r_empty_mappingEnvironTests._empty_mappings zzrzrequires a shellpopenzneeds os.popen()cH[RR5 [RRSS9 [R"S[ -5nUR 5R5nURUS5 SSS5 g!,(df  g=f)NWorld)HELLOz%s -c 'echo $HELLO') rrrarbrorrstriprF)r5rors r test_update2EnvironTests.test_update2sm  ( XX+j8 9UJJL&&(E   UG ,: 9 9s 1B B!c`[R"S[-5n[U5nUR [ U5S5 UR [ U5S5 UR [ U5S5 UR [[ U5 SSS5 g!,(df  g=f)Nz %s -c 'echo "line1 line2 line3"'zline1 zline2 zline3 )rroriterrFnextr StopIteration)r5roits rtest_os_popen_iterEnvironTests.test_os_popen_iter s XX<"#$',eB   T"Xy 1   T"Xy 1   T"Xy 1   mT2 6 $$$s A8B B-c[RR5HCupUR[ U5[ 5 UR[ U5[ 5 ME gr()rrr\rFrr3)r5r^vals rtest_keyvalue_types EnvironTests.test_keyvalue_typessC ((*HC   T#Y ,   T#Y ,+rcUR5R5H4upUR[RR U5U5 M6 gr()r[r\rFrrgetr]s r test_itemsEnvironTests.test_itemss;//+113JC   RZZ^^C0% 84rc[RnSRSUR555nUR [ U5SUS35 g)Nz, c38# UHupU<SU<3v M g7f)z: Nr+).0r^rs r -EnvironTests.test___repr__..&s$$ ) gRy !)sz environ({z}))rrrIr\rFrepr)r5envformatted_itemss r test___repr__EnvironTests.test___repr__#sLjj))$ !iik$   cj0A$EFrc[RR[R5n/SQnS[RR U50n[R n[ U5[lURU[R"55 URU[R"SS95 U[lURU[R"055 URS[R"SS055 URU[R"U55 [R(a[R"SS9 SS S .nSSS5 UR[[RW5 UR[R"S S 05S /5 UR[R"S S 05S /5 UR[R"SS 05S /5 gg!U[lf=f!,(df  N=f![a Nf=f)N)z/montyz/pythonr*z/flying/circusPATHrr*r*T)recordrr)rPATHrabcabc)rdefpathrXpathseprIrrVassertSequenceEqual get_exec_pathrXwarningscatch_warningsrr BytesWarning)r5 defpath_list test_pathtest_env saved_environ mixed_envs rtest_get_exec_pathEnvironTests.test_get_exec_path,szz'' 3 ? BJJOOI67  'hBJ  $ $Y0@0@0B C  $ $Y0@0@T0J K&BJ   r/?/?/CD   (8(8&(EF   B,<,.> J  $ $R%5%5w6G%H   $ $R%5%5w6F%G   $ $R%5%5vv6F%G # %'BJ:9  s7$AHH;*H*0H; H'* H84H;; IIz#os.environb required for this test.c|SnUR[R"5S5nU[ R S'UR[ R SU5 UR[ RSW5 SnU[ RS'UR[ RSU5 UR[R"5S5nUR[ R SU5 g![a. S[R"5<3nUR U5 GNf=f) Nueuro€surrogateescapez%U+20AC character is not encodable to unicodesunicodesbytesr]) ror@rprqrrrrFrYdecode)r5r value_bytesr value_strs r test_environbEnvironTests.test_environbUs ,,s'@'@'B'8:K !& 9 I.6 Z0+> % H X.6LL!:!:!<>OP  G,i8" ))+.C MM#  s%D4D;:D;cSnSnSU<S3n[R"5nURUS5 [R"X5 [ R "[RSU/S[ RSS9nURURR5[U55 [R"U5 [ R "[RSU/S[ RSS9nURURR5[S55 SSS5 g!,(df  g=f)N PYTHONTESTVAR testvaluez%import os; print(repr(os.environ.get(z)))rT)checkstdouttext)rEnvironmentVarGuardpoprputenvrrunr@rPIPErFrrstriprunsetenv)r5rrrrprocs rtest_putenv_unsetenv!EnvironTests.test_putenv_unsetenvls6thcB  * * , GGD$  IId ">>3>>4">d)3tED   T[[//14; ? KK >>3>>4">d)3tED   T[[//14: >- , ,s DD;; E r}rcSHZnUR[[4[RUS5 UR[[4[R U5 M\ SHNnUR[[RUS5 UR[[R U5 MP [ RS:XawSS-nUR[[RUS5 UR[[RSU5 UR[[R U5 gg) N)r*z=namezna=mezname=r)znameznamerrArX)rrMrrrrr@rA)r5rlongstrs rtest_putenv_unsetenv_error'EnvironTests.test_putenv_unsetenv_errors4D   w 3RYYg N   w 3R[[$ G4)D   j"))T7 C   j"++t <) <<7 "FlG   j"))Wc B   j"))S' B   j"++w ? #rcSnURU[R5 UR[5n[RU SSS5 UR WR RSU5 URUR R5 UR[5n[RU SSS5 UR UR RSU5 URUR R5 g!,(df  N=f!,(df  Nn=f)N missingkeyr) assertNotInrrrKeyErrorassertIsrrrt__suppress_context__)r5missingr%s r test_key_typeEnvironTests.test_key_types "**-   x (B JJw ) bll''*G4  99:   x (B 7#) bll''*G4  99:) ( ) (sD 7D1 D.1 D?c[U5nSn[U5 S[RU'[U5 UR [RUS5 [RU g![RU f=f)N __new_key__test_environ_iteration)rwrxrrrF)r5 collectioniteratornew_keys r_test_environ_iteration$EnvironTests._test_environ_iterationsg # X7 7 $ N   RZZ02J K 7# 7#s .A--BcBUR[R5 gr()rrrrms r(test_iter_error_when_changing_os_environ5EnvironTests.test_iter_error_when_changing_os_environs $$RZZ0rc^UR[RR55 gr()rrrr\rms r.test_iter_error_when_changing_os_environ_items;EnvironTests.test_iter_error_when_changing_os_environ_itemss $$RZZ%5%5%78rc^UR[RR55 gr()rrrvaluesrms r/test_iter_error_when_changing_os_environ_values"UCE  # &m+ X. f45&,,. nbjj&7&7&GH ))%4 )).IrcSnS[RU'SSSSUS0n[[R5nURU5 [=RU-slUR U[R5 UR S[RU5 UR SS5 UR US5 g)NrrrrrrrrrrVrbrFr)r5rrrVs rtest_ior_operatorEnvironTests.test_ior_operators%%5 >"UCE  # & m#  2::. bjj89 ))%5 )).#>rc[RR5nUR[5 SS0n[=RU-slSSS5 UR[5 SS0n[=RU-slSSS5 UR U[R5 g!,(df  Nj=f!,(df  N@=f)Nr|r)rrcopyrrrF)r5os_environ_copydict_with_bad_keydict_with_bad_vals rtest_ior_operator_invalid_dicts,EnvironTests.test_ior_operator_invalid_dictss**//+   y )!"E  JJ+ +J*  y )!&  JJ+ +J* "**5* )* )sB6/C6 C CcSnS[RU'SSUS44n[[R5nURU5 [=RU-slUR U[R5 UR S[RU5 UR SS5 UR US5 g)Nrr)rr)rrrrrr)r5rrrVs r$test_ior_operator_key_value_iterable1EnvironTests.test_ior_operator_key_value_iterables%%5 >"& ~s6KL #' n$  2::. bjj89 ))%5 )).#>rcSnSnU[RU'SSSSUS0n[U5nUR[R5 U[R-nUR XE5 UR X%U5 UR 5nUR[[RRU55 URSS5 URX5 gr) rrrVrbrrFr\rr__ror__rrs rtest_ror_operatorEnvironTests.test_ror_operators%)%3 >"UCE  & #+ X. )?@&,,. nbjj&8&8&HI ))%4 )).Ir)__save__saveb))rarbrcrd type2testrnr.r[rmrrrrrGrrrrequires_subprocessrtr{rrrrrXrrrequires_mac_verrrrrrrrrrrrrrer+rrrTrTsI$-C Bz(B+- W-/AB   "-#C--Bz(B+- W-/AB   "7#C-7- 9 G'R22>@9@9*   "?#?& b!$@%@$ ; $19: *J& ? 6 ?JrrTcj\rSrSrSrSrSrSrSSjrSr S r S r S r S r \R"\"\S 5S5\R$"\R(S:HS5S55r\R"\"\S 5S5\R$"\R(S:HS5S55rSrSrSrg) WalkTestsiFc dSU;aURS5US'[R"U40UD6$Nr followlinks)rrwalk)r5topkwargss rrWalkTests.walks2  &$*JJ/@$AF= !wws%f%%rct[RRnUR[R [R 5 U"[R S5UlU"URS5UlU"URS5Ul U"URS5nU"US5nU"URS5Ul U"URS5nU"US5nU"US5nU"US 5Ul U"[R S 5nU"[R S S 5nU"US 5Ul U"US 5n U"US5n [R"UR5 [R"U5 [R"U5 [R"U5 URXEX4H.n [U SSS9n U RSU -S-5 SSS5 M0 [R "5(a[R""[RR%U5UR5 [R""SURS5 [R""U"SS5U S5 [R""U"SS5U S5 USS //SQ4UlO US/S/4Ul[(R*(d[R,"US5 [R."U5 [R,"U[0R25 [R4"U5 [R6"U5 UR&SSS2 g!,(df  GM=f![8a2 UR[R,U[0R25 gf=f)NTEST1SUB1SUB11SUB2SUB21tmp1tmp2tmp3linkTEST2tmp4 broken_link broken_link2 broken_link3rArrzI'm z" and proud of it. Blame test_os. brokenTtmp5)r$r%r&r rr|)rrGrIrrrrk walk_path sub1_path sub11_path tmp1_path link_pathbroken_link_pathmakedirsr r! can_symlinkrr+ sub2_treerr0chmodlistdirrS_IRWXUrlrPermissionError) r5rI sub2_path sub21_path tmp2_path tmp3_path tmp5_patht2_path tmp4_pathbroken_link2_pathbroken_link3_pathrGrxs rrnWalkTests.setUp!sww||  (()*:*:;&i..8dnnf5t~~w70 )W- dnnf50 F+ V, i0y''1))7F; $Y > N; N; DOO$ I J GNNI)NDdC'2a (MMN32O  " " JJrwww/ @ JJx!6!6 = JJtFH-/@$ G JJtGV,.? F''6):'(DN('VH=DN$$ HHZ # & JJz " HHZ . IIi HHZ q!"1"%332& @ OOBHHj$,, ? @s M(.M;( M8 ;9N76N7cf[URUR55nUR[ U5S5 USSSS:gnUSSR 5 USSU-- SR 5 USSU-- SR 5 URUSURSS/S /45 URUSU-UR S /S /45 URUSU-UR//45 URUSSU-- UR5 g) Nrrr|rrr~rrrr) listrr)rFrBsortr*r+r1r5allflippeds rtest_walk_topdownWalkTests.test_walk_topdownhs&499T^^,- S1%a&)A,&( Aq  AG OR %%' AG OQ$$& Q$..662BVH!MN Q[)DNNWIx+PQ Q[)DOOR+DE QW_-t~~>rNcUc URn/nURU5H2up4nURX4U45 SU;dM!URS5 M4 UR [ U5S5 UR USURS/S/45 USSR 5 USSR 5 UR USUR5 g)Nrr~rrrr|rA)r)rappendremoverFrBrCr1)r5r)rEr1dirsrs rtest_walk_pruneWalkTests.test_walk_pruneys  I!%9!5 D JJE* +~ F# "6 S1% Q$..6(VH!EF Ar  Aq  Q0rcLUR[UR55 gr()rMrr)rms rtest_file_like_pathWalkTests.test_file_like_paths Xdnn56rc\[URURSS95nUR[ U5SU5 USSSS:gnUSSR 5 USSU-- S R 5 USSU-- SR 5 URUSURSS /S /45 URXUR //45 URXS-URS /S /45 URUSSU-- UR5 g)NFtopdownrrr|rrr~rArrrr) rBrr)rFrBrCr+r*r1rDs rtest_walk_bottom_upWalkTests.test_walk_bottom_ups1499T^^U9;< S1c*a&)A,&( Aq  AG OR %%' AG OQ$$& Q..66*:VHE G //2r2 4 q[)..7)fX> @ QW_- )rc[R"5(dURS5 URURSS9nUH<up#nX R :XdMUR U/5 UR US/5 O URS5 URURSS9nUR(aUR[[U5 UR[[U5 g)Nzneed symlink supportTr<r#z+Didn't follow symlink with followlinks=True)rr0rrr)r-rFr]r.is_fwalkrrLrxry)r5walk_itr1rLrs rtest_walk_symlinkWalkTests.test_walk_symlinks$$&& MM0 1))DNND)A!( D~~%  r*  1 ") IIC D))D114)H ==   /w ? -w7rc/nURURURS9n[U5up4nUR U/5 Sn[ R RX65n[ R RX6S-5n[ R"Xx5 UV V V s/sHupoPM n n n n URU5 URX|5 URX5 UH9n X:wdM UR[ R RX=5U 5 M; [ R"X5 gs sn n n f![ R"X5 f=f)Nonerrorrz.new) rr)rJrxrFrrGrIrrtrr)r5errorsrYr1rLrdir1path1path1newrdrxrootsdir2s rtest_walk_bad_dirWalkTests.test_walk_bad_dirs ))DNNFMM)B ME $ T(77<<Vm4 %" '&-.g71QgE. OOF #   U *   X -<MM"'',,t":EB IIh &/ IIh &s$!E 'E5?E 83E E E!cURS5nUR(aUR[[U5 UR[ [U5 URSSS9nUR(aUR[[U5 UR[ [U5 URUR 5nUR[ [U5 URUR SS9nUR(aUR[[U5 UR[ [U5 g)N nonexistingTr<)rrXrrLrxryr,NotADirectoryError)r5rYs rtest_walk_bad_dir2WalkTests.test_walk_bad_dir2s))M* ==   /w ? -w7))M4)@ ==   /w ? -w7))DNN+ -w7))DNND)A ==   0$ @ -w7rmkfifozrequires os.mkfifo()r;z%fifo requires special path on VxWorksc[RS-n[R"U5 UR [R U5 UR U5nUR[[U5 UR USS9nUR(aUR[[U5 UR[[U5 g)Nz-pipeTr<) rrkrrmrrlrrryrxrXrj)r5rGrYs rtest_walk_named_pipeWalkTests.test_walk_named_pipes') $  4())D/ -w7))D$)7 ==   0$ @ -w7rc[RS-n[R"U5 UR [ R U5 [R"[RRUS55 /nURXRS9n[U5 UR[[U5 URU/5 /nURXRS9n[U5upEnURXA5 URU/5 URUS/5 UR!U5 UR#5 UR$(aUR[&[U5 UR[[U5 UR$(aURU/5 gUR[)U5SU5 UR+US[&5 g)Nz-dirmypiper]r|r)rrkrrJrshutilrrmrGrIrrJrxrryrFextendrarXrjrBr2)r5rGr_rYr1rLrs rtest_walk_named_pipe2WalkTests.test_walk_named_pipe2sh&(   t, "'',,tX./))D--)8 W  -w7 $))D--)8 ME $ r"  + E ==   0$ @ -w7 ==   VR (   S[!V 4  ! !&)-? @rc*Sn[RR[RS5n[RR"U/S/U-Q76n[R "U5 [ S5Vs/sHo@RUSS9PM nn[ US-5HTnX6(aS/O//4nUHnUR[U5U5 M [RRU5nMV [ S5Vs/sHo@RUSS9PM nnUn[ US-5HTnX6U:aS/O//4nUHnUR[U5U5 M [RRUS5nMV gs snfs snf) NdeeprcrFrSr|T) rrGrIrrkr/rrrFrxrT) r5depthbaser|jitersrrVrzs rtest_walk_many_open_files#WalkTests.test_walk_many_open_filessPww||I,,f5 GGLL .#u . A9>sDA4/Duqy!AAC52r2H  b84"A " 9>c C 14. C uqy!AIC52r:H  b84 Q$A "EDs 9F FcSn[R"[RR"UR/S/U-Q765 [ US- 5 [ URUR55nSSS5 URSnWH-upEnXC:XdM UR5 UR5 M/ /nURn[U5H8n [RRUS5nURUS//45 M: USSR5 URS/S/4UR//4/UR/US .n USSnURUS /4/n UHn U RX5 M UR![#U5US -5 UR![%U5/S Q5 UR!X+5 g!,(df  GNm=f) N2rcrrrAr|rr)rrrcrr)rr/rGrIr)rrBrr1rCrrJrar*r+rtrFrBsorted) r5rzrEr6r1rLr d_entriesd_path_sectionsrVrcs rtest_walk_above_recursion_limit)WalkTests.test_walk_above_recursion_limit$s BGGLLBC55=BC  *tyy01C+NN1% !$ D   "%  uAWW\\&#.F   fseR0 1 " a 'VH5"b)^^$  1vay^^TF845A OOHK ( S519- '<= 'G+ *s %G G.)r.r-r+r*r1r,r)r()rarbrcrdrXrrnrGrMrPrUrZrfrkrrrrr/r@rArorur~rrer+rrrrsH& E&N?"1&7)*8&'*8&X.0FG __S\\Y.;= 8=H 8X.0FG __S\\Y.;=A=HA:%*&(rrfwalkzTest needs os.fwalk()cL\rSrSrSrSrSrSrSrSr Sr \ R"\ RS 5\ R"\ RS 5S 55r\ R"\ RS 5\ R"\ RS 5S 55rS rSrg ) FwalkTestsiMTc+R# UR"U40UD6H up4pVX4U4v M g7fr()r)r5rrr1rLrroot_fds rrFwalkTests.walkRs.*.**S*CF*C &Du% %+Ds%'c.[R"U0UD6$r()rrr5rrs rrFwalkTests.fwalkVsxx(((rc UR5nUR5n[R"SSS9Hup4URX4S9 URX4S9 0n[R "S0UD6Hupgn[ U5[ U54XV'M UR"S0UD6H?upgpURXe5 URXV[ U5[ U545 MA M g)NTFr~repeat)rTr)rTrr+) r itertoolsproductrbrrsetrrrF) r5 walk_kwargs fwalk_kwargsrTrrVr1rLrrootfds r_compare_to_walkFwalkTests._compare_to_walkYs"&&( #((* (1(9(9-PQ(R $G   w  L     QH%'WW%;{%;!E"%d)SZ!8&<.2ZZ-G,-G)E d-  #d)SZ1HI.H)SrcJS[R0nURX5 g)Nr)rrkr)r5rs rtest_compare_to_walkFwalkTests.test_compare_to_walkks ))* f-rc [R"S[R5nS[R0nUR 5nXS'UR X#5 [R"U5 g![R"W5 f=f)N.rr)rr rrrkrrrs)r5rrrs r test_dir_fdFwalkTests.test_dir_fdosf bkk*B )"2"23K&++-L%' "  ! !+ < HHRLBHHRLs AA55B c ~[R"SSS9Hup[RUS4nUR"USU06HvupEpg[ R "U5 [ R"U5 UR[[ R"U55[U5[U5-5 Mx M g)Nrr~rr) rrrrkrrfstatrrFrr3)r5rTrrr1rLrrs rtest_yields_correct_dir_fd%FwalkTests.test_yields_correct_dir_fdys(1(9(9-PQ(R $G##Wd2D-1ZZ-_-_)E   RZZ%7!8#d)c%j:PQ .`)SrzCannot dup stdout on Emscriptenz,dup return value is unpredictable on AndroidcZ[R"S5n[R"U5 [S5H)nUR [ R 5HnM M+ [R"S5nUR[RU5 URXA5 g)Nr|) rrrsrrrrkrrF)r5minfdrrAnewfds r test_fd_leakFwalkTests.test_fd_leaksuq  sAZZ 0 012q  %( &rc&SnSHnU"5nUR[RUS9nURU"5U5 [ U5 UR U"5U5 UR 5 URU"5U5 M g)Nc^[R"S5n[R"U5 U$Nr|)rrrs)rs rgetfd.FwalkTests.test_fd_finalization..getfdsB HHRLIrFTrS)rrrkrFrx assertGreaterrs)r5rrTold_fdrzs rtest_fd_finalizationFwalkTests.test_fd_finalizationsx %GWFI,,g>B   UWf - H   uw / HHJ   UWf -%rNr+)rarbrcrdrXrrrrrrrr/rr0 is_androidrrr~rer+rrrrMsH&)J$. R__@__J ' '__@__J . . !%rrc\rSrSrSrSrg)BytesWalkTestsic+# SU;aURS5US'[R"[R"U540UD6Hup4n[R"U5n[ [ [RU55n[ [ [RU55nXgU4v [ [ [RU55USS&[ [ [RU55USS&M g7fr)rrrfsencoder^rBmap) r5rrbrootbdirsbfilesr1rLrs rrBytesWalkTests.walks  &$*JJ/@$AF= !$&GGBKK,<$G$G E&;;u%DBKK/0DR[[&12Eu% %C T23E!HSe45F1I %HsC?Dr+N)rarbrcrdrrer+rrrrs 6rrc\rSrSrSSjrSrg)BytesFwalkTestsic/# [R"[R"U5/UQ70UD6HupEpg[R"U5n[ [ [RU55n [ [ [RU55n XX4v [ [ [RU 55USS&[ [ [RU 55USS&M g7fr()rrrr^rBr) r5rrrrrrtopfdr1rLrs rrBytesFwalkTests.fwalks+-88BKK4D+Vt+Vv+V 'E&;;u%DBKK/0DR[[&12Eu, ,C T23E!HSe45F1I ,WsC(C*r+N)r)rarbrcrdrrer+rrrrs6rrc\rSrSrSrSr\R"\R=(d \RS5S5r \R"\R=(d \RS5S5r \R"\R=(d \RS5S5r Sr\R"\R"S :HS 5S 5rS rS rg) MakedirTestsicL[R"[R5 gr(rrJrrkrms rrnMakedirTests.setUps !!"rc [Rn[RR USSS5n[R "U5 [RR USSSS5n[R "U5 UR [[R [R5 [RR USSSSS[R5n[R "U5 [RR US[RSSSSS5n[R "U5 gNr`redir3dir4dir5dir6) rrkrrGrIr/rrMcurdir)r5r{rGs r test_makedirMakedirTests.test_makedirsww||D&&&9 Dww||D&&&&A D '2;; :ww||D&&&&&"))T Dww||D&"))VVV"F, Drz$Emscripten's/WASI's umask is a stub.c[R"S5 [Rn[RR US5n[RR US5n[R "US5 UR[RRU55 UR[RRU55 [RS:wafUR[R"U5RS-S5 UR[R"U5RS-S5 SSS5 g!,(df  g=f)Nr~r`reimntri)r temp_umaskrkrrGrIr/rtrisdirrrFrr_)r5r{parentrGs r test_modeMakedirTests.test_modes  ! !% (##DWW\\$/F77<</D KKe $ OOBGGNN40 1 OOBGGMM$/ 0ww$  !6!6!>F  !8!85!@%H) ( (s D>E E,c4[RR[RS5nSn[R "S5n[R "X5 UR[[R X5 UR[[R XSS9 [R "USSS9 [R "XSS9 [R "U5 [R "[RRS 5SS9 g) Nr`rFexist_okiT)rr/) rrGrIrrkumaskr/rrMr+)r5rGrold_masks r test_exist_ok_existing_directory-MakedirTests.test_exist_ok_existing_directorys ww||I,,f588E? D '2;;; '2;;UK D%$/ Dd3  BGGOOC(48rc[RR[RS5n[ R nSn[R"S5n[ R"[R"[R5R5n[R"[RXR-5 [R"[R5RU-U:wa[R"S5e[R"XU-5 [R"XSS9 [R"U[ R"[R"U5R5U)-5 [R"XU-SS9 [R"U5 g![a [R"S5ef=f![R"U5 f=f)Nr`rrzCannot set S_ISGID for dir.z No support for S_ISGID dir mode.Tr)rrGrIrrkrS_ISGIDrS_IMODElstatr_r2r5rSkipTestr/)r5rGrrrexisting_testfn_modes rtest_exist_ok_s_isgid_directory,MakedirTests.test_exist_ok_s_isgid_directorysY ww||I,,f5,,88E? #'<<HHY--.66$8  G))+?+IJ))*22W<G''(JKK KKWn - KKT 2 HHT4<<(>(>?7(J K KKWnt < HHX # G''(EFF G HHX s&AG'F7CG7!GGG3c[Rn[RR [RS5n[ USSS9nUR S5 SSS5 UR[[RU5 UR[[RUSS9 UR[[RUSS9 [R"U5 g!,(df  N=f) Nr`rrrrFrT) rrkrrGrIr r!rrMr/rK)r5r{rGrxs r#test_exist_ok_existing_regular_file0MakedirTests.test_exist_ok_existing_regular_filesww||I,,f5 $g .! GGEN/ '2;;5 '2;;uE '2;;tD $ / .s C(( C6rzrequires Windowsc[Rn[RR [RR [RS55n[R "USS9 [R"SUS/SS9n[R"U5 UR5RSS 5S nURUS 5 g) NrTi)rz cacls.exez/soemr r|z5"D:P(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;OW)") rrkrrGr+rIrJr check_outputrrsrsplitrF)r5r{rGouts rtest_win32_mkdir_700!MakedirTests.test_win32_mkdir_700)swwrww||I,<,   rrchownzrequires os.chown()c0\rSrSr\S5rSr\R"\ "\ S5S5S5r \R"\ =(a \ "\5S:S5S 5r\R"\ (+=(a \ "\5S:S 5S 5r\S 5rS rg)ChownFileTestsiBcL[R"[R5 gr(rclss r setUpClassChownFileTests.setUpClassE !!"rc[R"[R5nURnUR nSS[ R"S5[R"SS54HknUR[[R[RXC5 UR[[R[RX$5 Mm UR"[RX#55 UR"[RSS55 g)NgyrAr~)rrrrkst_uidst_giddecimalDecimal fractionsFractionrrr assertIsNone)r5ruidgidrs r*test_chown_uid_gid_arguments_must_be_index9ChownFileTests.test_chown_uid_gid_arguments_must_be_indexIswwy''(kkkkC!4i6H6HQ6OPE   i93C3CU P   i93C3CS PQ "((9#3#3S>? "((9#3#3R<=r getgroupszneed os.getgroupsch[R"5n[U5S:aURS5 USSup#[R"[ R 5Rn[R"[ R XB5 [R"[ R 5RnURXR5 [R"[ R XC5 [R"[ R 5RnURXS5 g)Nr~ztest needs at least 2 groups) rrrBrrrrkrrr rF)r5groupsgid_1gid_2rrs rtest_chown_gidChownFileTests.test_chown_gidSs v;? MM8 9bqz ggi&&'.. !!3.ggi&&'.. $ !!3.ggi&&'.. $rr|z0test needs root privilege and more than one userc[SSup[R"[R5R n[R "[RX5 [R"[R5RnURXA5 [R "[RX#5 [R"[R5RnURXB5 gNr~) all_usersrrrrkr rrrF)r5uid_1uid_2rrs rtest_chown_with_root#ChownFileTests.test_chown_with_rootds!!} ggi&&'.. !!5.ggi&&'.. $ !!5.ggi&&'.. $rz2test needs non-root account and more than one userch[SSup[R"[R5R nUR [5 [R"[RX5 [R"[RX#5 SSS5 g!,(df  g=fr) rrrrrkr rr5r)r5rrrs rtest_chown_without_permission,ChownFileTests.test_chown_without_permissionpsm!!} ggi&&'..    / HHY%%u 2 HHY%%u 20 / /s A B## B1cL[R"[R5 gr()rrrrkrs r tearDownClassChownFileTests.tearDownClassyrrr+N)rarbrcrd classmethodrrrrrrr root_in_posixrBrrr"r%rer+rrrrBs##>[13FG%H% =3y>A+=KM%M%]*As9~/AMO3O3##rrc2\rSrSrSrSrSrSrSrSr g) RemoveDirsTestsi~cL[R"[R5 gr()rr/rrkrms rrnRemoveDirsTests.setUps I$$%rcL[R"[R5 gr()rrrkrms rr.RemoveDirsTests.tearDowns))*rcT[RR[RS5n[R "U5 [RRUS5n[R "U5 [R "U5 UR[RRU55 UR[RRU55 UR[RR[R55 g)Ndiradirb) rrGrIrrkrJr assertFalserr5r0r1s rtest_remove_allRemoveDirsTests.test_remove_allsww||I,,f5 ww||D&)  d -. -.  (8(89:rc[RR[RS5n[R "U5 [RRUS5n[R "U5 [ [RRUS55 [R"U5 UR[RRU55 UR[RRU55 UR[RR[R55 gNr0r1file.txt) rrGrIrrkrJr%rr2rrtr3s rtest_remove_partial#RemoveDirsTests.test_remove_partialsww||I,,f5 ww||D&) BGGLLz23 d -. t,- y'7'789rc[RR[RS5n[R "U5 [RRUS5n[R "U5 [ [RRUS55 UR[5 [R"U5 SSS5 UR[RRU55 UR[RRU55 UR[RR[R55 g!,(df  N=fr7) rrGrIrrkrJr%rrMrrtrr3s rtest_remove_nothing#RemoveDirsTests.test_remove_nothingsww||I,,f5 ww||D&) BGGLLz23   w ' MM$ ( t,- t,- y'7'789 ( 's 9E11 E?r+N) rarbrcrdrnr.r4r9r<rer+rrr*r*~s&+; : :rr*zWASI has no /dev/nullc\rSrSrSrSrg) DevNullTestsicX[[RSS5nURS5 UR 5 SSS5 [[RS5nUR UR 5S5 SSS5 g!,(df  NR=f!,(df  g=f)Nrrhellorr)r rdevnullr!rsrFrrws r test_devnullDevNullTests.test_devnullsp "**dA &! GGH  GGI'"**d #q   QVVXs +$ #' &$ #s"B  !B B B)r+N)rarbrcrdrCrer+rrr?r?s,rr?c,\rSrSrSrSrSrSrSrg) URandomTestsicUR[[R"S55S5 UR[[R"S55S5 UR[[R"S55S5 UR[[R"S55S5 UR[[R"S55S5 g)Nrr|r}rr<)rFrBrurandomrms rtest_urandom_length URandomTests.test_urandom_lengths RZZ]+Q/ RZZ]+Q/ RZZ^,b1 RZZ_-s3 RZZ-.5rc[R"S5nURU[5 [R"S5nUR X5 gN)rrHr2r]rr5data1data2s rtest_urandom_valueURandomTests.test_urandom_values: 2 eU+ 2 E)rcSRSSU-SS45n[SU5nUSnUR[U5U5 U$)N zimport os, syszdata = os.urandom(%s)zsys.stdout.buffer.write(data)zsys.stdout.buffer.flush()rr|)rIr rFrB)r5countrrrs rget_urandom_subprocess#URandomTests.get_urandom_subprocesssVyy  #e + + ' )* tT*Q Ve, rcjURS5nURS5nURX5 grL)rVrrNs rtest_urandom_subprocess$URandomTests.test_urandom_subprocesss0++B/++B/ E)rr+N) rarbrcrdrIrQrVrYrer+rrrFrFs6* *rrF getrandomzneed os.getrandom()cB\rSrSr\S5rSrSrSrSr Sr Sr g ) GetRandomTestsr:c[R"S5 g![a:nUR[R:Xa[ R "S5eeSnAff=f)Nr|z%getrandom() syscall fails with ENOSYS)rr[rMrNrrr)rrXs rrGetRandomTests.setUpClasssI  LLO yyELL(''(OPP  s A5AAc[R"S5nURU[5 UR [ U5S5 grL)rr[r2r]rFrB)r5rs rtest_getrandom_type"GetRandomTests.test_getrandom_types4||B dE* TB'rcT[R"S5nURUS5 g)Nrr)rr[rF)r5emptys rtest_getrandom0GetRandomTests.test_getrandom0s Q $rcBUR[[S55 g)N GRND_RANDOM)rtrrrms rtest_getrandom_random$GetRandomTests.test_getrandom_randoms M23rcp[R"S[R5 g![a gf=fr)rr[ GRND_NONBLOCKBlockingIOErrorrms rtest_getrandom_nonblock&GetRandomTests.test_getrandom_nonblocks-  LLB,, -   s %( 55c~[R"S5n[R"S5nURX5 grL)rr[rrNs rtest_getrandom_value#GetRandomTests.test_getrandom_values, R  R  E)rr+N) rarbrcrdr'rrarerirnrqrer+rrr]r]s-  ( %4 *rr]HAVE_GETENTROPYr|HAVE_GETRANDOMHAVE_GETRANDOM_SYSCALLz*os.random() does not use a file descriptorr;z$VxWorks can't set RLIMIT_NOFILE to 1cR\rSrSr\R "\S5S5rSrSr Sr g)URandomFDTestsiz!test requires the resource modulec Sn[SU5 g)Naif 1: import errno import os import resource soft_limit, hard_limit = resource.getrlimit(resource.RLIMIT_NOFILE) resource.setrlimit(resource.RLIMIT_NOFILE, (1, hard_limit)) try: os.urandom(16) except OSError as e: assert e.errno == errno.EMFILE, e.errno else: raise AssertionError("OSError not raised") rr rs rtest_urandom_failure#URandomFDTests.test_urandom_failures  t$rc&Sn[SU5up#ng)Naif 1: import os import sys import test.support os.urandom(4) with test.support.SuppressCrashReport(): os.closerange(3, 256) sys.stdout.buffer.write(os.urandom(4)) -Scr )r5rrcrerrs rtest_urandom_fd_closed%URandomFDTests.test_urandom_fd_closeds(t4 rcUR[R[R5 [ [RS5 SR [RS9n[ SU5up#nUR[U5S5 URUSSUSS5 [ SU5up%nUR[U5S5 URXS5 g)Nsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxaif 1: import os import sys import test.support os.urandom(4) with test.support.SuppressCrashReport(): for fd in range(3, 256): try: os.close(fd) except OSError: pass else: # Found the urandom fd (XXX hopefully) break os.closerange(3, 256) with open({TESTFN!r}, 'rb') as f: new_fd = f.fileno() # Issue #26935: posix allows new_fd and fd to be equal but # some libc implementations have dup2 return an error in this # case. if new_fd != fd: os.dup2(new_fd, fd) sys.stdout.buffer.write(os.urandom(4)) sys.stdout.buffer.write(os.urandom(4)) )rkr|rLrr) rrrlrkr%formatr rFrBr)r5rr}rr~out2err2s rtest_urandom_fd_reopened'URandomFDTests.test_urandom_fd_reopened,s  (()*:*:;I$$j10i../1 2(t4  S1% C!Hc!Ah/)%6$ TA& D&rr+N) rarbrcrdrrresourceryrrrer+rrrwrws/ #FG%H%, 5$'rrwc#j^# /mU4SjnU4Sjn[Rn[Rn[RnU[lU[lUb U[lTv U[lU[lU[lg!W[lW[lW[lf=f7f)Nc@>TRSX45 [S5e)Nexecvz execv called)rJ RuntimeErrorrrcallss r mock_execv#_execvpe_mockup..mock_execv^s gt*+>**rc^>TRSX45 [[RS5e)Nexecvez execve called)rJrMrNENOTDIRrs r mock_execve$_execvpe_mockup..mock_execvebs% h+,emm_55r)rrrr)rrr orig_execv orig_execve orig_defpathrs @r_execvpe_mockuprSs E+6 "XX ii zz    BJ  !  ! sB3AB +"B3 #B00B3rzneed os.execv()c\rSrSr\R "\S5S5rSrSr \R"\ "\ S5S5S5r S rS r\R"\R"S :HS 5S 5rSrg) ExecTestsitz4avoid triggering a linuxthreads bug: see issue #4970cTUR[[RSS/S5 g)Nz no such app-)rrMrexecvperms rtest_execvpe_with_bad_program'ExecTests.test_execvpe_with_bad_programws$ '2::~)*D 2rc6UR[[RSS5 UR[[RS/5 UR[[RSS5 UR[[RSS/5 g)Nnotepadr+rr*)rrrrrms rtest_execv_with_bad_arglist%ExecTests.test_execv_with_bad_arglist}sd *bhh 2> *bhh 2> *bhh 5A *bhh B4@rcUR[[RS/S5 UR[[RS/05 UR[[RSS/05 g)Nrr*)rrrrrms rtest_execvpe_with_bad_arglist'ExecTests.test_execvpe_with_bad_arglistsR *bjj)RF *bjj)RD *bjj)bT2Fr_execvpez)No internal os._execvpe function to test.c [RS-nU[La=Sn[RR [R "U5U5nUn/SQnORSn/SQn[RR X#5n[R S:wa[R "U5nOUnSS0n[5nUR[[RXF5 UR[U5S 5 URUS S XF445 SSS5 [US 9nUR[[RX6US 9 UR[U5S 5 URUS SXVU445 SSS5 [5nUR5n U[LaX)S'OX)S'UR[[RX6U S 9 UR[U5S 5 URUS SXVU 445 SSS5 g!,(df  GN=f!,(df  N=f!,(df  g=f)N absolutepaths executable)sprognamearg1arg2r)prognamerrrspamrr|rr)rrrrr)rrHr]rGrIrrrrrrrFrBrMrr) r5 test_type program_pathprogramfullpathnative_fullpath argumentsrrenv_paths r_test_internal_execvpe ExecTests._test_internal_execvpesvv.  #Gww||BKK $=wGH&O5I"G4Iww||L:Hww$"$++h"7"*w %   l X 2   SZ +   U1X<'H I \ 2e   g WS  :   SZ +  $ $U1X?,<= ? 3 %xxzHE!$0!#/   g WX  ?   SZ +  $ $U1X?,AB D # 3 2 s':AH$AH%A;H6 H"% H36 IcUR[5 [RS:waUR[5 gg)Nr)rr3rrr]rms rtest_internal_execvpe_str#ExecTests.test_internal_execvpe_strs. ##C( 77d?  ' ' . rc[RSS/n[RR 5nSUS'UR [ 5 [R"USX5 SSS5 [RR 5nSUS'UR [ 5 [R"USX5 SSS5 [RR 5nSUS 'UR [ 5 [R"USX5 SSS5 g!,(df  N=f!,(df  N{=f!,(df  g=f) NrpasscabbageFRUITVEGETABLErorangeVEGETABLE=cabbageFRUITlemon FRUIT=ORANGE)r@rrrrrrr)r5rnewenvs rtest_execve_invalid_env!ExecTests.test_execve_invalid_envsf-"%.!"   z * IId1gt ,+"5w   z * IId1gt ,+"!(~   z * IId1gt ,+ *+ * + * + *s$ D&'D7E& D47 E ErzWin32-specific testc[R"SS/05 URS5 g![a=nUR UR SL=(d UR S:g5 SnAgSnAff=f)Nr*argzNo OSError raisedr)rrr]rMrtwinerrorrs rtest_execve_with_empty_path%ExecTests.test_execve_with_empty_pathsa + IIb5'2 & II) * C OOAJJ$.A!**/ B B Cs- A43A//A4r+N)rarbrcrdrr/USING_LINUXTHREADSrrrrrrrrrr@rArrer+rrrrts__'KM2M2A G Z0DF-DF-D^/ -*02GH+I+rrrrc>\rSrSrSrSrSrSrSrSr Sr S r g ) Win32ErrorTestsic,[R"[R5 UR S[R-5 g![ a Sng[ a3nSnUR S[R<SU<35 SnAgSnAff=f)Nzfile %s must not existFTzfile z% must not exist; os.stat failed with )rrrrkr]rLrM)r5rrXs rrnWin32ErrorTests.setUpsy C GGI$$ % II.1A1AA B! F 1F II"))30 1 1 1s$A B B )BBcUR[[R[R [R S-5 g)Nz.bak)rrMrrrrkrms rrWin32ErrorTests.test_renames, '299i.>.> @P@PQW@WXrcjUR[[R[R 5 gr()rrMrrKrrkrms r test_removeWin32ErrorTests.test_removes '299i.>.>?rcjUR[[R[R 5 gr()rrMrrKrrkrms r test_chdirWin32ErrorTests.test_chdirs '288Y-=-=>rc.UR[R[R5 [ [RS5nUR [ [R[R5 SSS5 g!,(df  g=f)NrA) rrrlrkr rrMrrJrws r test_mkdirWin32ErrorTests.test_mkdirsV  (()*:*:; )""C (A   grxx1A1A B) ( (s 4B BclUR[[R[R S5 gr()rrMrrrrkrms rrWin32ErrorTests.test_utimes  '288Y-=-=tDrclUR[[R[R S5 gr)rrMrr2rrkrms r test_chmodWin32ErrorTests.test_chmods  '288Y-=-=qArr+N) rarbrcrdrnrrrrrrrer+rrrrs+ CY@?C EBrrz!Cannot create invalid FD on WASI.c\rSrSr/SQr1SkrSr\Hr\"\5\"5S\-'M Sr Sr Sr \ R"\"\S 5S 5S 5r\ R"\"\S 5S 5S5r\ R"\"\S5S5S5r\ R"\"\S5S5\ R&"\R*S5S55r\ R"\"\S5S5S5r\ R"\"\S5S5S5r\ R"\"\S5S5\ R&"\R*=(d \R2S5S55r\ R"\"\S5S5S 5r\ R"\"\S!5S"5S#5r\ R"\"\S$5S%5S&5r\ R"\"\S'5S(5S)5r\ R"\"\S*5S+5S,5r\ R"\"\S-5S.5S/5r \ R"\"\S05S15S25r!\RD"5S35r#\ R"\"\S45S55S65r$S7r%g8)9 TestInvalidFDi )fchdirr fdatasyncrfstatvfsfsync tcgetpgrpttyname>rrrc^U4SjnU$)Nc>[[T5(aPUR[[T55 TUR;a UR [[T55 gggr()rrrrWsingles_fildes check_boolrws rhelper(TestInvalidFD.get_single..helper sJA 72q>*+++OOGBN3,rr+)rxrs` r get_singleTestInvalidFD.get_single s 4  rtest_cU"[R"5/UQ70UD6 URSU-5 g![a4nUR UR [ R 5 SnAgSnAff=f)Nz5%r didn't raise an OSError with a bad file descriptor)r make_bad_fdr]rMrFrNr)r5rxrrrs rrTestInvalidFD.check sh  i##% 7 7 7 IIM  3   QWWekk 2 2 3s6 A4*A//A4c"[R"5 [R"S[5 SH-nUR [5 U"U/UQ70UD6 SSS5 M/ SSS5 g!,(df  MI=f!,(df  g=f)Nerrorr)rr simplefilterRuntimeWarningr)r5rxrrrs rrTestInvalidFD.check_bool sj  $ $ &  ! !'> :!&&~6b*4*6*76"' &76' &s#6B A. B. A= 8B Bc|UR[RSS9 UR[RSS9 g)Nrr)rrrrrms rrTestInvalidFD.test_fdopen# s* 299w /  G4risattyztest needs os.isatty()cvUR[R"[R"55S5 gNF)rFrrrrrms r test_isattyTestInvalidFD.test_isatty' s$ 9#8#8#:;UCrrztest needs os.closerange()c4[R"5n[S5Hn[R"X-5 O WS:a[ R"S5eUR[R"XU-S- 5S5 g![ a Muf=f)Nr}r~z5Unable to acquire a range of invalid file descriptorsr|) rrrrrrMrrrFr)r5rrs rrTestInvalidFD.test_closerange+ s  " " $rA"$  q5##GI I r6!84d;  sB  BBdup2ztest needs os.dup2()cDUR[RS5 g)N)rrrrms r test_dup2TestInvalidFD.test_dup2; s 277Brz@dup2() with negative fds is broken on Emscripten (see gh-102179)c0[R"[[R5nUR [R U5 USS/n[ R"USS9Hup4X4:wdM URX4S9 UR[5n[R"X45 SSS5 URWRR[R5 SSS5 M g!,(df  NO=f!,(df  M=f)NrAir~r)rfd2)rr rrrrsrrrwrrMrrFrrNr)r5valid_fdfdsrrrs rtest_dup2_negative_fd#TestInvalidFD.test_dup2_negative_fd? s 778R[[1 (+     !((Q7GBy\\R\1**73s(4$$S]]%8%8%++F2184321s$?DC5,[R"5S:wa0[(d%UR[[R S5 UR[ [R S5 UR[[R UR5 gr`) rraHAVE_WHEEL_GROUPrrMrfrrb GID_OVERFLOWrms r test_setgidPosixUidGidTests.test_setgid s^ 99;! $4$4   gryy! 4 )RYY = -D4E4EFrseteuidztest needs os.seteuid()c([R"5S:wa%UR[[RS5 UR[ [R S5 UR[[RUR5 gr`) rrarrMrlrsetegidrbrcrms r test_seteuidPosixUidGidTests.test_seteuid sX 99;!    grzz1 5 )RZZ> -T5F5FGrrnztest needs os.setegid()c>[R"5S:wa0[(d%UR[[R S5 UR[ [R S5 UR[[R UR5 gr`) rrarhrrMrnrrbrirms r test_setegidPosixUidGidTests.test_setegid s^ 99;! $4$4   grzz1 5 )RZZ> -T5F5FGrsetreuidztest needs os.setreuid()c[R"5S:wa&UR[[RSS5 UR[ [RSS5 UR[ [RSS5 UR[ [RURS5 UR[ [RSUR5 gr`)rrarrMrtrrbrcrms r test_setreuidPosixUidGidTests.test_setreuid s 99;!    gr{{Aq 9 )R[[,B )R[[!\B -d6G6GK -a9J9JKrcR[R"[RSS/5 g)Nrz,import os,sys;os.setreuid(-1,-1);sys.exit(0)rrr@rrms rtest_setreuid_neg1#PosixUidGidTests.test_setreuid_neg1 % >@ Arsetregidztest needs os.setregid()c[R"5S:wa1[(d&UR[[R SS5 UR[ [R SS5 UR[ [R SS5 UR[[R URS5 UR[[R SUR5 gr`) rrarhrrMr}rrbrirms r test_setregidPosixUidGidTests.test_setregid s 99;! $4$4   gr{{Aq 9 )R[[,B )R[[!\B -d6G6GK -a9J9JKrcR[R"[RSS/5 g)Nrz,import os,sys;os.setregid(-1,-1);sys.exit(0)ryrms rtest_setregid_neg1#PosixUidGidTests.test_setregid_neg1 r|rr+N)rarbrcrdrcrirrrrrdrjrorrrvrr rzrrrer+rrr\r\ sLL X.0HIGJG X.0HIGJG Y/1JKHLH Y/1JKHLH Z02LMLNLZ02LM   "A#NAZ02LM   "L#NLZ02LM   "A#NArr\cr\rSrSrSrSrSrSr\R"\ "\ S5S5S5r S r S rg ) Pep383Testsi c^[R(a[RUlO@[R(a[RUlO[RUl[ R "UR5Ul/mU4SjnU"[R5 [R(aU"[R5 [R(aU"[R5 T(dURS5 [5Ul [ R"UR5 THn[R"[ RRURU55 [ R "U5nX R;a [#S5eURR%U5 M g! [&R("UR5 e=f)Ncv>[R"U5nTRU5 g![a gf=fr()rrrqrJ)fnbytesfns r add_filename'Pep383Tests.setUp..add_filename s7 [[_ NN2 &  s + 88z&couldn't create any non-ascii filenamezduplicate filename)rTESTFN_UNENCODABLErTTESTFN_NONASCIIrkrrbdirTESTFN_UNICODErr unicodefnrJcreate_empty_filerGrIr^raddrsr)r5rrrs @rrnPep383Tests.setUp s@  ' ' 33DH  & & 00DH ''DHKK)   Y--.  ' ' 55 6  $ $ 22 3 MMB C  ++BGGLLB,GH[[_'$%9::""2&    MM$(( # s BG!!#HcD[R"UR5 gr()rsrrTrms rr.Pep383Tests.tearDown& s dhhrcURn[[R"UR55nUR X!5 [R "5n[R"UR5 UR [[R"55U5 [R"U5 g![R"U5 f=fr()rrrr3rTrFr1rK)r5rVfoundcurrent_directorys r test_listdirPep383Tests.test_listdir) s>>BJJtxx() )IIK ( HHTXX    S. 9 HH& 'BHH& 's ACCcURHGn[[RR UR U5S5nUR 5 MI gNr)rr rrGrIrTrs)r5rrxs r test_openPep383Tests.test_open7 s8..BRWW\\$((B/6A GGI!rrrcURHCn[RRURU5n[R "U5 ME gr()rrrGrIrTr)r5rfullnames r test_statvfsPep383Tests.test_statvfs< s6..Bww||DHHb1H JJx !rcURHAn[R"[RR UR U55 MC gr()rrrrGrIrT)r5rs r test_statPep383Tests.test_statE s/..B GGBGGLL2. /!r)rrTrN)rarbrcrdrnr.rrrrrrrrrer+rrrr sG#J  ( Y//1!1!0rrc\rSrSrSrSrSr\R"\ SLS5S5r \R"S5\ R"5S 55r\ R"5S 5rS rg) Win32KillTestsiI cSSKnSSKJn SSKnURRR nUR UlURURUR5URURUR5URUR5URUR54Ul Sn[R"[R SSR#U5/[R$[R$[R$S9nUR'UR(R*5 UR'UR,R*5 UR'UR.R*5 SupX:aUR15cUR3[5U55n U"UR7UR(R955XR;U 5SSS5n UR=U SS5 U R>(a*URAXjR>RC55 OD[DRF"S 5 US - nX:aUR15cMURIS 5 [JRL"URNU5 URAURQ5U5 g) Nrwintypesrunningrz>"rc&URS5 g)Nr)rrms r test_kill_intWin32KillTests.test_kill_int s  3rNz requires mmapcbS[R"5-n[R"SSU5nSUS'[RR [RR [5S5n[RXS/n[R"U[RS9nU [R"[R5HnUR!5bM O# UR#5 UR%S5 [R""UR&U5 UR)[RS9 SSS5 g![R*a3 UR#5 UR%S R-U55 NOf=f!,(df  g=f) Nz test_os_%srAr|rzwin_console_handler.pyrz'Subprocess didn't finish initialization)timeoutzsubprocess did not stop on {})uuiduuid1mmaprrGrIrTrr@rrrCREATE_NEW_PROCESS_GROUPrsleeping_retry SHORT_TIMEOUTrrr]rrTimeoutExpiredr) r5eventrtagnamemscriptcmdrrs r_kill_with_eventWin32KillTests._kill_with_event s<- IIb!W %!bggooh768~~v/.8.Q.QS++G,A,AB99;&C   CD GGDHHe $ H '"7"7 8T ,, H  9@@FG H!Ts2.7F )AF 0EAFF FF  F.z.subprocesses aren't inheriting Ctrl+C propertycdSSKJn SSKnURUR5"5nURR R nURUR5UR4UlURUl U"US5 UR[RS5 g)Nrr CTRL_C_EVENT) r,rrc_intr-r.SetConsoleCtrlHandlerrrrrrr)r5rr,NULLrs rtest_CTRL_C_EVENT Win32KillTests.test_CTRL_C_EVENT s $~~fll+- & 6 6 L L*0..*F*2--*9&(0 % dA& f11>BrcDUR[RS5 g)NCTRL_BREAK_EVENT)rrrrms rtest_CTRL_BREAK_EVENT$Win32KillTests.test_CTRL_BREAK_EVENT s f557IJrr+)rarbrcrdrrrrr/rrskiprr rrrer+rrrrI s4+l#__TT\?3H4HB]]CD   "C#EC$   "K#Krrc,\rSrSrSrSrSrSrSrg)Win32ListdirTestsi c /Ul[S5HnSU-n[RR [ R U5nSU-n[RR [ R U5n[R"U5 [USSS9nURSU-5 SSS5 URRX$/5 M URR5 g!,(df  NI=f)Nr~zSUB%dzFILE%drrrz'I'm %s and proud of it. Blame test_os. ) created_pathsrrrGrIrrkr/r r!rtrC)r5rdir_namedir_path file_name file_pathrxs rrnWin32ListdirTests.setUp sqA{Hww||I$4$4h?H 1 I Y%5%5yAI KK !iw71BYNO8    % %x&; < !87s C55 D cL[R"[R5 gr()rsrrrkrms rr.Win32ListdirTests.tearDown s i&&'rc UR[[R"[R 55UR 5 UR[[R"[R"[R 555UR Vs/sHn[R"U5PM sn5 gs snfr()rFrrr3rrkrrrs rtest_listdir_no_extended_path/Win32ListdirTests.test_listdir_no_extended_path s rzz)"2"234"" $ rzz"++i.>.>"?@A/3/A/AB/AtT"/AB DBs! C c $S[RR[R5-nUR [ [R"U55UR5 S[R"[RR[R55-nUR [ [R"U55URVs/sHn[R"U5PM sn5 gs snf)N\\?\\\?\) rrGr+rrkrFrr3rrrs rtest_listdir_extended_path,Win32ListdirTests.test_listdir_extended_path s277??9+;+;<< rzz$'("" $ BKK 8H8H(IJJ rzz$'(/3/A/AB/AtT"/AB DBs% D )rN) rarbrcrdrnr.rrrer+rrrr s "( D DrrrzNT specific testsc,\rSrSrSrSrSrSrSrg)Win32ListdriveTestsi c [R"/SQ[RR [R "SS5S5SSS9nUR 5nUVs1sHo3RS5(dMUiM snUlUVs1sHo3S SS :XdM UiM snUl UVs1sHo3S S S :XdM UiM snUl gs snfs snfs snf) N)z fsutil.exevolumerB SystemRootz\WindowsSystem32mbcsignore)r6rr_rr|z:\r) rrrrGrIgetenvr startswith known_volumes known_drives known_mounts)r5rlinesls rrnWin32ListdriveTests.setUp s%% , RYY|[A:N    ).JA,,y2IaJ(-@112%Q@(-A11Q5QAK@As$!C>C C C2 CCc[R"5nURU[5 UR UR UR [ U5-5 gr()r listdrivesr2rBassertSetEqualrr)r5drivess rtest_listdrives#Win32ListdriveTests.test_listdrives sF fd+       F + rc[R"5nURU[5 UR UR UR [ U5-5 gr()r listvolumesr2rBrrr)r5volumess rtest_listvolumes$Win32ListdriveTests.test_listvolumes sG.." gt,       W - rcz[R"5Han[R"U5nURU[5 UR [ U5UR[ U5-5 Mc g![a4n[R(a[SUSU5 SnAMSnAMSnAff=f)NSkippingz because of) rr listmountsr2rBrrr rMrrPrQ)r5rmountsexs rtest_listmounts#Win32ListdriveTests.test_listmounts snn&F v. %%fd3##K%%F 3' @??*flB??# @sA<< B:#B55B:)rr rN) rarbrcrdrnrrrrer+rrrr s B   rrreadlinkzneeds os.readlink()c\rSrSrSr\R R\5r \R"\5r \R"\ 5r Sr SrSrSr\R$S5r\R$S5r\R$S 5rS rg ) ReadlinkTestsi$ readlinktestc[RRU5n[RRU5n[RS:Xa'SnU"U5(aUSSnU"U5(aUSSnUR X5 g)NrcZUR[U[5(aS5$S5$)Nrr)rrr])r|s rr/ReadlinkTests.assertPathEqual..1 s&1<<(E22 $C8A$Crr)rrGnormcaser@rArF)r5leftright has_prefixs rassertPathEqualReadlinkTests.assertPathEqual+ sxww%  ' <<7 "CJ$ABx%  ab  %rcUR[RRUR55 UR[RRUR 55 UR [RRUR55 UR [RRUR55 gr() rtrrGrfilelink_targetfilelinkb_targetr2filelink filelinkbrms rrnReadlinkTests.setUp9 s~ t';';<= t'<'<=>  67 78rc[UR5nUR[[R UR5 UR[[R U5 gr()rr-rrMrr)r5r-s rtest_not_symlinkReadlinkTests.test_not_symlink? sD"4#7#78 '2;;0D0DE '2;;@rcUR[[RS5 UR[[R[ S55 g)Nz missing-link)rrLrrrrms rtest_missing_linkReadlinkTests.test_missing_linkD s8 +R[[.I +R[[">2 4rc8[R"URUR5 UR [ R UR5 [UR5nUR[R"U5UR5 gr() rrr-r/rrrlrr*r)r5r/s r test_pathlikeReadlinkTests.test_pathlikeI s_ 4''7  (($--8DMM* R[[2D4H4HIrcb[R"URUR5 UR [ R UR5 [R"[UR55nURXR5 URU[5 gr() rrr.r0rrrlrrr*r2r]rs rtest_pathlike_bytes!ReadlinkTests.test_pathlike_bytesP sm 4(($..9  (($..9{{8DNN34 T#8#89 dE*rcP[R"URUR5 UR [ R UR5 [R"UR5nURXR5 URU[5 gr() rrr.r0rrrlrr*r2r]rs r test_bytesReadlinkTests.test_bytesX sh 4(($..9  (($..9{{4>>* T#8#89 dE*rr+N)rarbrcrdr/rrGr+rr-rr0r.r*rnr3r6rskip_unless_symlinkr9r<r?rer+rrr!r!$ sHggooh/O H%I{{?3 &9 A 4 ""J#J ""+#+""+#+rr!c|\rSrSrSr\R R\5r Sr \R R\ 5r Sr SrSrSrSrS rS rS rS rS rSr\R2"\R R5S5=(a \R R7S5S5S5rSrSrSrg)Win32SymlinkTestsia filelinktest dirlinktestz missing linkcgr(r+rms rrnWin32SymlinkTests.setUpj rc[RRUR5(a [R"UR5 [RRUR 5(a [R "UR 5 [RRUR5(a![R"UR5 ggr() rrGrr/rKdirlinkrrj missing_linkrms rr.Win32SymlinkTests.tearDownq s 77>>$-- ( ( IIdmm $ 77>>$,, ' ' HHT\\ " 77??4,, - - IId'' ( .rc[R"URUR5 UR [R R UR55 UR [R RUR55 UR [R RUR55 URURUR5 gr() rrdirlink_targetrJrtrGrrislink check_statrms rtest_directory_link%Win32SymlinkTests.test_directory_linky s 4&& 5 t||45  dll34 t||45  d&9&9:rc[R"URUR5 UR [R R UR55 UR [R RUR55 UR [R RUR55 URURUR5 gr() rrr-r/rtrGrrrOrPrms rtest_file_link Win32SymlinkTests.test_file_link s 4''7 t}}56 t}}56 t}}56  t';';Win32SymlinkTests.test_remove_directory_link_to_missing_target s" %%' $##$rcUR5 UR[RR UR 55 gr()rYr2rrGrrKrms r.test_isdir_on_directory_link_to_missing_target@Win32SymlinkTests.test_isdir_on_directory_link_to_missing_target s/ %%' t'8'89:rcdUR5 [R"UR5 gr()rYrrrKrms r.test_rmdir_on_directory_link_to_missing_target@Win32SymlinkTests.test_rmdir_on_directory_link_to_missing_target s  %%' ""#rcUR[R"U5[R"U55 UR[R"U5[R"U55 [R "U5nUR[R"U5[R"U55 UR[R"U5[R"U55 gr()rFrrrrr)r5r!r bytes_links rrPWin32SymlinkTests.check_stat s 8 BHHTNBGGDM:[[&  ,bggfo> BHHZ0"''*2EFrc.[RR[R5n[RR US5n[RR US5nUR [RU5 [R"U5 [R"U5 [R"U5 [RR[RR US55n[U5 [R"5n[R"U5 [RR US5n[R"[RRU5S5 URS[R"[R"555 UR![R""U5[R""S55 [R"U5 UR![R""U5[R""[RRU555 [R"U5 UR![R""U5[R""[RRU555 [R"U5 g![R"U5 f=f)Nlevel2level3rDr!)rrGr+rrkrIrrrJr%r1rKrrelpathrr3rFr)r5level1rhrirDorig_dirr!s r test_12084Win32SymlinkTests.test_12084 s!1!12fh/fh/  ((&1    VW =>E99;  HHV 77<</D JJrwwu-v 6 MM&"**RYY["9 :   RWWU^RWWV_ = HHV    RWWU^WWRWW__T%:; = HHV    RWWU^WWRWW__T%:; = HHX BHHX s .F7K<<LC:\Users\All UsersC:\ProgramDatazTest directories not foundc[R"S5nUR[RR US55 g)Nrorp)rrrtrGsamefile)r5rs r test_29248Win32SymlinkTests.test_29248 s123 ((1BCDrcSn[RR"U/S-6nSU-U4X4USSUSS4/nUHupE[R"XE5 [R"U5 [R"[R"U5[R"U55 [R"U5 M g![ a Nhf=f![ a Nxf=f![ a Mf=f![ a Mf=f)NXXXXXXXXXXXXXXXXXXXXXXXXXXXr}r)rh)rrGrIrrKrMrLr)r5segmentrG test_casesrdests rtest_buffer_overflow&Win32SymlinkTests.test_buffer_overflow sww||gY^,D[' " O $3Zds $  $IC  3%IIdO  2;;s+R[[->?IIdO#$ %   %  sGCC-?C9-C( CC C%$C%( C65C69 DDcv[RRS5n[RRU5(dUR S5 [ R "[R"U5S5Vs/sH"n[RRX5PM$ nnUHn[R(a[5 [SU5 [R"U5nURU[R"U55 UR[R "UR"55 URUR$[R&5 UR)[RR+U55 g UR S5 gs snf)Nz$%LOCALAPPDATA%\Microsoft\WindowsAppsz%test requires a WindowsApps directoryz*.exez Testing withz$test requires an app execution alias)rrG expandvarsrrfnmatchfilterr3rIrrPrQrrFrr2S_ISLNKr_st_reparse_tagIO_REPARSE_TAG_APPEXECLINKrtr)r5r1r?aliasesaliasrs rtest_appexeclink"Win32SymlinkTests.test_appexeclink s+ww!!"IJww}}T"" MMA B$NN2::d+;WEGEq77<<(E GEne,%B   R 0   T\\"**5 6   R..0O0O P OOBGGNN51 2  MM@ AGs)F6r+N) rarbrcrdr/rrGr+rr-rJrTrNrKrnr.rQrTrYr\r_rbrPrmrrrjrrsrzrrer+rrrCrCa sHggooh/OGWW___5N!L5);=4%;$G!F)>?B "/@ A8: E: E!FBrrCc\rSrSrSr\R R\R R\ 55r Sr Sr Sr SrSrg) Win32JunctionTestsi junctiontestcgr(r+rms rrnWin32JunctionTests.setUp rHrc[RRUR5(a![R"UR5 ggr()rrGrjjunctionrlrms rr.Win32JunctionTests.tearDown s. 77??4== ) ) IIdmm $ *rc@[R"URUR5 UR [ R RUR55 UR [ R RUR55 UR [ R RUR55 UR[ R"UR5[ R"UR55 UR[ R"UR5[ R"UR55 UR[ R RUR55 UR[ R R!SUR-5[ R R![ R""UR555 g)Nr)_winapiCreateJunctionjunction_targetrrtrrGrjrrrrrrFr2rOr&rrms rtest_create_junction'Win32JunctionTests.test_create_junction s4t33T]]C  67 t}}56  dmm45 BGGDMM2BHHT]]4KL /9M9M1NO  67 )))d6J6J*JK))"++dmm*DE Grc[R"URUR5 UR [ R RUR55 UR [ R RUR55 [ R"UR5 UR[ R RUR55 gr() rrrrrtrrGrrjrlr2rms rtest_unlink_removes_junction/Win32JunctionTests.test_unlink_removes_junction- st33T]]C t}}56  67 $--   67rr+N)rarbrcrdrrrGrTr+rrrnr.rrrer+rrrr s;Hggoobggooh&?@O2% G8rrcv\rSrSrSr\R "5S5r\R "5S5rSr g) Win32NtTestsi5 c[R"S5n[R"S5nSSKnURSSS9nURR UR lURRURlURR URR4URl UR 5nURR5nURXBRU55nURSU5 URnSS S [ /n[#S 5H5n UH,n UR%U 5 [(R*"U 5 M. M7 URXBRU55nURSU5 URU- n URSU 5 g![&a Nf=f![&a Mf=f) Nrr,rz Kernel32.dllT)use_last_errorr|z\\?\C:z\\?\NULz \\?\CONINr})r import_modulectypes.wintypesWinDLLrrGetCurrentProcessrrGetProcessHandleCountLPDWORDrrbyrefrFrrr_getfinalpathname Exceptionrr) r5rr,kernelhproc handle_countr3 before_count filenamesrr handle_deltas rtest_getfinalpathname_handles*Win32NtTests.test_getfinalpathname_handles7 s  ( ( .,,X6~dC+1??+A+A  (/5/C/C$$,171G1G171H1H1J$$-((*,,.  ) )%l1K L B#))       rA!((.GGDM" ) )%l1K L B#))L8  L)! !s$ GG  GG G.-G.c [RnUR[RU5 [R"5S-n[ R "S5n[R"[RSX1[U5/5n[R"5U:a2[R"U5 [R"5U:aM2URS5 SSS5 g![a nSnANESnAff=f![R a UR#5 NFf=f!,(df  g=f)Nra import os import sys import time filename = sys.argv[1] deadline = float(sys.argv[2]) while time.time() < deadline: try: with open(filename, "w") as f: pass except OSError: pass try: os.remove(filename) except OSError: pass rr|)rrkrrlrtextwrapdedentrrr@rr3rrrLrr terminate)r5r"deadlinecommandrrs rtest_stat_unlink_race"Win32NtTests.test_stat_unlink_raceh s$$  (((399;?//#(  s~~tWH V W[_))+(+GGH%))+(  ! ! X W)+++,, !  !X WsND8+C7D8D7 D D8D  D8$D52D84D55D88 Ec^^[Rm[RR S5m[ TS5nUR S5 SSS5 [R"T5n[R"TTS/[RS9 UU4S jnUR+U5 [R(a[S T5 [S U5 [R"T5n[R(a [S U5 UR-UR.SUR.45 UR-UR0SUR045 UR3UR4UR45 UR3UR6UR65 UR3UR8UR85 UR3UR:UR:5 UR=UR>UR>5 g!,(df  GN=f![Ran[R(aA[TTSS5 [URR!SS5R#55 [R$"T5 O![&a Of=fUR)S 5 SnAGNFSnAff=f)Nz %SystemRoot%\System32\icacls.exers Test dataz/inheritance:rrzfailed.rrz"Unable to create inaccessible filec>[R"TTSS/[RS9 [R"T5 g)Nz/grantz*WD:(D)r)rrSTDOUTrrl)ICACLSr"srcleanup9Win32NtTests.test_stat_inaccessible_file..cleanup s1  # #VXx$K+5+<+< > IIh rzFile:zstat with access:z without access:r) rrkrrGr}r r!rrrrCalledProcessErrorrrPrQrrrrlrMrrrst_devst_inorFr_rSrrassertGreaterEqualr)r5rxstat1rrstat2rr"s @@rtest_stat_inaccessible_file(Win32NtTests.test_stat_inaccessible_file s ####$GH (D !Q GGL !"! @  # #VX7G$H+5+<+< >  ?? '8 $ %u -! ?? $e , ellQ $56 ellQ $56  6  6 8 8 ?g" !,, @fh(8)Dbii&&ui8??AB  (#   MM> ? ? @sHH /&H2 H/2K AKJ43K4 K>KKKK r+N) rarbrcrdrrr rrrer+rrrr5 sE/*b   "'!#'!R   "7@#7@rrc&\rSrSrSrSrSrSrg)NonLocalSymlinkTestsi c0[R"S5 g)Nz base/some_dir)rr/rms rrnNonLocalSymlinkTests.setUp s O$rc0[R"S5 g)Nr{)rsrrms rr.NonLocalSymlinkTests.tearDown s frcr[RRSS5n[R"SU5 g)Nr{ some_linksome_dir)rrGrIr)r5rs rtest_directory_link_nonlocal1NonLocalSymlinkTests.test_directory_link_nonlocal s&ggll6;/ :s#rr+N)rarbrcrdrnr.rrer+rrrr s%"rrc \rSrSrSrSrSrg)FSEncodingTestsi cUR[R"S5S5 UR[R"S5S5 g)NsabcuabcŁ)rFrrr^rms rtest_nopFSEncodingTests.test_nop s4 Z0*= [1;?rcSH@n[R"U5nUR[R"U5U5 MB g![a MRf=f)N)u unicodeŁulatinéascii)rrrqrFr^)r5rrs r test_identityFSEncodingTests.test_identity sM9B ++b/   R[[12 6 :&  sA AAr+N)rarbrcrdrrrer+rrrr s @7rrcV\rSrSrSr\R "\R"S5=(aN \ "5(+=(a; \ RRS5=(d \ "\S5=(a \ "\S5S5\R"\R"S5S 55rS rg ) DeviceEncodingTestsi cNUR[R"S55 g)Ni@)rrdevice_encodingrms r test_bad_fdDeviceEncodingTests.test_bad_fd s ",,V45rrwin nl_langinfoCODESETz>test requires a tty and either Windows or nl_langinfo(CODESET)z*Cannot get encoding of stdin on Emscriptenc[R"S5nURU5 UR[R "U55 gr)rrassertIsNotNonertcodecslookup)r5rs rtest_device_encoding(DeviceEncodingTests.test_device_encoding s7%%a( X&  h/0rr+N)rarbrcrdrrrrrr r@rArrlocaler/rr0rrer+rrrr s61Mln*<M#,,BYBYZ_B`CL V] + J 0J LN__K1N 1rrcB\rSrSr\R "\"\S5S5S5rSSjr Sr Sr \R "\ RS :HS 5S 5r\R "\ RS :HS 5S 5r\R "\"\S 5S5S5rSrg)PidTestsi getppidztest needs os.getppidc.[R"[RSS/[R[RS9nUR 5up#UR US5 UR [U5[R"55 g)Nrzimport os; print(os.getppid()))rrr) rrr@_base_executabler communicaterFr?rgetpid)r5r|rrs r test_getppidPidTests.test_getppid sl   c22D>@$.OO$.OO 5   $ Vbiik2rNc[RS:XaS[RS3SSUS3/nO[RSU/n[R"[R [RU5nUbU"U5 [R "US5upgUR[R"U5U5 URXe5 g)Nr"rr) r@rArrspawnvP_NOWAITwaitpidrFwaitstatus_to_exitcode)r5rexitcodecallbackrrpid2statuss r check_waitpidPidTests.check_waitpid s <<7 "'q)41TF!=DNND$/Dii S^^T:   SMzz#q)  226:HE #rc$URSSS9 g)Nrr)rrrrms r test_waitpidPidTests.test_waitpid. s 3rcSnSUS3nURX!S9 UR[5 [R"S5 SSS5 g!,(df  g=f)Nzimport sys; sys.exit()r)rrrrr)r5rrs rtest_waitstatus_to_exitcode$PidTests.test_waitstatus_to_exitcode1 sN&xj2 43   y )  % %c ** ) )s A  Arwin32-specific testc2SnSUS3nURX!S9 g)Nl:z$import _winapi; _winapi.ExitProcess(rrr)r5STATUS_CONTROL_C_EXITrs rtest_waitpid_windowsPidTests.test_waitpid_windows9 s+!+56K5LAN 4@rcSnSSSU4H,nUR[R"US-5U5 M. UR[5 [R"US-S-5 SSS5 UR[ 5 [R"S5 SSS5 g!,(df  NC=f!,(df  g=f)Nrrr|rrLrA)rFrrrrrb)r5 max_exitcoders r#test_waitstatus_to_exitcode_windows,PidTests.test_waitstatus_to_exitcode_windowsA s" Aq,/H   R66x1}E% '0   z *  % %|a'7A&= >+   } -  % %b ). -+ * - -sB(B9( B69 CSIGKILLzneed signal.SIGKILLc~^S[RS3n[RmU4SjnUR UT*US9 g)Nzimport time; time.sleep(rc4>[R"UT5 gr()rr)rsignums r kill_process?PidTests.test_waitstatus_to_exitcode_kill..kill_processT s GGC r)rr)r LONG_TIMEOUTrrr)r5rrrs @r test_waitstatus_to_exitcode_kill)PidTests.test_waitstatus_to_exitcode_killO s?)'*>*>)?qA ! 46'LIrr+r()rarbrcrdrrrrrrrrr@rAr rrrrer+rrrr s Y/1HI3J3$$4+02GHAIA02GH *I *35JKJLJrrc\rSrSr\S5rSSS.Sjr\"S5S5r\"S5S 5r \"S 5S 5r \"S 5S 5r \"S5S5r \"S5S5r \"S5S5r\"S5S5r\"S5S5r\"S5S5r\"S5S5r\"S5S5r\"S5S5r\"S5S5rSr\"S5S5r\"S5S5rSrg )! SpawnTestsiZ c[RS:waU$UVs/sHnSUR5;aSUS3OUPM! sn$s snf)Nrrr)rrrs)rrs r quote_argsSpawnTests.quote_args\ sF 77d?KEIJTccSYY[0!C5 c9TJJJs&AFwith_env use_bytescSUl[RnUR[RU5 U(dSUR-nO[ [ R5Ul[[R"55Ul URURUR'SUR<SUR<S3n[USSS9nURU5 SSS5 [R nUR#Xc/5nU(a[ R$"U5nUVs/sHn[ R$"U5PM nnURR'5V V s0sH0up[ R$"U 5[ R$"U 5_M2 sn n UlXg4$!,(df  N=fs snfs sn n f) Nzimport sys; sys.exit(%s)z#import sys, os; magic = os.environ[z ]; sys.exit(rrrr)rrrkrrlrVrrrr3ruuid4r^r r!r@rrrr\) r5r r!r"rr$rrr?kvs r create_argsSpawnTests.create_argsd sM ##  (((3- =DBJJ'DH4::<(DH!%DHHTXX xx0D(C' 2b HHTN3..23 kk'*G,01DqBKKNDD1$(HHNN$46$4DA A A6$46DH}3 226sF<: G 97G< G spawnlcUR5up[R"[RU/UQ76nUR X0R 5 gr()r'rr)P_WAITrFrr5rrrs r test_spawnlSpawnTests.test_spawnl s=((* 99RYY7$7 ==1rspawnlecURSS9up[R"[RU/UQURP76nUR X0R 5 gNT)r )r'rr/r+rrFrr,s r test_spawnleSpawnTests.test_spawnle sK(($(7 ::biiB4BB ==1rspawnlpcUR5up[R"[RU/UQ76nUR X0R 5 gr()r'rr4r+rFrr,s r test_spawnlpSpawnTests.test_spawnlp s=((* ::bii848 ==1rspawnlpecURSS9up[R"[RU/UQURP76nUR X0R 5 gr1)r'rr8r+rrFrr,s r test_spawnlpeSpawnTests.test_spawnlpe sK(($(7 ;;ryy'CDC$((C ==1rrc<UR5up[R"[RX5nUR X0R 5 [R"[R[ U5U5nUR X0R 5 gr()r'rrr+rFrrr,s r test_spawnvSpawnTests.test_spawnv sg((* 99RYY6 ==199RYY(94@ ==1rspawnvecURSS9up[R"[RXUR5nUR X0R 5 gr1r'rr?r+rrFrr,s r test_spawnveSpawnTests.test_spawnve sC(($(7 ::biiA ==1rspawnvpcUR5up[R"[RX5nUR X0R 5 gr()r'rrDr+rFrr,s r test_spawnvpSpawnTests.test_spawnvp s8((* ::bii7 ==1rspawnvpecURSS9up[R"[RXUR5nUR X0R 5 gr1)r'rrHr+rrFrr,s r test_spawnvpeSpawnTests.test_spawnvpe sC(($(7 ;;ryy'B ==1rcUR5up[R"[RX5n[R "X0R S9 g)Nr)r'rrrr wait_processr)r5rrrs r test_nowaitSpawnTests.test_nowait s8((* ii W3S==9rcURSSS9up[R"[RXUR5nUR X0R 5 g)NTrrAr,s rtest_spawnve_bytesSpawnTests.test_spawnve_bytes sG(($$(G ::biiA ==1rcUR5upUR[[R[R U5 UR[[R[R US5 gNr*)r'rrrr)rr5r__s rtest_spawnl_noargsSpawnTests.test_spawnl_noargs sL&&(  *biigF *biigrJrcUR5upUR[[R[R U05 UR[[R[R US05 grT)r'rrrr/rrUs rtest_spawnle_noargsSpawnTests.test_spawnle_noargs sP&&(  *bjj"++wK *bjj"++wBOrcUR5upUR[[R[R US5 UR[[R[R U/5 UR[[R[R US5 UR[[R[R US/5 gNr+rr*)r'rrrrrrUs rtest_spawnv_noargsSpawnTests.test_spawnv_noargs s&&(  *biigrJ *biigrJ *biiguM *biigtLrcUR5upUR[[R[R US05 UR[[R[R U/05 UR[[R[R US05 UR[[R[R US/05 gr])r'rrrr?rrUs rtest_spawnve_noargsSpawnTests.test_spawnve_noargs s&&(  *bjj"++wBO *bjj"++wBO *bjj"++wrR *bjj"++wbQrc[RnURUSS/5n[RR 5nSUS'U"[R X#U5nURUS5 [RR 5nSUS'U"[R X#U5nURUS5 [RR 5nSUS 'U"[R X#U5nURUS5 [RnUR[RU5 [US S S 9nURS 5 SSS5 URX&/5n[RR 5nSUS'U"[R X#U5nURUS5 g![a GN^f=f![a GN!f=f![a Nf=f!,(df  N=f)NrrrrrrrrrrrzPimport sys, os if os.getenv("FRUIT") != "orange=lemon": raise AssertionErrorz orange=lemonr)r@rrrrrr+rFrrrkrrlr r!)r5spawnrrrrr"r$s r_test_invalid_envSpawnTests._test_invalid_env s..v67"%.!" ,RYYv>H   Xs +"5w ,RYYv>H   Xs +"!(~ ,RYYv>H   Xs +##  (((3 (C' 2b HH0 13 23"(wG6: 1%K         3 2sB GG%G& G6 GG G#"G#& G32G36 HcBUR[R5 gr()rfrr?rms rtest_spawnve_invalid_env#SpawnTests.test_spawnve_invalid_envs rzz*rcBUR[R5 gr()rfrrHrms rtest_spawnvpe_invalid_env$SpawnTests.test_spawnvpe_invalid_envs r{{+r)rrr^N)rarbrcrdrQrr'rr-r2r6r:r=rBrFrJrNrQrWrZr^rarfrirlrer+rrrrZ sKK',u<h2 2 i 2!2 i 2!2 j!2"2 h2 2i 2!2 i 2!2 j!2"2 h: : i 2!2 hK K i P!P hM Mi R!R.&`i +!+j!,",rrz>Skip due to platform/environment differences on *NIX buildbotsgetloginztest needs os.getloginc\rSrSrSrSrg) LoginTestsicd[R"5nUR[U5S5 gr)rrnrrB)r5 user_names r test_getloginLoginTests.test_getlogins!KKM  C NA.rr+N)rarbrcrdrsrer+rrrprps/rrp getpriority setpriorityz'needs os.getpriority and os.setpriorityc\rSrSrSrSrg)ProgramPriorityTestsi"c$[R"[R[R"55nSUS3n[ SU5up4n[ U5nUS:aXQ::a[ R"SU-5eURXQS-5 g)NzMif 1: import os os.setpriority(os.PRIO_PROCESS, os.getpid(), zJ + 1) print(os.getpriority(os.PRIO_PROCESS, os.getpid())) rz?unable to reliably test setpriority at current nice level of %sr|) rru PRIO_PROCESSrr r?rrrF)r5r{rrrnew_prios rtest_set_get_priority*ProgramPriorityTests.test_set_get_priority's~~booryy{;66:V<  %T40 s8 2:(*##%BDH%IJ J   Xax 0rr+N)rarbrcrdr}rer+rrrxrx"s 1rrxsendfileztest needs os.sendfile()c\rSrSrSS-r\R RS5(+r\ R"\S5r \ R"\RS:S5r \S5r\S 5r\S 5rS rS rS r\S5r\S5rSrSrSrSrSr\ S5r\ S5r\ \ S55r\ \ S55r \ \ R"\!"\"S5S5S55r#Sr$g) TestSendfilei:s12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcdei)linuxandroidsolarissunosz%requires headers and trailers supportr]z(test is only meaningful on 32-bit buildscL[[RUR5 gr()r%rrkDATArs rrTestSendfile.setUpClassEsI$$chh/rcL[R"[R5 gr()rrlrkrs rr%TestSendfile.tearDownClassIs))*rc# UR5(d3UR5IShvN 7v UR5(dM2ggN 7fr()at_eofr)readers rchunksTestSendfile.chunksMs/--// % %--//%s)AA A Ac# SRURU5Vs/sShvN o3PM N Os snfsn5UlUR5 URR5 g7f)Nr)rIr server_bufferrsserver)r5rwriterrAs rhandle_new_clientTestSendfile.handle_new_clientRsI XX F8K&L&L1q&L&LM  s&A/31 /1 31 3=A/cz# SUl[R"UR[R 5IShvN UlUR RSR5n[R"5Ul URRS5 [R"5RURU5IShvN URR5Ul[!["R$S5UlUR&R5UlgNNd7f)NrrFr)rr) start_serverrrHOSTv4rsockets getsocknamesocketclient setblockingget_running_loop sock_connectrsocknor rrkrH)r5 server_names r asyncSetUpTestSendfile.asyncSetUpWs #001G1G1>1E1EGG kk))!,88: mmo  &&&(55dkk;OOOkk((* ))40 ii&&( G Ps#:D;D7BD;D9A#D;9D;c# URR5 URR5 URR 5IShvN gN7fr()rHrsrr wait_closedrms r asyncTearDownTestSendfile.asyncTearDowncs9  kk%%'''sAAAAcn# [R"[R/UQ70UD6IShvN $N7fr()r) to_threadrr)rrs rasync_sendfileTestSendfile.async_sendfileis*&&r{{DTDVDDDDs ,535c# [R"U0UD6IShvN $N![aYnUR[R:XaeUR[R [R 4;aSnAMeSnAff=f7fr()rrrMrN ECONNRESETEAGAINEBUSY)rrr~s rsendfile_wrapperTestSendfile.sendfile_wrappermsn  )88$I&IIII 99 0 00YY5<<"== s=B %#%B % BA B<B BBB c# SnSnSnU[UR5:a}URURURX#5IShvN nUS:XaOGX$- nX- nUR XC:*5 UR X!5 U[UR5:aM}UR U[UR55 URR[R5 URR5 URR5IShvN UR [UR5[UR55 UR URUR5 gGN<Nf7f)Nr)rBrrrrrtrFrshutdownr SHUT_RDWRrsrrr)r5 total_sentoffsetnbytessents rtest_send_whole_file!TestSendfile.test_send_whole_files. 3tyy>)..t{{DKK/5??Dqy NF  J OODN +   V 03tyy>) S^4 V--. kk%%''' T//0#dii.A ++TYY7? (s-A F  F AF BF $F %A$F  F c# Sn[UR5S-n[UR5U- nSnX:aXURURURX$5IShvN nUS:XaO"X%- nX- nUR XT:*5 X:aMXUR R[R5 UR R5 URR5IShvN UR[UR5S-SnURU[U55 UR[UR5[U55 URURU5 gGNN7f)Nrr~r)rBrrrrrtrrrrrsrrrFr)r5rr must_sendrrrVs rtest_send_at_certain_offset(TestSendfile.test_send_at_certain_offsets= TYY1$ NV+ $..t{{DKK/5??Dqy NF  J OODN +$ V--. kk%%'''99S^q012 S]3 T//0#h-@ ++X6? (s,A$F &F'+F A F 4F5BF F c8# [UR5S-nURURURUS5IShvN nUR US5 URR[R5 URR5 URR5IShvN UR UR S5 gN![ a)nUR[R:waeSnANSnAff=fNY7f)Nrrr)rBrrrrrFrMrNEINVALrrrrrsrrr)r5rrrs rtest_offset_overflow!TestSendfile.test_offset_overflowsTYY$& &,,T[[$++-3T;;D   T1 % V--. kk%%''' ++S1; ww%,,&'  (sMD+C"C C" A2D>D?!D C"" D,D DDDc6# UR[5nURURURSS5IShvN SSS5 UR WR R[R5 gNA!,(df  NE=f7f)NrAr) rrMrrrrFrrNrr5r%s rtest_invalid_offset TestSendfile.test_invalid_offsetsh   w '2%%dkk4;;DI I I( ++U\\: J( 's.B,BBB =BB BBc # URURURSSS9IShvN UR(a2URURURSSSSSS9IShvN ggNHN7f)Nrr)rrrrUr+)rrrrUheaderstrailersr)rrrSUPPORT_HEADERS_TRAILERSrms r test_keywordsTestSendfile.test_keywordss!!DKK)*$"8 8 8  ( (%%T[[ -.d.02Q&H H H ) 8 Hs"*A9A5AA9.A7/A97A9c# SnSURSS-nURURURSSSS/S9IShvN nUR US5 X- nSnU[ U5:ax[ [ U5U- S5nURURURXE5IShvN nUS:XaO*UR X55 X- nXC- nU[ U5:aMxURU[ U55 URR5 URR5IShvN UR[UR5[U55 gGN*NN87f) NrsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyrArsxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyri)rrrrassertLessEqualrBminrrFrrsrrhashr)r5r expected_datarrrs r test_headersTestSendfile.test_headerssZ /$))CR.@ ((dkk1d2AE4E-A-E41E023E4'AE49E2:4E40E42E4c # [RS-nSnUR[RU5 [ X5 [ US5nUR URUR5SSSS/S9IShvN URR5 URR5IShvN URURS 5 SSS5 gNeN+!,(df  g=f7f) Nrsabcdefrrrs123456s789rsabcde123456789)rrkrrlr%r rrrrrsrrrFr)r5r file_datarxs r test_trailersTestSendfile.test_trailerss""S(   (('2G' '4 A%%dkk188:q!096/B&D D D KK   ++))+ + +   T//1B C !  D , ! sBA C;1C*C&;C*<C(= C* C;&C*(C** C84C;c x# SURRlUR[5nUR UR URSSSS-/S-S9IShvN SSS5 URWRR[R5 gNA!,(df  NE=f7f)NFrxrr rhandler_instance accumulaterrMrrrrFrrNrrs rtest_headers_overflow_32bits)TestSendfile.test_headers_overflow_32bitss38 $$/   w '2%%dkk4;;1/3e|nu.D&F F F( ++U\\: F( '.1B:2B)%B'&B)*=B:'B)) B73B:c x# SURRlUR[5nUR UR URSSSS-/S-S9IShvN SSS5 URWRR[R5 gNA!,(df  NE=f7f)NFrrrrrrrs rtest_trailers_overflow_32bits*TestSendfile.test_trailers_overflow_32bitss38 $$/   w '2%%dkk4;;104u ~/E&G G G( ++U\\: G( 'r SF_NODISKIOztest needs os.SF_NODISKIOc# URURURSS[RS9IShvN gN![ a9nUR [ R[ R4;aeSnAgSnAff=f7f)Nrrr) rrrrrrMrNrr)r5r~s r test_flagsTestSendfile.test_flagssn %%dkk4;;4,.NN&< < < yyell ;;< s>B 8AAAB A B/B=B BB )rrHrrrrN)%rarbrcrdrr@rArrrrrequires_headers_trailersmaxsize requires_32br'rr%rQrrrrrrrrrrrrrrrrrrrer+rrrr:s  $D LL # #$L MM ( 3 34L 3!5&&s{{U': 68L00++&& )( EE"8,7.2"; HHH. D D;;;; ]3466rrc[[S5(dg[[RSS5n[R "UR 5SS5 SSS5 [R"[R5 g![a/ SSS5 [R"[R5 gf=f!,(df  No=f![R"[R5 f=f)NsetxattrFrr user.testrT) rrr rrkrrrMrl)r$s rsupports_extended_attributesrs 2z " "+ )""D! ,  BIIKs;- ))*    - ))* - , ))*sECC&B C CCCCC CC&C<z(no non-broken extended attribute supportr~r'c2\rSrSrSrSrSrSrSrSr g) ExtendedAttributeTestsi"c t[RnUR[RU5 [ U5 UR [ 5nU"Xq"S540UD6 SSS5 URWRR[R5 U"U5n URU [5 U"Xq"S5S40UD6 [U 5n U RS5 UR[U"U55U 5 URU"US40UD6S5 U"Xq"S5S[R 40UD6 URU"US40UD6S5 UR [ 5nU"Xq"S5S[R"40UD6 SSS5 URURR[R$5 UR [ 5nU"Xq"S5S[R 40UD6 SSS5 URURR[R5 U"Xq"S5S[R"40UD6 U RS5 UR[U"U55U 5 U"Xq"S540UD6 UR [ 5nU"Xq"S540UD6 SSS5 URURR[R5 U R'S5 UR[U"U55U 5 URU"Xq"S540UD6S5 U"Xq"S5S40UD6 URU"Xq"S540UD6S5 U"Xq"S540UD6 [)S [+S 555n U H n U"X|S 40UD6 M UR[U"U55[U 5[U 5-5 g!,(df  GN=f!,(df  GN{=f!,(df  GN=f!,(df  GNm=f) N user.testrrrAsbyez user.test2foosaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac3D# UHnSRU5v M g7f)z user.test{}N)r)rrs rr;ExtendedAttributeTests._check_xattrs_str..SsAy!m**1--ys  r)rrkrrlr%rrMrFrrNENODATAr2rBrrr XATTR_REPLACE XATTR_CREATEEEXISTrKrr) r5rgetxattrr removexattr listxattrrrr% init_xattrxattrmanythings r_check_xattrs_str(ExtendedAttributeTests._check_xattrs_str(s[     (("-B   w '2 R; 26 2( ++U]];r]  j$/Q{^S3F3J + Yr]+U3 "l=f=sCQ{^Xr/?/?J6J "l=f=xH   w '2 R; KF K( ++U\\:   w '2 R<&"2B2B Mf M( ++U]];Q|_fbooHH , Yr]+U3B+1&1   w '2 R; 26 2( ++U]]; [! Yr]+U3 "a o@@&IQ{^X88 "a n??JB+1&1AuRyAAE R / / Yr]+S_s4y-HIS( '( '( '( 's0O20 P! P2P(2 P P P%( P7cUR"[/UQ70UD6 [R"[R5 UR"[ R /UQ70UD6 [R"[R5 gr()rr3rrlrkrrrs r _check_xattrs$ExtendedAttributeTests._check_xattrsXs^ s4T4V4))* r{{.getxattrhs1dD!R{{299;66"!! %< A c[USS5n[R"UR5/UQ76 SSS5 g!,(df  g=fNrr)r rrrrs rr1ExtendedAttributeTests.test_fds..setxattrks3dD!$ BIIK/$/%$$ &= A c[USS5n[R"UR5/UQ76 SSS5 g!,(df  g=fr)r rrrrs rr4ExtendedAttributeTests.test_fds..removexattrns3dD!$ryy{2T2%$$rc[US5n[R"UR5/UQ76sSSS5 $!,(df  g=fr)r rrrrs rr2ExtendedAttributeTests.test_fds..listxattrqs1dD!R||BIIK7$7"!!r)r )r5rrrrs rtest_fdsExtendedAttributeTests.test_fdsgs( 7 0 3 8 8{Frr+N) rarbrcrdrr rrr rer+rrrr"s .J`+)@ Grrget_terminal_sizezrequires os.get_terminal_sizec\rSrSrSr\R "5S5r\R"\ RS:HS5S5r Sr g) TermsizeTestsiwc[R"5nURURS5 URURS5 g![an[R[R /n[ RS:XaUR[R5 [ RS:XdURU;aURS5 eSnAff=f)Nrrfailed to query terminal sizer)rr"rMrNrENOTTYr@rArJEACCESrrcolumnsr )r5rr known_errnoss rtest_does_not_crash!TermsizeTests.test_does_not_crashys '')D  a0  A. !LL%,,7L||y(##ELL1||w&!''\*A =>  sA C(B C##C(cf[R"SS/[RSS9R5n[WS5[US54n[R"[RR55nUR'X#5 g![[R [ 4a URS5 Nf=f![aYn[RS:Xd.UR [ R"[ R$4;aURS 5 eSnAff=f) NsttyrT)rrzstty invocation failedr|rrr&)rrDEVNULLrXrLrr5rr?rr"r@ __stdin__rrMrArNrr'rF)r5rrVrrs rtest_stty_matchTermsizeTests.test_stty_matchs 4''V$Z-?-?d%' QL#d1g,/ ))#--*>*>*@AF *":#@#@! 4 MM2 3 4 ||w&!''ellELL5Q*Q =>   s*4B2C 0C  C  D0AD++D0rzWindows specific testcP[SS5nW [R"UR 55nSSS5 UR WRS5 UR URS5 g![a URS5 Nf=f!,(df  Nh=f)Nzconout$rzfailed to open conout$r) r rMrrr"rrr)r )r5conoutrs rtest_windows_fdTermsizeTests.test_windows_fds 4)S)F'' 8D  a0  A.  4 MM2 3 4 Vs A6%B6BB B%r+N)rarbrcrdr+rr r1rrr@rAr5rer+rrr$r$wsP/.   "+#+802IJ /K /rr$ memfd_createzrequires os.memfd_createrr#c\rSrSrSrSrg)MemfdCreateTestsic^[R"S[R5nURUS5 UR [R U5 UR [R"U55 [USSS9nURS5 URUR5S5 SSS5 [R"S5nUR [R U5 UR [R"U55 g!,(df  Nj=f)NHirArF)closefds memfd_createrO) rr7 MFD_CLOEXECrrrsr2r5r r!rFtell)r5rrxrs rtest_memfd_create"MemfdCreateTests.test_memfd_creates __T2>> 2 B# "% ++B/0 "dE *a GGO $   QVVXr *+ood# #& ++C01 + *s 2D D,r+N)rarbrcrdr?rer+rrr9r9s 2rr9eventfdzrequires os.eventfdrxc&\rSrSrSrSrSrSrg) EventfdTestsicNSnSnSn[R"U5nURUS5 UR[RU5 UR [R "U55 [R"XB5nURXQ"U55 [R"XA"S55 [R"XB5nURXQ"S55 [R"XA"S55 [R"XA"S55 [R"XB5nURXQ"S55 [R"US5 [R"US 5 [R"U5nURUS5 g) Nc0[R"SU5$)Nz@Q)structpack)rs rrG/EventfdTests.test_eventfd_initval..packs;;tU+ +rrLrNrAr(r~rr) rrArrrsr2r5rrFr! eventfd_write eventfd_read)r5rGrinitvalrress rtest_eventfd_initval!EventfdTests.test_eventfd_initvals: , ZZ  B# "% ++B/0ggb d7m, T"Xggb d2h' T"X T!Wggb d2h' R  Qoob! b!rcSn[R[R-[R-n[R"X5nUR US5 UR [RU5 [R"U5nURUS5 [R"U5nURUS5 UR[5 [R"U5 SSS5 UR[5 [R"US5 SSS5 [R"US5 [R"U5nURUS5 UR[5 [R"U5 SSS5 g!,(df  N=f!,(df  N=f!,(df  g=f)Nr~rAr|rL)r EFD_CLOEXEC EFD_SEMAPHORE EFD_NONBLOCKrArrrsrKrFrrmrrJ)r5rLrrrMs rtest_eventfd_semaphore#EventfdTests.test_eventfd_semaphores<!1!11BOOC ZZ ' B# "%oob! a oob! a    / OOB 0    / GGBN0 Qoob! a    / OOB 0 /0 / / /0 /s$"F*F; G * F8; G  Gc[R[R-n[R"SU5nUR US5 UR [R U5 [R"U/U/U/S5up4nURX4U4/U//45 [R"US5 [R"U/U/U/S5up4nURX4U4U/U//45 UR[R"U5S5 [R"US5 [R"U/U/U/S5up4nURX4U4U///45 [R"U5 g)NrrArl) rrQrSrArrrsselectrFrJrK)r5rrrfdwfdxfds rtest_eventfd_select EventfdTests.test_eventfd_selectsB0 ZZ5 ! B# "% rdRD2$: # #C2tR.9 R  rdRD2$: # #CB4"r*:; ,b1 [) rdRD2$: # #CB4R.9 rr+N)rarbrcrdrNrTr[rer+rrrCrCs"> 4rrCtimerfd_createzrequires os.timerfd_createrz#gh-124873: Test is flaky on AndroidcR\rSrSr\R S:Xa#\R "5R(aSrOSrS\*-r SS\- -r Sr Sr S r S r\R "\R R#S 5S 5S 5rSrSrSrSrSrSrSrSrSrSrSrg) TimerfdTestsirr~rr}rMc[R"U0UD6nURUS5 UR[R"U55 UR [R U5 U$r)rr]rr2r5rrs)r5rrrs rr]TimerfdTests.timerfd_create,sW    / / A& ++B/0 "% rct[R"US5n[RU[R S9$)NrL) byteorder)rrr? from_bytesr@rc)r5rrs rread_count_signaled TimerfdTests.read_count_signaled3s(wwr1~~~dcmm~<>9: U3Y(*+ 11"5u=rcVUR[R5n[R"[R5nSnX#-nSn[R "U[R XES9 [R"U5upgURXuURS9 URXcURS9 [R"5nURU5n [R"5U- nURU S5 URXUR- 5 g)Nr|rrrm)r]rro clock_gettimerrprrrrYrqrrerFrr) r5rr$rrsrlrtrurcount_signaleds rtest_timerfd_TFD_TIMER_ABSTIME+TimerfdTests.test_timerfd_TFD_TIMER_ABSTIMEs  !4!4 5  !4!45 \ 2R%9%9CUi&(%7%7%;" y4;P;PQ t?T?TU    11"5    ! # + 1t~~56rcUR[R[RS9n[ R "U/U/U/S5up#nUR X#U4///45 SnSn[R"XUS9 Sn[R"5n[U5H]n [ R "U/U/U/XV-5up#nUR X#U4U///45 UR URU5S5 M_ [R"5U- nXVUS- --n URXUR- 5 g)Nrrrhrirjrr|) r]rrorryrWrFrprrrerr) r5rrXrYrZrsrlrUrrrs rtest_timerfd_select TimerfdTests.test_timerfd_selects-  !4!4BOO L rdRD2$: # #C2r2,7" 2HM    uA"MM2$rd>9:rcLUR[R[RS9n[ R "5nURU[ R5 URUR5 SnUS-nUS-nU(a[R"UUUS9 O[R"UXT- Xd- S9 SnU(a[R"5nO[R"5n[U5Hn Un U S:XaXV-U -n OXj-n UR!X- 5n UR#[%U 5SU 5 U SSn UR#U [ R5 UR#UR'U5S5 M XVUS- --nU(a7[R"5U- nUR)XUR*- 5 O9[R"5U- nUR)XU- UR,- 5 UR/U5 g) Nrr~rrLrjrrr|)r]rrorry selectorsDefaultSelectorregister EVENT_READrrsrrpperf_counter_nsrrrWrFrBrer CLOCK_RES_NSr unregister)r5 nanosecondsrselector sec_to_nsecinitial_expiration_nsrrUrrtimeout_margin_ns timeout_nsreadyrrdts rcheck_timerfd_pollTimerfdTests.check_timerfd_polls  !4!4BOO L,,."i223 ' +q 0!Q&   ! !"*?+6 8   r'<'J(3(A C $$&A!!#AuA + Av2@CTT (< OOJ$<=E   SZE 2!HQKE   UI$8$8 9   T55b91 =+EAI-FF %%'!+B   r0A0A#A B""$q(B   r #;dnn#L MBrc&URS5 grrrms rtest_timerfd_pollTimerfdTests.test_timerfd_polls &rc&URS5 gr4rrms rtest_timerfd_ns_poll!TimerfdTests.test_timerfd_ns_polls %rcSnUS-nUR[R5nSnUS-n[R"X4US9upgUR US5 UR US5 [R"X4US9upgUR Xu5 UR Xd5 [R "U5upgUR Xu5 URXd5 URXdUS9 g)Nr~r<rrjrF) r]rrorrrFtimerfd_gettime_nsrrY)r5r limit_errorrrrnext_expiration_ns interval_ns2s rtest_timerfd_ns_initval$TimerfdTests.test_timerfd_ns_initvals%.  !4!4 5!"%- ,.,A,A"ny,z( q) +Q/,.+@+@mx+y( 3 +C,.+@+@+D( 3 /G 1P[\rcSnUS-nUR[R5nUnUS-n[R"X4US9 [R "U5upgUR Xu5 URXd5 Sn[R"5n [U5H$n UR URU5S5 M& [R"5U - n XEUS- --n URXUR- 5 [R"US-U-U- 5 UR URU5U5 g)Nr~r<r~rjrr|r)r]rrorrrrFrrrrerrr) r5rrrrrrrrUrr total_time_nss rtest_timerfd_ns_interval%TimerfdTests.test_timerfd_ns_intervals,%.  !4!4 5!0%*  b+V,.+@+@+D( 3 /G  "uA   T55b91 =  "Q &-uqy0II  1d.?.??@ U3Y+-?@ 11"5u=rcpSnUS-nUR[R5n[R"[R5nUnXE-nSn[R "U[R XgS9 [R"U5upUR[X- 5U5 UR[X- 5U5 [R"5n URU5n [R"5U - n URU S5 URXUR- 5 g)Nr~r<rrr|)r]rroclock_gettime_nsrrrr assertLessabsrrerFrr) r5rrrnow_ns offset_nsrrrrrrs r!test_timerfd_ns_TFD_TIMER_ABSTIME.TimerfdTests.test_timerfd_ns_TFD_TIMER_ABSTIME5s%.  !4!4 5&&t':':;$ & 2  b(<(874;00 d'&]0>>=8Arr_c \rSrSrSrSrSrg) OSErrorTestsikc"SS[5n/Ul/Ul[Rb[RnO[R nURR U5 URR U"U55 [Rb[RnO$[R"[R 5nURR U5 URUR-Ul g)Nc\rSrSrSrg)OSErrorTests.setUp..Strimr+Nrarbrcrdrer+rrStrrm rr) r3bytes_filenamesunicode_filenamesrrrkrJTESTFN_UNDECODABLErrr)r5rdecodedencodeds rrnOSErrorTests.setUpls #  "!#  ' ' 322G&&G %%g. %%c'l3  ' ' 322Gkk)"2"23G ##G,--0F0FFrc R UR[R4UR[R4UR[R[R 4UR[R 4UR[R4UR[R4UR[R4UR[RS4UR[RS4/ n[R"5(a,URUR[RS45 [![S5(a-URUR[R"SS45 [![S5(a-URUR[R$SS45 [![S5(a,URUR[R&S45 [![S5(a,URUR[R(S45 [![S5(a,URUR[R*S45 [![S 5(a+URUR[R,45 [![S 5(a,URUR[R.S45 [![S 5(aUR1UR[R24UR[R4S 4UR[R6S S 4UR[R8S 445 [![S5(a,URUR[R:S45 [![S5(a+URUR[R<45 UH,tp#nUH!nU"U/UQ76 UR?SU35 M# M. g![@a1nURCURDU[GU55 SnAM`SnAf[Ha Mpf=f)Nrrrrlchownrchflagslchflagschrootr!rrsuserlchmodrzNo exception thrown by )%rrrKrr rrrrlr3rrr can_chmodrJr2rrrrrrrr!rtrrrrrrr]rMrr"r3UnicodeDecodeError)r5funcsrfunc func_argsrr~s rtest_oserror_filename"OSErrorTests.test_oserror_filenames ^^RXX ' ^^RXX ' ^^RWWbkk 2 ^^RXX ' ^^RWW & ^^RYY ( ^^RZZ ) ^^RYY . ^^RZZ /      LL$.."((E: ; 2w   LL$.."((Aq9 : 2x LL$.."))Q: ; 2z " " LL$.."++q9 : 2y ! ! LL$.."**a8 9 2z " " LL$.."++q9 : 2x LL$.."))5 6 2v   LL$.."''59 : 2{ # # LL/k:k7C=   2x LL$.."))U; < 2z " " LL$.."++7 8+0 'Ii!@* * II 7v>?",1AMM#,,c$i@@)s9 Q R&)&R R&%R&)rrrN)rarbrcrdrnrrer+rrrrksG(1@rrcf\rSrSrSrSrSr\R"\ "\ S5S5S5r Sr g ) CPUCountTestsic|UcURS5 URU[5 URUS5 g)N&Could not determine the number of CPUsr)rr2r?rr5cpuss rcheck_cpu_countCPUCountTests.check_cpu_counts4 < MMB C dC( 4#rcP[R"5nURU5 gr()r cpu_countrrs rtest_cpu_countCPUCountTests.test_cpu_counts||~ T"rc[R"5nURU[R"55 UR U5 gr()rprocess_cpu_countrrrrs rtest_process_cpu_count$CPUCountTests.test_process_cpu_counts4##% T2<<>2 T"rsched_setaffinityz!don't have sched affinity supportc[R"5nUcURS5 [R"S5n[ U5S::aURS[ U535 UR [RS[U55 UR5 [R"SU5 [R"5nURX1S- 5 g)Nrrr|z.sched_getaffinity() returns less than 2 CPUs: ) rrrsched_getaffinityrBrrrrBrrF)r5 affinity1mask affinity2s rtest_process_cpu_count_affinity-CPUCountTests.test_process_cpu_count_affinitys((*   MMB C##A& t9> MM%%+D\N4 5 ,,ad<   Q%((*  M2rr+N) rarbrcrdrrrrrrrrrer+rrrrs=$## %89<>3>3rrc\rSrSrSr\R "\SLS5S5r\R "\SLS5S5r \R"\ "\ S5S5S 5r S rS r\R"\ "\ S 5S 5S5rSrSr\R"\R(S:HS5S5r\R"\ "\ S5S5S5rSrg)FDInheritanceTestsic\[R"[[R5nUR [R U5 UR [R"U5S5 [R"US5 UR [R"U5S5 gNFT) rr rrrrsrFr5r6rs rtest_get_set_inheritable+FDInheritanceTests.test_get_set_inheritablesn WWXr{{ + "% ++B/7 2t$ ++B/6rNz need fcntlc[R"[[R5nUR [R U5 UR [R"U5S5 [R"U[R5nU[R)-n[R"U[RU5 UR [R"U5S5 gr ) rr rrrrsrFr5fcntlF_GETFD FD_CLOEXECF_SETFD)r5rrs rtest_get_inheritable_cloexec/FDInheritanceTests.test_get_inheritable_cloexecs WWXr{{ + "% ++B/7 B . %"""" B u- ++B/6rc[R"[[R5nUR [R U5 UR [R"U[R5[R-[R5 [R"US5 UR [R"U[R5[R-S5 g)NTr) rr rrrrsrFr r r r6rs rtest_set_inheritable_cloexec/FDInheritanceTests.test_set_inheritable_cloexecs WWXr{{ + "% R7%:J:JJ)) + 2t$ R7%:J:JJ rO_PATHzneed os.O_PATHc[R"[[R5nUR [R U5 UR [R"U5S5 [R"US5 UR [R"U5S5 [R"US5 UR [R"U5S5 gr ) rr rr rrsrFr5r6rs rtest_get_set_inheritable_o_path2FDInheritanceTests.test_get_set_inheritable_o_paths WWXryy ) "% ++B/7 2t$ ++B/6 2u% ++B/7rc [R"5nUR[5n[R "U5 SSS5 UR WRR[R5 UR[5n[R"US5 SSS5 UR URR[R5 UR[5n[R"US5 SSS5 UR URR[R5 g!,(df  GN=f!,(df  N=f!,(df  Nf=fNTF) rrrrMrr5rFrrNrr6)r5rrs rtest_get_set_inheritable_badf0FDInheritanceTests.test_get_set_inheritable_badfs  " " $   w '3   r "( ,,ekk:   w '3   r4 (( ,,ekk:   w '3   r5 )( ,,ekk:( '( '( 's#EE#<E4 E # E14 Fc[R"[[R5nUR [R U5 UR [R"U5S5 gr)rr rrrrsrFr5rs rrFDInheritanceTests.test_opensC WWXr{{ + "% ++B/7rrzneed os.pipe()cJ[R"5upUR[RU5 UR[RU5 UR [R "U5S5 UR [R "U5S5 gr)rrrrsrFr5)r5rXrYs r test_pipeFDInheritanceTests.test_pipesi779 #& #& ++C0%8 ++C0%8rcN[R"[[R5nUR [R U5 [R "U5nUR [R U5 UR[R"U5S5 gr) rr rrrrsrrFr5r5fd1rs rtest_dupFDInheritanceTests.test_dup$sbggh , #&ffSk #& ++C0%8rc[R"S5nUR[RU5 UR US5 gNr|r)rrrrsrrs rtest_dup_standard_stream+FDInheritanceTests.test_dup_standard_stream,s1 VVAY "% 2q!rrrcD[R"S[R5nUR[RU5 [R "U5nUR[RU5 UR [R"U55 g)NNUL)rr rrrsrr2r5r s r test_dup_nulFDInheritanceTests.test_dup_nul1sbggeR[[) #&ffSk #& ++C01rrzneed os.dup2()c[R"[[R5nUR [R U5 [R"[[R5nUR [R U5 UR [R"X5U5 UR[R"U55 [R"[[R5nUR [R U5 UR [R"XSS9U5 UR[R"U55 g)NF) inheritable) rr rrrrsrFrrtr5r2)r5rrfd3s rrFDInheritanceTests.test_dup2:s WWXr{{ + "%ggh , #& )3/ **3/0ggh , #& e?9@99" 02GH2I2V,.>?2@2rropenptyzneed os.openpty()c \rSrSrSrSr\R"\"\ S5S5\R"\"\ S5S5\R"\"\ S5S 5S 555r \R"\"\ S 5S 5\R"\"\ S 5S5\R"\"\ S5S5\R"\"\ S5S5\R"\"\ S5S5\R"\"\ S5S 5S555555r \R"\"\ S5S5\ R"5S55rSrg)PseudoterminalTestsiKc[R"5upUR[RU5 UR[RU5 X4$r()rr, rrsr5main_fd second_fds ropen_ptyPseudoterminalTests.open_ptyMs=ZZ\ '* ),!!rcUR5upUR[R"U5S5 UR[R"U5S5 gr)r3 rFrr5r0 s r test_openpty PseudoterminalTests.test_openptyTsF!]]_ ++G4e< ++I6>rptsnamezneed os.ptsname()rrzneed os.O_RDWRO_NOCTTYzneed os.O_NOCTTYc|UR5up[R"U5n[R"U[R[R -5nUR [RU5 [R"US5 UR[R"US5S5 g)Nrr) r3 rr8 r rrr9 rrsr!rFr)r5r1 r2 second_pathreopened_second_fds rtest_open_via_ptsname)PseudoterminalTests.test_open_via_ptsnameYs{"]]_jj) WW["))BKK2GH "45 #V, !,f5r posix_openptzneed os.posix_openpt()grantptzneed os.grantpt()unlockptzneed os.unlockpt()cR[R"[R[R-5nUR [R U5 [R "U5 [R"U5 [R"U5n[R"U[R[R-5nUR [R U5 UR[R"U5[R"U55 gr() rr? rrr9 rrsr@ rA r8 r rFr)r5 mother_fdson_pathson_fds rtest_posix_pty_functions,PseudoterminalTests.test_posix_pty_functionsdsOOBIIbkk$9:  ), 9 I::i(299R[[#89 &) I. 60BCrr)zneed os.spawnl()c[R"5upUR[RU5 UR[RU5 [R "SUS35n[ RnUR[ R[ R5 [US5n[X5SS9 SSS5 [RnXd/n[RS:XaSUS;a S USS 3US'[R"[RU/UQ76nUR!US5 g!,(df  N=f) Nz import errno import os import test.support try: import msvcrt except ImportError: msvcrt = None fd = aA with test.support.SuppressCrashReport(): if msvcrt is not None: try: handle = msvcrt.get_osfhandle(fd) except OSError as exc: if exc.errno != errno.EBADF: raise # get_osfhandle(fd) failed with EBADF as expected else: raise Exception("get_osfhandle() must fail") try: fd3 = os.dup(fd) except OSError as exc: if exc.errno != errno.EBADF: raise # os.dup(fd) failed with EBADF as expected else: os.close(fd3) raise Exception("dup must fail") rr*)rHendrrrr)rrrrsrrrrkrlr rQr@rrr)r+rF) r5rrrr"r$rrrs rtest_pipe_spawnl$PseudoterminalTests.test_pipe_spawnlts '') "% #& $   B##  (()*:*:; (C B $R (!^^ $ 77d?sc!f}Q]CF99RYY 9S9 1%! s < E Er+N)rarbrcrdr3 r6 rrrrr= rF rr rJ rer+rrr. r. Kso"? Y/1DE X.0@A Z02DE6FBF6^46NO Y/1DE Z02FG Y/1DE X.0@A Z02DEDFBFHFP DX.0BC   "7&#D7&rr. c |\rSrSrSSSS\R 4S4SSS S\R 4\"\S S54/rS r S r S r g)PathTConverterTestsi)rTr+N)rFr+NruFN)rFrN)rFrN Nr rsc [Rn[RS:XaS=p#O/[R"[R5n[ U5n[R "[ U5[R[R-5nUR[R[R5 UR[RU5 [ U5n[ U5nURHupxpURUS9 [[U5n XUU4H4n U cMURX|S9 U "U /U Q76n U bU "U 5 SSS5 M6 UR!["S5 U "U/U Q76 SSS5 U(aU "U/U Q76n U bU "U 5 O(UR!["S5 U "U/U Q76 SSS5 SSS5 M g![a SSS5 Mf=f!,(df  M=f!,(df  N=f!,(df  NW=f!,(df  GM:=f)Nrr)rrGzto return str or bytesz os.PathLike)rrkrrrrr rrqrrlrs functionsrwrWr\assertRaisesRegexr)r5 str_filename bytes_fspathbytes_filenamer int_fspath str_fspathrallow_fd extra_args cleanup_fnrrGrcs rtest_path_t_converter)PathTConverterTests.test_path_t_converters '' 77d?,0 0L>[[)9)9:N#N3L WWXl+R[[-C D  (()*:*:; "%b\ l+ 6:nn 2DJ4( T*B*:)+D| 4;!#D!6:!6%1&v.<; +++!#;=z/J/=0Z0F!-"6*//%)+2+ ++1)(7E& )(<; ==++1)(sxH1G$.H1 G= "H1 H :H1 H H1$ G:.H19G::H1= H H1 H H1 H. *H11 I cSnUR[US-5 [R"[ S55 SSS5 UR[US-5 [R"[ S55 SSS5 UR[US-5 [R"[ [ 555 SSS5 g!,(df  N=f!,(df  Ni=f!,(df  g=f)Nz-__fspath__\(\) to return str or bytes, not %sr?r~floatgQ@object)rQ rrrrr^ )r5rs r&test_path_t_converter_and_custom_class:PathTConverterTests.test_path_t_converter_and_custom_classs>  # #IsV| < GGHQK =  # #IsX~ > GGHTN #?  # #IsY ? GGHVX& '@ ? = < > > ? ?s# C C (C1 C C.1 C?r+) rarbrcrdrF_OKrrWrP rZ r_ rer+rrrM rM sO !" 5277*d+&' GT(BC I*,X(rrM r9r:zCannot unset blocking flagz'Windows only supports blocking on pipesc\rSrSrSrSrg) BlockingTestsic[R"[[R5nUR [R U5 UR [R"U5S5 [R"US5 UR [R"U5S5 [R"US5 UR [R"U5S5 gr ) rr rrrrsrFr9r<rs rr=BlockingTests.test_blockings WWXr{{ + "% ,d3 E" ,e4 D! ,d3rr+N)rarbrcrdr=rer+rrrc rc s 4rrc c\rSrSrSrSrg) ExportsTestsicURS[R5 URS[R5 g)Nr r)rr__all__rms r test_os_allExportsTests.test_os_alls& fbjj) fbjj)rr+N)rarbrcrdrj rer+rrrg rg s*rrg c&\rSrSrSrSrSrSrg) TestDirEntryi c[RR[R5UlUR [R UR5 [R"UR5 gr()rrGrealpathrrkrrrJrms rrnTestDirEntry.setUp sFGG$$Y%5%56   (($))4 rcLUR[[R5 gr()rrrDirEntryrms rtest_uninstantiable TestDirEntry.test_uninstantiables )R[[1rc[[RRURS5S5n[R"UR5Vs/sHo"PM snR 5nUR U[R5 URURS5 SSK nUR[URX!5 gs snf)Nr8pythonr)r%rrGrIscandirrr2rr rFrrurrrx)r5r"entryrus rtest_unpickableTestDirEntry.test_unpickablesrww||DIIzBIN$&JJtyy$9:$95$9:>>@ eR[[1 Z0 )V\\5C ;s C)rGN)rarbrcrdrnrs ry rer+rrrm rm s 2Drrm c\rSrSr\R rSrS%SjrSrSr Sr Sr Sr S r \R"\R"S :gS 5S 5rS rS%SjrSrSrSrSrSrSrSrSrSr\R<"\R@\RB;S5S5r"\R"\#RHS5S5r%Sr&Sr'Sr(Sr)S r*S!r+S"r,S#r-g$)& TestScandiricF[RR[R5Ul[R "UR5UlUR[RUR5 [R"UR5 gr() rrGro rrkr bytes_pathrrrJrms rrnTestScandir.setUpsZGG$$Y%5%56 ++dii0  (($))4 rc[U[5(a URO URn[RR X!5n[ US5 U$)Nrv )rr]r~ rGrrIr%)r5rrGr"s rr%TestScandir.create_file%s>",T5"9"9ttyy77<<+Hi(rc[S[R"UR555nUR [ UR 55U5 U$)Nc3># UHnURU4v M g7fr(rrrx s rr*TestScandir.get_entries..,s ;$95 E*$9s)rVrrw rGrFrkeys)r5namesentriess r get_entriesTestScandir.get_entries+sF;$&JJtyy$9;;  /7rcU(aZ[U5HJnURS5(dMUS;aM#UR[X5[X$5XU45 ML gURX5 g)Nst_)rrst_nlinkr st_ctime_ns)rTrrFrW)r5rr skip_fieldsres rassert_stat_equalTestScandir.assert_stat_equal1sj E u--++  !5!(!5"'!57 #   U *rc[R"UR5nUR[[ U55 UR 5 gr()rrw rGrrrrs)r5 scandir_iters rrs TestScandir.test_uninstantiable?s5zz$)),  )T,%78rcURS5n[R"UR5nSSKnUR [ URX!5 UR5 g)Nr8r) r%rrw rGrurrrxrs)r5r"r rus rry TestScandir.test_unpickableDsI##J/zz$)),  )V\\<JrcURU[R5 URURU5 URUR [R R UR U55 URUR5[R"UR SS9R5 [R"UR 5nURUR5[R"UR55 URUR5[R"UR55 URUR5[R R!UR 55 [R"UR SS9nURURSS9[R"UR55 URURSS9[R"UR55 URUR#5[R R%UR 55 UR'UR5U[RS:H=(a U(+5 UR'URSS9U[RS:H5 g)NFr<r)r2rrr rFrrGrIinoderris_dirS_ISDIRr_is_fileS_ISREG is_symlinkrO is_junction isjunctionr )r5rx rr r r entry_stat entry_lstats r check_entryTestScandir.check_entryKs eR[[1 T* RWW\\$))T%BC UCJJ LWWUZZ(  j&8&89 ; j&8&89 ; ))+ 3 5ggejj%@  e<k&9&9: < u=k&9&9: < **,bgg.@.@.LM uzz|)!ww$Az> C uzz%z@*!ww$ 0rc[R"5n[R"5n[RR URS5n[R "U5 URS5nU(a@[R"U[RR URS55 U(a}[R"U[RR URS5SS9 [R"U[RR URS55 SS/nU(aURS5 U(aURS 5 URU5nUSnURUSSS S 5 USnURUSS SS 5 U(aUSnURUSS SS 5 U(a5USnURUSSS S5 USnURUSS SS5 gg![anURSU-5 SnAGNSnAff=f) NrTr8z link_file.txtrK symlink_dirT)rsymlink_file.txt)r r F)r can_hardlinkr0rrGrIrJr%r!r5rrrJrtr r ) r5r!rrTr"rr r rx s rtest_attributesTestScandir.test_attributesis%%''')'',,tyy%0 ##J/  3"'',,tyy/"JK  JJw TYY F+/ 1 JJxdii9K!L M #  LL )  LL< =""5) tUE: #  E4? O,E   UOUD% H M*E   UM4 E./E   U$6tT J 1# 3 o122 3s?H I(IIrz/Can only test junctions with creation on win32.c[RRURS5n[R"U5 SSKnUR "U[RRURS55 URSS/5nURUSR5S5 URUSR5S5 g![ a [R"S5ef=f)Ntgtdirrsrcjuncz!creating the test junction failedTF) rrGrIrJrrrMrrr rFr )r5rTrr s rtest_attributes_junctions%TestScandir.test_attributes_junctionss'',,tyy(3  I  " "7BGGLLI,N O""Ix#89 +7794@ *668%@  I##$GH H Is ;C!C<c[U[5(a URO URn[ [ R "U55nUR[U5S5 USnURURU5 U$r! ) rr]r~ rGrBrrw rFrBr)r5rrGr rx s r get_entryTestScandir.get_entrysf",T5"9"9ttyyrzz$'( Wq)  T* rc|URUS9nUR[RR U55$)Nr)r%r rrGbasename)r5rr"s rcreate_file_entryTestScandir.create_file_entrys3###.~~bgg..x899rcUR5n[R"5n[R"UR5 [ S[R "555nUR[UR55[RRU5/5 [R"U5 g![R"U5 f=f)Nc3<# UHoRU4v M g7fr(rr s rr5TestScandir.test_current_directory..sIL5JJ.Ls) r%rr1rKrGrVrw rFrr r )r5r"old_dirr s rtest_current_directory"TestScandir.test_current_directorys##%))+  HHTYY IBJJLIIG   VGLLN3 gg..x89 ; HHW BHHW s B C C"cZUR5nUR[U5S5 g)Nz)r rFrr5rx s r test_reprTestScandir.test_reprs%&&( e&=>rcUR5nUR[R"U5[RR URS55 gNr8)r rFrfspathrGrIr s rtest_fspath_protocol TestScandir.test_fspath_protocols<&&( 5)277<< :+NOrcB[R"S5nURUS9n[R"U5nUR U[ 5 UR U[RR[R"UR5U55 g)Nz bytesfile.txtr) rrr r r2r]rFrGrI)r5rT bytes_entryr s rtest_fspath_protocol_bytes&TestScandir.test_fspath_protocol_bytessq_5,,.,A ;' fe, bkk$))&<^L Nrc[RRURS5n[R"U5 UR S5n[R "U5 [R S:XaURUR55 URUR55 URUR55 [R S:Xa@UR[UR5 UR5 URSS9 gUR!UR5S5 UR[UR5 UR[URSS9 g)NrTrFr<r)rrGrIrJr rrrtr r2r r rrLr rr)r5rGrx s rtest_removed_dirTestScandir.test_removed_dirsww||DIIu- u%  77d? OOELLN + ) ))+, 77d?   / = JJL JJuJ -   u{{}a 0   / <   /U  SrcUR5n[R"UR5 UR UR 55 [R S:XaURUR55 UR UR55 [R S:Xa@UR[UR5 UR5 URSS9 gURUR5S5 UR[UR5 UR[URSS9 g)NrFr<r)r rrlrGr2r rrtr r rrLr rrr s rtest_removed_fileTestScandir.test_removed_files&&( %** ( 77d? OOEMMO , ))+, 77d?   / = JJL JJuJ -   u{{}a 0   / <   /U  Src&[R"5(dURS5$URS5n[R "U[R RUR S55 URSS/5nUSn[R"U5 URUR5S5 URUR55 URUR55 URURSS95 URURSS95 URUR!55 UR#[$UR&5 UR'SS9 g)Nzcannot create symbolic linkr8z symlink.txtrFr<)rr0rr%rrrGrIr rlrr r2r r rtr rrLr)r5r"r rx s rtest_broken_symlinkTestScandir.test_broken_symlinks($$&&==!>? ?##J/ 877<< =9 ;""J #>? & ( 5;;=!, ( ) e<= u=> ((*+ +UZZ8 5 )rc URS5 [R"UR5n[ [R "U55nUR [U5SU5 USnUR URS5 UR UR[R"[RRURS555 g)Nr8r|rsfile.txt) r%rrrGrBrw rFrBrrI)r5 path_bytesr rx s rr?TestScandir.test_bytes s $[[+ rzz*-. Wq'2  [1 RWW\\$))Z%HI Krc$URS5 [[4H]nU"[R"UR 55nUR [5 [R"U5 SSS5 M_ g!,(df  Mq=fr ) r%rrrrrGrrrw )r5rr s rtest_bytes_likeTestScandir.test_bytes_likes_ $j(CR[[34J""9- :&.-)--s B B z.fd support for listdir required for this test.cjUR[R[R5 UR S5 S/n[ R "5(aP[R"S[RRURS55 URS5 [ R"UR5n[R"U5n[U5nSSS5 WVs/sHoURPM nnUR[U5U5 URU[R "U55 UGH)nURURUR5 UR[R""U5UR5 URUR%5URS:H5 [R&[R(;dM[R&"URUS9nURUR'5U5 [R&"URUSS9nURUR'SS9U5 GM, SSS5 g!,(df  GN=fs snf!,(df  g=f)Nr8r!r=F)rrr<)rrrw r?r%rr0rrGrIrJrrBrrFrr3r r rr@)r5expected_namesrrzr rx r rs rtest_fdTestScandir.test_fds bjj"..1 $$  " " JJz277<< 6#B C  ! !& )  " "499 -B2r( -45WEZZWE5   VE]N ;   UBJJrN 3   UZZ8  5!15::>  !1!1!3UZZ65IJ77b000B7B$$UZZ\26BNB$$UZZZ%FK! . -5. -s8 J$$ J 0 J$<JC,J$BJ$ J  J$$ J2zWASI maps '' to cwdcNUR[[RS5 grT)rrLrrw rms rtest_empty_pathTestScandir.test_empty_path8s +RZZ X84rcfS0/4H(nUR[[RU5 M* g)NgX9v?)rrrrw )r5objs rtest_bad_path_typeTestScandir.test_bad_path_typeGs(2r?C   iS 9#rc4URS5 URS5 [R"UR5n[ U5 UR 5 UR 5 UR 5 ASSS5 g!,(df  g=fNr8 file2.txt)r%rrw rGrxrscheck_no_resource_warningr5rs r test_closeTestScandir.test_closeKsf $ %::dii( X  + + -. - -s >B  Bc(URS5 URS5 [R"UR5n[ U5 SSS5 UR 5 ASSS5 g!,(df  N)=f!,(df  g=fr )r%rrw rGrxr r s rtest_context_manager TestScandir.test_context_managerVsc $ % ZZ "h N#  + + -. -# " - -s A2'B2 B BcURS5 URS5 [R"UR5n[ U5 UR 5 SSS5 g!,(df  g=fr )r%rrw rGrxrsr s rtest_context_manager_close&TestScandir.test_context_manager_close^sM $ % ZZ "h N NN # " "s A(( A6cURS5 URS5 UR[5 [R"UR 5n[ U5 SS- SSS5 SSS5 UR5 ASSS5 g!,(df  N1=f!,(df  N:=f!,(df  g=f)Nr8r r|r)r%rZeroDivisionErrorrrw rGrxr r s rtest_context_manager_exception*TestScandir.test_context_manager_exceptiones $ %   0 1DII&(X!'2 + + -. -'&2 1. -s/!B&B*B& B7 B# B&& B47 CcURS5 URS5 [R"UR5n[ U5 UR [ 5 A[R"5 SSS5 [R"UR5n[U5 UR5 ASSS5 g!,(df  NT=f!,(df  g=fr ) r%rrw rGrx assertWarnsResourceWarningr gc_collectrBr r s rtest_resource_warning!TestScandir.test_resource_warningos $ %::dii( X   o .    /::dii( X  + + -. - / . . -s#C=C C C')r~ rGN)r8).rarbrcrdrr rnr%r r rs ry r r rr/r@rAr r r r r r r r r r r?r rrr3r?r rr1r r r r r r r r rer+rrr| r| s / I I   + 0<'KR__S\\W,._` Aa A: ?PNT,T&** K'r~~5IKLKL0__W__&;<=== 5:  rr| cz\rSrSr\"\R 5rSrSrSr Sr Sr Sr Sr S rS rS rS rS rg) TestPEP519i~cVSH#nURXRU55 M% g)N)rAsgoodbyessome/path/and/filerFr )r5bs rtest_return_bytesTestPEP519.test_return_bytess".Air+Nrr+rrAr% rrr& )rr r2r rrtr5r& s rtest_pathlike_subclasshook%TestPEP519.test_pathlike_subclasshooks>    Ha01  8R[[9:rcnUR[R[[R 5 gr()r2rr r]types GenericAliasrms rtest_pathlike_class_getitem&TestPEP519.test_pathlike_class_getitems! bkk%0%2D2DErcv"SS[R5nUR[U"5S55 g)Nc\rSrSrSrSrSrg)2TestPEP519.test_pathlike_subclass_slots..Air+cgrTr+rms rr =TestPEP519.test_pathlike_subclass_slots..A.__fspath__srN)rarbrcrd __slots__r rer+rrr& r1 s I rr& __dict__)rr r2rr' s rtest_pathlike_subclass_slots'TestPEP519.test_pathlike_subclass_slotss+    j12rcR"SS5n"SS5n"SSU5nSRnUR[U"S55 URU"55 SSS5 UR URU"55S5 UR[U"S55 URU"55 SSS5 UR[U"S55 [ U"55 SSS5 UR[U"S55 [ U"55 SSS5 S RnUR[U"S55 [ R"U"5S 5 SSS5 UR[U"S55 [ R"U"5S 5 SSS5 g!,(df  GNi=f!,(df  GN=f!,(df  N=f!,(df  N=f!,(df  N=f!,(df  g=f) Nc\rSrSrSrSrg)/TestPEP519.test_fspath_set_to_None..FooiNr+rarbrcrdr rer+rrFoor: Jrr< c\rSrSrSrSrg)/TestPEP519.test_fspath_set_to_None..Baricg)Nbarr+rms rr :TestPEP519.test_fspath_set_to_None..Bar.__fspath__srr+Nr; r+rrBarr? s rrC c\rSrSrSrSrg)/TestPEP519.test_fspath_set_to_None..BaziNr+r; r+rrBazrE r= rrF z1expected str, bytes or os.PathLike object, not {}rA z.should be string, bytes or os.PathLike, not {}foooobazzz)rrQ rr rFr rr)r5r< rC rF good_error_msgother_good_error_msgs rtest_fspath_set_to_None"TestPEP519.test_fspath_set_to_Nones     #  A G G  # #I~e/D E KK F SU+U3  # #I~e/D E KK F # #I~e/D E KF # #I~e/D E KF > D D  # #I/CE/J K IIceW %L # #I/CE/J K IIceW %L K+F E F EF EF EL KL KsHG)G$G%G6HH G G"% G36 H H H&r+N)rarbrcrdrQrr r r r r9r r r! r( r- r6 rK rer+rrr r ~sL")) $F00H@ 9 2 9;F3%&rr c\rSrSrSrSrg) TimesTestsic[R"5nURU[R5 SH$n[ X5nURU[ 5 M& [R S:XaUURURS5 URURS5 URURS5 gg)N)usersystem children_userchildren_systemelapsedrr) rrr2 times_resultrWr] rrFrR rS rT )r5rfieldrs r test_timesTimesTests.test_timess  eR__5!EE)E  ! !% /! 77d?   U00! 4   U22A 6   U]]A . rr+N)rarbrcrdrW rer+rrrN rN s /rrN c\rSrSrSr\R "\RS;S5\R"\ SLS5S55r Sr S r g) ForkTestsicxSn[SU5 [R(a [SUSS9 g[SUSS9 g)Nzif 1: import os from test import support pid = os.fork() if pid != 0: support.wait_process(pid, exitcode=0) rmimalloc_debug) PYTHONMALLOC malloc_debug)r rPy_GIL_DISABLEDrs r test_forkForkTests.test_forks7  t$  " " T46F G T4n Er)rrdarwinz'Only Linux and macOS detect this today.Nzrequires _testcapicSn[SUSS9up#nURURS5S5 URURS5S5 g)Naif 1: import os, threading, warnings from _testcapi import _spawn_pthread_waiter, _end_spawned_pthread _spawn_pthread_waiter() try: with warnings.catch_warnings(record=True) as ws: warnings.filterwarnings( "always", category=DeprecationWarning) if os.fork() == 0: assert not ws, f"unexpected warnings in child: {ws}" os._exit(0) # child else: assert ws[0].category == DeprecationWarning, ws[0] assert 'fork' in str(ws[0].message), ws[0] # Waiting allows an error in the child to hit stderr. exitcode = os.wait()[1] assert exitcode == 0, f"child exited {exitcode}" assert threading.active_count() == 1, threading.enumerate() finally: _end_spawned_pthread() r0)PYTHONOPTIMIZErr*)r rFrr5rrrr~s r-test_fork_warns_when_non_python_thread_exists7ForkTests.test_fork_warns_when_non_python_thread_existssO *'tT#F  G,b1 G,b1rcnSn[SU5up#nURSU5 URSU5 g)NaNif 1: import atexit import os class AtFinalization: def __del__(self): print("OK") pid = os.fork() if pid != 0: print("shouldn't be printed") at_finalization = AtFinalization() rsOK s"can't fork at interpreter shutdown)r rFrrf s rtest_fork_at_finalization#ForkTests.test_fork_at_finalization$s:  'tT2  #& ;SArr+)rarbrcrdr` rrr@rAr/ _testcapirg rj rer+rrrZ rZ sWF )GGBD __Y$&(<=2>D24BrrZ _fspathc8\rSrSr\"\R 5rSrg)TestPEP519PurePythoni9r+N) rarbrcrdrQrrm r rer+rrro ro 9sbjj)rro __main__)scontentr()r)r contextlibr rNr~r rrrrurArWrrsrrrrFrr@ sysconfigrCrrr+ rrrtestr test.supportrrrrrr r ImportErrorr rpwdgetpwallpw_uidrr\rl r r rrtest.support.script_helperr rtest.support.os_helperrr(rrrversionrrgetgidrhrr%r/r4r,TestCaser.rgr6rrRBasicTestMappingProtocolrTrrrrrrrr*r1r?rFr]get_config_varOS_URANDOM_DONT_USE_FDrwcontextmanagerrrrrrBr\rrrrrr!rArCrrrrrr rrrrprxIsolatedAsyncioTestCaserrrequires_linux_versionrr$r9rCr_rrrr. rM r0rc rg rm r| r rN requires_forkrZ ro ramain)us0rr s          &"&+(!#&<<>2>a>2I+1 8#+  2yZZ\Q&M  3 3??#:#:00;;NK<<**95J"))+:JK  s||'>'>u'E'NP(A8!!A8JZ8!!Z8| l7**l7^_A""_ADnJ=99nJb t(!!t(n  WR)+BC`%`%D`%F 6Y 6 WR)+BC 6j 6D 6t8$$tn WR)+@A8#X&&8#B8#v&:h''&:R "9:,8$$,;,*8$$*> WR-/DE'*X&&'*F'*Z./14? 01Q6? 89Q>  '=? *79J'X&&J'9?J'Z ""@ WR)&(e+!!e+(e+P S\\W,.DE Bh'' BF BF "EFL*H%%L*GL*^ WR(*<=#0!!#0>#0J (*@ADAx((DABDAL (*@AG0(##G0BG0R S\\W,.DEwKX&&wKFwKt S\\W,.DE,D)),DF,D^ RWW_&9:,(++,;,^ WR,.CD9+H%%9+E9+x S\\W,.DE nB))nBFnB` S\\W,.DE8**8F8B S\\W,.DET@8$$T@FT@n "8,,""> 7h'' 7 1(++1$ GJx  GJGJT z,""z,z,~ OP WR,.FG/""/HQ/  WR/NGB 4N>@18,,1@1, WR,.HIT833TJTn   13?A 1b)NGX..NG*ANGb WR!457VW@/H%%@/X@/F WR02LM2& 2x(( 2'N 2 WR+-BC1b)N8$$N*DN` WR!124PQ *,QR1b)HA8$$HA*SRHAT F@8$$F@P#3H%%#3N n2**n2n2` WR+-@Aa&(++a&Ba&H?((++?(D WR0DF &&(DE (*ST 4H%% 4UFF 4*8$$* D8$$D$_(##_D e&""e&N /"" /  =B!!=B=BD 2y*z* z MMOihH EG3^$I +I"{{*Gn+  Ds~ o%o*o$/o8o3o8 p ,p&ooo! o!$o0/o03o88 pp p#"p#&p21p2