
    daf}                         d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZ  G d de	      Z
 G d dej                        Zedk(  r ej                          yy)    N)supportc                       e Zd Zy)SIGUSR1ExceptionN)__name__
__module____qualname__     5/root/Python-3.12.4/Lib/test/signalinterproctester.pyr   r      s    r
   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)InterProcessSignalTestsc                     dddd| _         y )Nr   SIGHUPSIGUSR1SIGALRMgot_signals)selfs    r   setUpzInterProcessSignalTests.setUp   s    &'A!Dr
   c                 2    | j                   dxx   dz  cc<   y )Nr      r   r   signumframes      r   sighup_handlerz&InterProcessSignalTests.sighup_handler   s    "a'"r
   c                 <    | j                   dxx   dz  cc<   t        )Nr   r   )r   r   r   s      r   sigusr1_handlerz'InterProcessSignalTests.sigusr1_handler   s    #q(#r
   c                 H   ||j                          t        j                         }t        j                  t        j
                  d      D ]'  }| j                  |   r y t        j                          ) t        j                         |z
  }| j                  d||fz         y )NF)errorz)signal %s not received after %.1f seconds)
waittime	monotonicr   
busy_retrySHORT_TIMEOUTr   signalpausefail)r   childsigname
start_time_dts         r   wait_signalz#InterProcessSignalTests.wait_signal   s     JJL^^%
##G$9$9G 	'A(LLN	'
 !J.BIIA "& 'r
   c                 f    d|d|d}t         j                  dd|g}t        j                  |      S )Nzimport os, signal; os.kill(z	, signal.)z-Iz-c)sys
executable
subprocessPopen)r   pidr*   codeargss        r   subprocess_send_signalz.InterProcessSignalTests.subprocess_send_signal*   s/    >A7KdD1%%r
   c                 T   t        j                   t         j                  | j                         t        j                   t         j                  | j                         t        j                   t         j
                  t         j                         t        j                   t         j                  t         j                         t        t        j                               }| j                  |d      5 }| j                  |d       d d d        | j                  | j                  dddd       d }t!        j"                          | j%                  t&              5  | j                  |d      5 }| j                  |d       d d d        d d d        | j                  | j                  dddd       | j                  |d      5 }|j)                          d d d        	 | j%                  t*              5  t        j,                  d       | j                  d d       d d d        | j                  | j                  dddd       t        j,                  d       y # 1 sw Y   RxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   pxY w# t        j,                  d       w xY w)Nr   r   r   r   r   SIGUSR2r   )r&   r   r   r   r   r:   SIG_IGNr   default_int_handlerstrosgetpidr8   r.   assertEqualr   gccollectassertRaisesr   r!   KeyboardInterruptalarm)r   r5   r)   s      r   test_interprocess_signalz0InterProcessSignalTests.test_interprocess_signal/   s    	fmmT%8%89fnnd&:&:;fnnfnn5fnnf&@&@A "))+((h7 	.5UH-	.))aA78,: 	; 


/0 	3,,S)< 3  	23	3 	))aA78,: 	; ((i8 	EJJL		""#45 2Q  y12 T--!;<0> ? LLO;	. 	.3 3	3 	3	 	
2 2 LLOs`   0II,)I <I,>I8J -(J(J I I)	%I,,I58JJ	J J'N)	r   r   r   r   r   r   r.   r8   rF   r	   r
   r   r   r      s!    E(' &
(r
   r   __main__)rA   r>   r&   r3   r1   r"   unittesttestr   	Exceptionr   TestCaser   r   mainr	   r
   r   <module>rM      sX    	 	   
   	y 	Hh// HV zHMMO r
   