U \k^ )@svddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddl mZmZddlmZddlmZmZdZdZdZdZd Zd Zd Zd Zd Zedededededededededi ZdZddddddddd d!g Z e!Z"gZ#d"d#Z$d$d%Z%d;d&d'Z&de e"fd(d)Z'd*d+Z(e)d,d-Z*d.d/Z+d0d1Z,d2d3Z-d4d5Z.d@Z test_grammarZ test_opcodesZ test_dictZ test_builtinZtest_exceptionsZ test_typesZ test_unittestZ test_doctestZ test_doctest2Z test_supportcCs,|j}|ttttfkrdS|tkr(|jSdS)NFT)resultPASSEDRESOURCE_DENIEDSKIPPEDTEST_DID_NOT_RUN ENV_CHANGEDZfail_env_changed)rnsokr./usr/lib/python3.8/test/libregrtest/runtest.py is_failedEs rcCs8t|jd}||j}|jtkr4d|t|jf}|S)Nz%sz%s (%s))_FORMAT_TEST_RESULTgetr test_nameTIMEOUTr test_time)rZfmttextrrrformat_test_resultNs   rcCs|ptjtjtptjS)N)ospathdirname__file__curdir)r!rrr findtestdirVsr%c Csrt|}t|}g}t||B}|D]>}tj|\}}|dddkr&|dkr&||kr&||q&|t|S)z-Return a list of all applicable test modules.NZtest_)z.py)r%r listdirsetr!splitextappendsorted) testdirZstdtestsZnottestsnamestestsZothersnamemodZextrrr findtestsZs    r2cCs |ds|jr|Sd|SdS)Nztest.) startswithr-)rrrrrget_abs_modulegsr4 TestResultz#test_name result test_time xml_datac sN|j}|jdk }|r$tj|jddt}zt |j |j rFgndt_}|j r\dt_ |rdt_ t}tj}tj}z@|t_|t_t||dd} | tkr|} || |W5|t_|t_Xn|j t_ t|||j d} |rddlmmfdd|D} nd} t|} t|| | | WS|rBtdt_XdS)NT)exitF)display_failurercsg|]}|dqS)zus-ascii)Ztostringdecode).0xZETrr sz_runtest..)Zverbose3Ztimeout faulthandlerZdump_traceback_latertime perf_counterZcancel_dump_traceback_laterrZjunit_xml_listZset_match_testsZ match_testsZxmlpathZfailfastverboseioStringIOsysstdoutstderr_runtest_innerrgetvaluewriteflushZxml.etree.ElementTreeZetreeZ ElementTreer5) rrZoutput_on_failureZ use_timeoutZ start_timeZxml_liststreamZ orig_stdoutZ orig_stderrroutputZxml_datarrr;r_runtestrsP      rLcCsVz t||WS|js>t}td|d|tjddt|tddYSXdS)aRun a single test. ns -- regrtest namespace of options test_name -- the name of the test Returns the tuple (result, test_time, xml_data), where result is one of the constants: INTERRUPTED KeyboardInterrupt RESOURCE_DENIED test skipped because resource denied SKIPPED test skipped for some other reason ENV_CHANGED test failed because it changed the execution environment FAILED test failed PASSED test passed EMPTY_TEST_SUITE test ran no subtests. TIMEOUT test timed out. If ns.xmlpath is not None, xml_data is a list containing each generated testsuite element. test crashed -- TfilerIgN) rLpgo traceback format_excprintrCrEr5FAILED)rrmsgrrrruntests rWcCsHt}||}|jD]}t|tjdq|jr:tdt |dS)N)rPzerrors while loading tests) unittestZ TestLoaderZloadTestsFromModuleerrorsrTrCrE ExceptionrZ run_unittest) the_moduleloaderr/errorrrr _test_modules  r^c Cst||}t|t|}t|dd}|dkr>tt|}z"|j rTt |||}n |d}W5t ||j Xt tjrdt_t|dttjdttjtjt|S)NZ test_mainFTz created z uncollectable object(s).)r4rZunload importlib import_modulegetattr functoolspartialr^cleanup_test_droppingsr@Z huntrleaksr gc_collectgcZgarbageenvironment_alteredrlen FOUND_GARBAGEextendclearZ reap_children)rrZabstestr[Z test_runnerrefleakrrr_runtest_inner2s(       rmTc Csdt_|jrd}z8tt||j|j|jd}t||}W5QRXWnjtjk r}z.|js~|js~t |d|ddt WYSd}~XYnt j k r}z.|js|jst |d|ddt WYSd}~XYntjk r@}zrRrXZtestrZtest.libregrtest.refleakrrZtest.libregrtest.save_envrZtest.libregrtest.utilsrrrrUrrrrpZ CHILD_ERRORrrrZPROGRESS_MIN_TIMEZSTDTESTSr)ZNOTTESTSrirrr%r2r4 namedtupler5rLrWr^rmrFrdrrrrs     9 , 0