ó {G_Tc@s†ddlZddlmZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z yddl Z Wne k r±eZ nXyddlZWne k rÛeZnXejdkZerúdZndZy ejZWnek r)d„ZnXdejfd„ƒYZd efd „ƒYZd ejfd „ƒYZd efd„ƒYZdefd„ƒYZejedƒdefd„ƒYƒZej edƒdefd„ƒYƒZ!ej e"ede#ƒdƒdefd„ƒYƒZ$dejfd„ƒYZ%ej edƒdefd„ƒYƒZ&d „Z'e(d!kr‚e'ƒndS("iÿÿÿÿN(t test_supporttwin32s@import msvcrt; msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY);tcCs,tjƒ}tj|tjtjBƒ|fS(s(Replacement for mkstemp, calling mktemp.(ttempfiletmktemptostopentO_RDWRtO_CREAT(tfname((s0/usr/local/lib/python2.7/test/test_subprocess.pytmkstemp's t BaseTestCasecBs&eZd„Zd„Zdd„ZRS(cCstjƒdS(N(Rt reap_children(tself((s0/usr/local/lib/python2.7/test/test_subprocess.pytsetUp.scCs?xtjD]}|jƒq Wtjƒ|jtjdƒdS(Nssubprocess._active not empty(t subprocesst_activetwaitt_cleanupt assertFalse(R tinst((s0/usr/local/lib/python2.7/test/test_subprocess.pyttearDown3s cCs,tjdd|ƒ}|j|||ƒdS(Ns\[\d+ refs\]\r?\n?$R(tretsubt assertEqual(R tstderrtexpectedtmsgtactual((s0/usr/local/lib/python2.7/test/test_subprocess.pytassertStderrEqual9sN(t__name__t __module__RRtNoneR(((s0/usr/local/lib/python2.7/test/test_subprocess.pyR -s  tPopenTestExceptioncBseZRS((RR(((s0/usr/local/lib/python2.7/test/test_subprocess.pyR!AstPopenExecuteChildRaisescBseZdZd„ZRS(sePopen subclass for testing cleanup of subprocess.PIPE filehandles when _execute_child fails. cOstdƒ‚dS(NsForced Exception for Test(R!(R targstkwargs((s0/usr/local/lib/python2.7/test/test_subprocess.pyt_execute_childIs(RRt__doc__R%(((s0/usr/local/lib/python2.7/test/test_subprocess.pyR"EstProcessTestCasecBsAeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zejejƒd ƒd„ƒZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d „Z%ej&e'j(j)d!e'j*ƒƒd"ƒd#„ƒZ+d$„Z,d%„Z-d&„Z.d'„Z/d(„Z0d)„Z1d*„Z2d+„Z3d,„Z4d-„Z5d.„Z6eje7d5kd/ƒd0„ƒZ9d1„Z:d2„Z;d3„Z<ej&e'j(j)d!e'j*ƒƒd"ƒd4„ƒZ=RS(6cCs/tjtjddgƒ}|j|dƒdS(Ns-csimport sys; sys.exit(47)i/(Rtcalltsyst executableR(R trc((s0/usr/local/lib/python2.7/test/test_subprocess.pyt test_call_seqOs cCs/tjtjddgƒ}|j|dƒdS(Ns-csimport sys; sys.exit(0)i(Rt check_callR)R*R(R R+((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_check_call_zeroUs cCsN|jtjƒ }tjtjddgƒWdQX|j|jjdƒdS(Ns-csimport sys; sys.exit(47)i/( t assertRaisesRtCalledProcessErrorR-R)R*Rt exceptiont returncode(R tc((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_check_call_nonzero[scCs/tjtjddgƒ}|jd|ƒdS(Ns-cs print 'BDFL'tBDFL(Rt check_outputR)R*tassertIn(R toutput((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_check_outputbscCsN|jtjƒ }tjtjddgƒWdQX|j|jjdƒdS(Ns-csimport sys; sys.exit(5)i( R/RR0R6R)R*RR1R2(R R3((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_check_output_nonzerohscCs8tjtjddgdtjƒ}|jd|ƒdS(Ns-cs$import sys; sys.stderr.write('BDFL')RR5(RR6R)R*tSTDOUTR7(R R8((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_check_output_stderros cCsg|jtƒ8}tjtjddgdtjƒ}|jdƒWdQX|jd|j j dƒdS(Ns-csprint 'will not be run'tstdouts-Expected ValueError when stdout arg supplied.i( R/t ValueErrorRR6R)R*R=tfailR7R1R#(R R3R8((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_check_output_stdout_argvs  cCsNtjjƒ}d|dRRR,R.R4R9R:R<R@RGRSRYRZR`RgtunittesttskipIft sysconfigtis_python_buildRhRkRqRsRvRwRxRzR{R|R~RR€R†R‡RˆRŠR‹RŒt skipUnlessRRctisdirRR”R•RŸR¢R¨R©R»R¾RÄRÅRÇRÌRÑR RØRâRãRäRç(((s0/usr/local/lib/python2.7/test/test_subprocess.pyR'Msh                       &     !  t_SuppressCoreFilescBsJeZdZdZd„Zd„Zeje e dƒdƒd„ƒZ RS(s-Try to prevent core files from being created.cCsÃtd k rXy,tjtjƒ|_tjtjd ƒWqXttjfk rTqXXntj dkr¿t j ddddgdt j ƒj ƒd}|jƒdkr¿d GHtjjƒq¿nd S( s3Try to save previous ulimit, then set it to (0, 0).itdarwins/usr/bin/defaultsRuscom.apple.CrashReportert DialogTypeR=t developers;this tests triggers the Crash Reporter, that is intentionalN(ii(tresourceR t getrlimitt RLIMIT_COREt old_limitt setrlimitR>terrorR)tplatformRRKRTR[tstripR=tflush(R tvalue((s0/usr/local/lib/python2.7/test/test_subprocess.pyt __enter__Ûs   cGs]|jdkrdStdk rYytjtj|jƒWqYttjfk rUqYXndS(s%Return core file behavior to default.N(RõR RòRöRôR>R÷(R R#((s0/usr/local/lib/python2.7/test/test_subprocess.pyt__exit__òs tSIGALRMsRequires signal.SIGALRMcCs d„}tjtj|ƒ}|jtjtj|ƒtjddg}xPdD]H}itj|6}tj||}tjdƒ|j ƒWdQXqPWdS(NcSsdS(N((tsignumtframe((s0/usr/local/lib/python2.7/test/test_subprocess.pythandlerss-csimport time; time.sleep(2)R=Ri(sstdoutsstderr( tsignalRþRUR)R*RRTRKtalarmR[(R Rt old_handlerR#tstreamtkwtprocess((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_communicate_eintrüs   N( RRR&R RõRüRýRèRìR¦RR(((s0/usr/local/lib/python2.7/test/test_subprocess.pyRî×s   sPOSIX specific teststPOSIXProcessTestCasecBs~eZd„Zd„Zd„Zdejfd„ƒYZej e j j dƒ dƒd„ƒZ d„Zd „Zd „Zd „Zd „Zd „Zd„Zej ejjd'ƒdƒd„ƒZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!d„Z"d„Z#d„Z$d„Z%d „Z&d!„Z'd"„Z(d#„Z)d$„Z*d%„Z+d&„Z,RS((cCsS|jtƒ(}tjtjddgddƒ}WdQX|jd|jjƒdS(Ns-cRRbs/this/path/does/not/existsos.chdir( R/R¯RRKR)R*R7R1tchild_traceback(R R3RX((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_exceptionsscCsPtƒ*tjtjddgƒ}|jƒWdQX|j|j tj ƒdS(Ns-csimport os; os.abort()( RîRRKR)R*RRR2RtSIGABRT(R RX((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_run_aborts   cCs]tjtjddgdtjdd„ƒ}|j|jjƒ|j|jj ƒdƒdS(Ns-cs3import sys, os;sys.stdout.write(os.getenv('FRUIT'))R=t preexec_fncSstjddƒS(NRBtapple(Rtputenv(((s0/usr/local/lib/python2.7/test/test_subprocess.pyt(sR( RRKR)R*RTRUR=RVRRu(R RX((s0/usr/local/lib/python2.7/test/test_subprocess.pyt test_preexec"s    t_TestExecuteChildPopencBs eZdZd„Zd„ZRS(s3Used to test behavior at the end of _execute_child.cOs#||_tjj|||ŽdS(N(t _testcaseRRKRL(R ttestcaseR#R$((s0/usr/local/lib/python2.7/test/test_subprocess.pyRL.s cCsÐzGtjj|||||||||| | | | | ||||ƒWdgtdƒD]}tjdtjƒ^qW}z1x*|D]"}|jj|| ||fƒq‚WWdx|D]}tj |ƒq³WXXdS(Nis /dev/zero( RRKR%R«RRtO_RDONLYRt assertNotInRV(R R#R*Rt close_fdsRbRCR£t startupinfot creationflagstshelltto_closetp2creadtp2cwritetc2preadtc2pwriteterrreadterrwritet_t devzero_fdsR×((s0/usr/local/lib/python2.7/test/test_subprocess.pyR%2s    +   (RRR&RLR%(((s0/usr/local/lib/python2.7/test/test_subprocess.pyR,s s /dev/zeros/dev/zero required.cCs`d„}|jtƒB|j|tjddgdtjdtjdtjd|ƒWdQXdS( s6Issue16140: Don't double close pipes on preexec error.cSstdƒ‚dS(Ns-force the _execute_child() errpipe_data path.(t RuntimeError(((s0/usr/local/lib/python2.7/test/test_subprocess.pytraise_itRss-cRÆRWR=RRN(R/R%RR)R*RRT(R R&((s0/usr/local/lib/python2.7/test/test_subprocess.pyt0test_preexec_errpipe_does_not_double_close_pipesNs  cCstƒ\}}tj|dƒtj|dtjƒtj|ƒtj|dƒtj|ƒ}|j ƒtj |ƒ|j |j dƒdS(Ns #!/bin/sh s(exec '%s' -c 'import sys; sys.exit(47)' iÀi/( R RRjR)R*RVtchmodRRKRRÚRR2(R tfR RX((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_args_string[s     cCsT|jttjtjddgddƒ|jttjtjddgddƒdS(Ns-csimport sys; sys.exit(47)Ri/R(R/R>RR(R)R*(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRShs    cCsvtjjƒ}d|d(R=RR@(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_send_signal_deadãscCs|jdƒdS(NRC(R=(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_kill_deadçscCs|jdƒdS(NRF(R=(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_terminate_deadësc Cs*d}g}x?|D]7}tj|ƒ}|j|ƒ|dkr|}qqWz†x|D]}tj|ƒqXWtjtjddgd|dtjdtjƒj ƒ\}}t j |ƒ}|j ||fd ƒWdx-t ||ƒD]\}}tj||ƒqçWx|D]}tj|ƒqWXdS( Nis-csRimport sys;sys.stdout.write("apple");sys.stdout.flush();sys.stderr.write("orange")RWR=RRRt(sapplesorange(RtdupR¬RVRRKR)R*RTR[Rtstrip_python_stderrRtziptdup2( R RÎRWtnewfdstatbR×R^R_((s0/usr/local/lib/python2.7/test/test_subprocess.pytcheck_close_std_fdsïs*        cCs|jdgƒdS(Ni(RS(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_close_fd_0 scCs|jdgƒdS(Ni(RS(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_close_fd_1scCs|jdgƒdS(Ni(RS(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_close_fd_2scCs|jddgƒdS(Nii(RS(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_close_fds_0_1scCs|jddgƒdS(Nii(RS(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_close_fds_0_2scCs|jddgƒdS(Nii(RS(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_close_fds_1_2scCs|jdddgƒdS(Niii(RS(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_close_fds_0_1_2scCsñgtdƒD]}tƒ^q }g|D]\}}|^q)}zŠx!|D]\}}tj|ƒqKWgtdƒD]}tj|ƒ^qu} zÜx*t|ƒD]\}} tj| |ƒq Wtj|dƒtj|ddƒt j t j ddgd|d|d|ƒ} | j ƒx!|D]}tj|ddƒq!Wtj|d ƒ} tjtj|d ƒƒ} Wdx7t| ƒD])\}}tj||ƒtj|ƒq|WX|j| d ƒ|j| d ƒWdx|D]}tj|ƒqÕWXdS( NitSTDINis-csZimport sys; got = sys.stdin.read();sys.stdout.write("got %s"%got); sys.stderr.write("err")RWR=Ris got STDINR_(R«R RR´RLt enumerateRORjRnRRKR)R*RRuRRMRVR(R tstdin_not stdout_not stderr_noR·ttempsR×R ttemp_fdst saved_fdsttemp_fdRXR^R_tstdtsaved((s0/usr/local/lib/python2.7/test/test_subprocess.pytcheck_swap_fds#s8"(     cCsv|jdddƒ|jdddƒ|jdddƒ|jdddƒ|jdddƒ|jdddƒdS(Niii(Rf(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyt test_swap_fdsUs cCsotjdddƒ}tjtj|gdtjdtjƒ}|jƒ\}}|jd|j d|ƒdS(Nssigchild_ignore.pytsubdirtsubprocessdataR=Ris6sigchild_ignore.py exited non-zero with this error: %s( RtfindfileRRKR)R*RTR[RR2(R tsigchild_ignoreRXR=R((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_wait_when_sigchild_ignored]s  cCs›tjtjddgdtjdtjƒ}|j|jjƒ|j|jjƒt |ƒ}|j }~|j |gtj D]}t |ƒ^q~ƒdS(Ns-cs import sys, time;time.sleep(0.2)R=R( RRKR)R*RTRUR=RVRtidtpidR7R(R RXtidentRnto((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_zombie_fast_process_delgs     c CsEtjtjddgdtjdtjƒ}|j|jjƒ|j|jjƒt |ƒ}|j }~t j |t jƒ|j|gtjD]}t |ƒ^q‘ƒtjdƒ|jtƒ4}tjdgdtjdtjƒ}WdQXWdQX|jtt j|dƒ|j|gtjD]}t |ƒ^q(ƒdS(Ns-csimport time;time.sleep(3)R=Rgš™™™™™É?RÈi(RRKR)R*RTRUR=RVRRmRnRRCRRDR7RRÀRÁR/RÉR¯twaitpidR(R RXRoRnRpR3tproc((s0/usr/local/lib/python2.7/test/test_subprocess.pyt!test_leak_fast_process_del_killedys&     ,   c Csätjtjddgdtjdtjdtjƒ}tjtjddg|j|j|jfD]}|jƒ^qagdtjdtjdtjdt ƒ}|j dƒ|j ƒ\}}|j |j d d t |ƒƒdS( Ns-csimport os;os.read(0, 1)RWR=Rsif True: import os, errno, sys for fd in %r: try: os.close(fd) except OSError as e: if e.errno != errno.EBADF: raise else: sys.exit(1) sys.exit(0) RtfooisUnexpected error: (RRKR)R*RTRWR=RRmtFalseR[RR2trepr(R tp1R)tp2R#R((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_pipe_cloexec™s   & (R;R<(-RRR R RRRKRRèRéRRcRÛR'R*RSR+R,R-R7R:R)Røt startswithR=RBRERHRIRJRKRSRTRURVRWRXRYRZRfRgRlRqRtRz(((s0/usr/local/lib/python2.7/test/test_subprocess.pyR sD   "(                 2   sWindows specific teststWin32ProcessTestCasecBseZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z d „Z d „Z d „Zd „Zd„ZRS(cCsMd}d}tjƒ}||_||_tjtjddgd|ƒdS(Niis-csimport sys; sys.exit(0)R(Rt STARTUPINFOtdwFlagst wShowWindowR(R)R*(R tSTARTF_USESHOWWINDOWt SW_MAXIMIZER((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_startupinfo¼s   cCs4d}tjjdƒtjtjdd|ƒdS(Nis' a DOS box should flash briefly ... s# -c "import time; time.sleep(0.25)"R(R)RRjRR(R*(R tCREATE_NEW_CONSOLE((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_creationflagsËs  cCs`|jttjtjddgdd„ƒ|jttjtjddgdtjdtƒdS(Ns-csimport sys; sys.exit(47)RcSsdS(Ni((((s0/usr/local/lib/python2.7/test/test_subprocess.pyRØsR=R(R/R>RR(R)R*RTR2(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRSÓs      cCs5tjtjddgdtƒ}|j|dƒdS(Ns-csimport sys; sys.exit(47)Ri/(RR(R)R*R2R(R R+((s0/usr/local/lib/python2.7/test/test_subprocess.pyttest_close_fdsßs  cCsptjjƒ}d|d(R:RRG(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRB0scCs|jdƒdS(NRC(R:(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRE3scCs|jdƒdS(NRF(R:(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRH6scCs|jdtjƒdS(NR>(R=RRG(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRI9scCs|jdƒdS(NRC(R=(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRJ<scCs|jdƒdS(NRF(R=(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRK?s(RRR‚R„RSR…R+R,R-R:R=RBRERHRIRJRK(((s0/usr/local/lib/python2.7/test/test_subprocess.pyR|¹s           t _has_pollspoll system call not supportedtProcessTestCaseNoPollcBseZd„Zd„ZRS(cCstt_tj|ƒdS(N(RvRRˆR'R(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRFs cCstt_tj|ƒdS(N(R2RRˆR'R(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRJs (RRRR(((s0/usr/local/lib/python2.7/test/test_subprocess.pyR‰Cs tHelperFunctionTestscBs#eZejedƒd„ƒZRS(s(errno and EINTR make no sense on windowscs€g‰‡fd†}|jdtj|ddƒƒ|jdgˆƒ|jdtj|dƒƒ|jdd d gˆƒdS( NcsDˆj|ƒtˆƒdkr4ttjdƒ‚ntt|ƒƒS(Nisfake interrupted system call(R¬RŽR¯R°tEINTRttupletreversed(R#(t record_calls(s0/usr/local/lib/python2.7/test/test_subprocess.pyt fake_os_funcSs içiiš(içi(iiç(iš(iiç(iš(iš(RRt_eintr_retry_call(R R((RŽs0/usr/local/lib/python2.7/test/test_subprocess.pyttest_eintr_retry_callPs  (RRRèRéR™R‘(((s0/usr/local/lib/python2.7/test/test_subprocess.pyRŠOssmswindows onlytCommandsWithSpacescBsGeZd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsXtt|ƒjƒtddƒ\}}|jƒ|_tj|dƒtj|ƒdS(Ns.pyste stsVimport sys;sys.stdout.write('%d %s' % (len(sys.argv), [a.lower () for a in sys.argv]))( tsuperR’RR tlowerR RRjRV(R R)R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRds cCs'tj|jƒtt|ƒjƒdS(N(RRÚR R“R’R(R ((s0/usr/local/lib/python2.7/test/test_subprocess.pyRmscOs_tj|ds^                  ÿÿŒ8ÿª‰  *