o *g1 @sBddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z ddlmZddlmZddlmZmZmZGdddZGd d d eZGd d d eZGd ddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZ GdddeZ!dZ"gd Z#e$Z%gZ&d!ed"ed#e'fd$d%Z(d>d&d'Z)de#e%fd(d)Z*d"ed*e+d#e+fd+d,Z,d"ed*e+d#efd-d.Z-d"ed*e+d#efd/d0Z.d1d2Z/d"ed*e+fd3d4Z0d"ed*e+d#e'fd5d6Z1 7d?d"ed*e+d8e'd#efd9d:Z2d*e+d;e3d#dfdgr"r>c@r) DidNotRunrcCr)Nz ran no testsrrrrrrmrzDidNotRun.__str__Nr!rrrrr?lr"r?c@r)TimeoutrcCs|jdt|jdS)Nz timed out (r/)r rr rrrrrrszTimeout.__str__Nr!rrrrr@qr"r@g>@) test_grammar test_opcodes test_dict test_builtintest_exceptions test_types test_unittest test_doctest test_doctest2 test_supportresultnsrcCst|tr|jSt|tSr) isinstancer9fail_env_changedr#)rKrLrrr is_faileds  rOcCs|ptjtjtptjSr)ospathdirname__file__curdir)rQrrr findtestdirsrUc Csrt|}t|}g}t||B}|D]}tj|\}}|dddkr2|dvr2||vr2||q|t|S)z-Return a list of all applicable test modules.Ntest_)z.pyr,)rUrPlistdirsetrQsplitextappendsorted) testdirstdtestsnottestsnamestestsothersr modextrrr findtestss     re test_namecCs|ds|jr |Sd|S)Nztest.) startswithr]rLrfrrrget_abs_modulesric sX|j}|jdu}|rtj|jddt}zt|j|j |j r$gndt_ }|j r/dt_ |rmdt_ t}tj}tj}z'|t_|t_t||dd} t| ts^|} || |W|t_|t_n|t_|t_w|j t_ t|||j d} |rddlmmfdd|D| _t|| _| W|rtdt_ S|rtdt_ w)NT)exitF)display_failurercsg|] }|dqS)zus-ascii)tostringdecode).0xETrr sz_runtest..)verbose3timeout faulthandlerdump_traceback_latertime perf_counterrset_match_tests match_tests ignore_testsxmlpathjunit_xml_listfailfastverboseioStringIOsysstdoutstderr_runtest_innerrMr getvaluewriteflushxml.etree.ElementTreeetree ElementTreer r cancel_dump_traceback_later) rLrfoutput_on_failure use_timeout start_timexml_liststream orig_stdout orig_stderrrKoutputrrpr_runtests^    rcCsJzt||WS|jst}td|d|tjddt|YS)aRun a single test. ns -- regrtest namespace of options test_name -- the name of the test Returns a TestResult sub-class depending on the kind of result received. If ns.xmlpath is not None, xml_data is a list containing each generated testsuite element. test crashed -- Tfiler)rpgo traceback format_excprintrrr#)rLrfmsgrrrruntests  rcCsHt}||}|jD] }t|tjdq |jrtdt |dS)N)rzerrors while loading tests) unittest TestLoaderloadTestsFromModuler$rrr Exceptionr run_unittest) the_moduleloaderrar)rrr _test_modules  rcCst||j|j|jdS)N)r)rrquietrrhrrrsave_envsrc Cst||}ztj|=Wn tyYnwt|}|jr#ddlm}t |dd}|dur3t t |}z,t |||jrD||||}n|d}Wdn1sSwYWt||jnt||jwttjrdt_t|dttjdttjtjt|S)Nr)dash_R test_mainFTz created z uncollectable object(s).)rirmodulesKeyError importlib import_module huntrleakstest.libregrtest.refleakrgetattr functoolspartialrrcleanup_test_droppingsrr gc_collectgcgarbageenvironment_alteredrr1 FOUND_GARBAGEextendclear reap_children)rLrfabstestrr test_runnerrefleakrrr_runtest_inner2 s<          rTrkc CsFdt_|jrd}ztt|| t||}Wdn1s!wYWntjyO}z|jsA|jsAt|d|ddt|WYd}~Sd}~wt j yv}z|jsh|jsht|d|ddt |WYd}~Sd}~wtj y}z&d|d}|r|d|}t|t jddt||j|jd WYd}~Sd}~wtjy}z!d|d}|r|d|}t|t jddt|WYd}~Sd}~wtjyt|YStytt|YS|js t}td|d |t jddt|YS|rt|Stjrt|St|S) NFz skipped -- T)rrr0z -- r)r$r%r)rrrrrrr<rrrSkipTestr;TestFailedWithDetailsrrr#r$r% TestFailed TestDidNotRunr?KeyboardInterruptr=rrr8r:r9r )rLrfrkrrexcrrrr?sd          rrc CsttjfD]x}tj|sqtj|r"ddl}d|j }}ntj |r/dtj }}nt d|d|rHt |d|d|dt_zddl}t||j|jB|jB||Wqty}zt |d|d|d |WYd}~qd}~wwdS) Nr directoryrz os.path says z) exists but is neither directory nor filez left behind r.Tz and it couldn't be removed: )rrrTESTFNrPrQexistsisdirshutilrmtreeisfileunlink RuntimeErrorrrstatchmodS_IRWXUS_IRWXGS_IRWXOr)rfrr rkindnukerrrrrrrws0     rr)T)5rurrrrrPrrwrrtestr test.supportrtest.libregrtest.cmdlinertest.libregrtest.save_envrtest.libregrtest.utilsrrrr r r#r8r9r:r;r<r=r>r?r@PROGRESS_MIN_TIMESTDTESTSrYNOTTESTSrboolrOrUrerrirrrrrrintrrrrrsf    "  9 4 8