B *D9@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=/opt/alt/python37/lib64/python3.7/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 Csvt|}t|}g}t||B}xF|D]>}tj|\}}|dddkr(|dkr(||kr(||q(W|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 |j rJgndt_ }|j r`dt_ |rdt_ t}tj}tj}z@|t_|t_t||dd} | tkr|} || |Wd|t_|t_Xn|j t_ t|||j d} |rddlmmfdd|D} nd} t|} t|| | | S|rBtdt_ XdS)NT)exitF)display_failurercsg|]}|dqS)zus-ascii)Ztostringdecode).0x)ETrr sz_runtest..)Zverbose3Ztimeout faulthandlerZdump_traceback_latertimeZ perf_counterrZset_match_testsZ match_testsZ ignore_testsZxmlpathZjunit_xml_listZfailfastverboseioStringIOsysstdoutstderr_runtest_innerrgetvaluewriteflushZxml.etree.ElementTreeZetreeZ ElementTreer5Zcancel_dump_traceback_later) rrZoutput_on_failureZ use_timeoutZ start_timeZxml_liststreamZ orig_stdoutZ orig_stderrroutputZxml_datarr)r;r_runtestrsL      rKcCsNy t||S|jstdt |dS)N)rLzerrors while loading tests) unittestZ TestLoaderZloadTestsFromModuleerrorsrPrBrD ExceptionrZ run_unittest) the_moduleloaderr/errorrrr _test_modules  rZc Cst||}t|t|}t|dd}|dkr>tt|}z"|j rTt |||}n |d}Wdt ||j Xt tjrdt_t|dttjdttjtjt|S)NZ test_mainFTz created z uncollectable object(s).)r4rZunload importlib import_modulegetattr functoolspartialrZZ huntrleaksrcleanup_test_droppingsr? gc_collectgcZgarbageenvironment_alteredrlen FOUND_GARBAGEextendclearZ reap_children)rrZabstestrWZ test_runnerrefleakrrr_runtest_inner2s(       riTc Csdt_|jrd}y8tt||j|j|jd}t||}WdQRXWnDtjk r}z&|js~|js~t |d|ddt Sd}~XYnt j k r}z&|js|jst |d|ddt Sd}~XYntjk r(}z4d|d}|r|d|}t |tjdd tSd}~XYnftjk r>tStk rXt tS|jst}t d|d |tjdd tS|rtS|jrtStS) NF)rMz skipped -- T)rHztest z failedz -- )rLrHz crashed -- )rrcrMrrr?quietriZResourceDeniedrPrrTZSkipTestrZ TestFailedrBrDrQZ TestDidNotRunrKeyboardInterrupt INTERRUPTEDrNrOZchangedrr)rrr7Z environmentrhrRexcrrrrEsJ    rEc CstxtjfD]}tj|s$qtj|rFddl}d|j}}n*tj |r`dtj }}nt d|d|rt d|||fdt_ y.ddl}t||j|jB|jB||Wqtk r}z"t |d|d |d |Wdd}~XYqXqWdS) NrZ directoryrLz os.path says z) exists but is neither directory nor filez%r left behind %s %rTz left behind  z and it couldn't be removed: )rraZTESTFNr r!existsisdirshutilZrmtreeisfileunlink RuntimeErrorrrcstatchmodS_IRWXUS_IRWXGS_IRWXOrV)rr?r0rqZkindZnukerrurmrrrr`0s&    r`)N)T)1 collectionsr=r^rbr[r@r rBr>rNrTZtestrZtest.libregrtest.refleakrrZtest.libregrtest.save_envrZtest.libregrtest.utilsrrrrQrrrrlZ CHILD_ERRORrrrZPROGRESS_MIN_TIMEZSTDTESTSr)ZNOTTESTSrerrr%r2r4 namedtupler5rKrSrZrirEr`rrrrst     9 , 0