U \k^:@s~ddlZddlZddlZddlZddlZddlZddlmZz ddlZWne k r`dZYnXddZ ddZ ddZ dS) N)supportc Csztj}Wnttfk r*d}YnZXtjd|dg}ttdrT| tj ttdrj| tj |D]}tj |d|dqnt ttj|jrtjdtj|jtjD]P}t|drt|jD]\}}tj||j|<qt|ddrtj|j|_q|jr d tj_|j dk r8t!|j |j"dk rPt#$|j"t%|j&ob|j&d k|j't_'ttd rd d }t(|dS)NT)Z all_threadsfileSIGALRMSIGUSR1)chainrr__path____file__F addaudithookcSsdSN)nameargsr r ,/usr/lib/python3.8/test/libregrtest/setup.py_test_audit_hookLsz%setup_tests.._test_audit_hook))sys __stderr__fileno ValueErrorAttributeError faulthandlerZenablehasattrsignalappendrrregisterreplace_stdoutrZrecord_original_stdoutstdoutZtestdirpathinsertosabspathmodulesvalues enumeratergetattrrZ huntrleaksunittestZ BaseTestSuiteZ_cleanupZmemlimitZ set_memlimitZ thresholdgcZ set_thresholdsuppress_msvcrt_assertsverboseZ use_resourcesr )nsZ stderr_fdZsignalsZsignummoduleindexrrr r r setup_testssB              r,cCsz ddl}Wntk r"YdSX||j|jB|jB|jBz |jWntk rbYdSX|j |j |j fD]2}|r|||j | ||jqt||dqtdS)Nr)msvcrt ImportErrorZ SetErrorModeZSEM_FAILCRITICALERRORSZSEM_NOALIGNMENTFAULTEXCEPTZSEM_NOGPFAULTERRORBOXZSEM_NOOPENFILEERRORBOXZCrtSetReportModerZCRT_WARNZ CRT_ERRORZ CRT_ASSERTZCRTDBG_MODE_FILEZCrtSetReportFileZCRTDBG_FILE_STDERR)r(r-mr r rr'Qs(  r'cs\tjz }Wntk r(YdSXt|djddddt_fdd}t|dS) zSet stdout encoder error handler to backslashreplace (as stderr error handler) to avoid UnicodeEncodeError when printing a tracebackNwbackslashreplaceF )encodingerrorsclosefdnewlinecstjt_dSr )rrcloser rr rrestore_stdout~s z&replace_stdout..restore_stdout)rrrropenr3atexitr)fdr9r r8rrjs  r) r;rrrrr%Ztestrr&r.r,r'rr r r rs   C