o ­=?hó ã@svddlZddlZddlZddlZddlZddlZddlmZGdd„deƒZ Gdd„dej ƒZ e dkr9e  ¡dSdS)éN)Úsupportc@s eZdZdS)ÚSIGUSR1ExceptionN)Ú__name__Ú __module__Ú __qualname__©rrúA/opt/alt/python310/lib64/python3.10/test/signalinterproctester.pyr src@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚInterProcessSignalTestscCsddddœ|_dS)Nr©ÚSIGHUPÚSIGUSR1ÚSIGALRM©Ú got_signals)ÚselfrrrÚsetUpszInterProcessSignalTests.setUpcCs|jdd7<dS)Nr ér©rZsignumÚframerrrÚsighup_handlersz&InterProcessSignalTests.sighup_handlercCs|jdd7<t‚)Nr r)rrrrrrÚsigusr1_handlersz'InterProcessSignalTests.sigusr1_handlercCsf|dur| ¡tj}t ¡|}t ¡|kr(|j|rdSt ¡t ¡|ks| d||f¡dS)Nz'signal %s not received after %s seconds) ÚwaitrZ SHORT_TIMEOUTÚtimeÚ monotonicrÚsignalÚpauseZfail)rÚchildÚsignameZtimeoutZdeadlinerrrÚ wait_signals    ý ÿz#InterProcessSignalTests.wait_signalcCs$d||f}tjdd|g}t |¡S)Nz)import os, signal; os.kill(%s, signal.%s)z-Iz-c)ÚsysÚ executableÚ subprocessÚPopen)rÚpidrÚcodeÚargsrrrÚsubprocess_send_signal*s  z.InterProcessSignalTests.subprocess_send_signalc Csºt tj|j¡t tj|j¡t tjtj¡t tjtj¡t t   ¡ƒ}|  |d¡}|  |d¡Wdƒn1s=wY| |jddddœ¡| t¡$|  |d¡}|  |d¡Wdƒn1sjwYWdƒn1sywY| |jddddœ¡|  |d¡ }| ¡Wdƒn1sžwYz3| t¡t d¡|  dd¡Wdƒn1s¿wY| |jddddœ¡Wt d¡dSt d¡w)Nr rrr r ÚSIGUSR2r )rr rr rr'ÚSIG_IGNr Údefault_int_handlerÚstrÚosÚgetpidr&rZ assertEqualrZ assertRaisesrrÚKeyboardInterruptÚalarm)rr#rrrrÚtest_interprocess_signal/s@ ÿ ÿ ÿ€ÿ ÿ þ  þ  ÿz0InterProcessSignalTests.test_interprocess_signalN) rrrrrrrr&r/rrrrr s r Ú__main__)r+rr!rrZunittestÚtestrÚ ExceptionrZTestCaser rÚmainrrrrÚs E ÿ