U gt@svddlZddlZddlZddlZddlZddlZddlmZz ddlZWne k r`dZYnXddZ 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&od|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_thresholdZsuppress_msvcrt_assertsverboseZ use_resourcesr )nsZ stderr_fdZsignalsZsignummoduleindexrrr r r setup_testssB              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_stdoutes z&replace_stdout..restore_stdout)rrrropenr/atexitr)fdr5r r4rrQs  r) r7rrrrr%Ztestrr& ImportErrorr+rr r r rs   C