
    z%i!                         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__     N/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/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        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       | 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   <x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   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H= II
&I(I"I: (I.?(I: =I
I	II"I+.I73I: :JN)	r   r   r   r   r   r   r.   r8   rD   r	   r
   r   r   r      s!    E(' &
!r
   r   __main__)r>   r&   r3   r1   r"   unittesttestr   	Exceptionr   TestCaser   r   mainr	   r
   r   <module>rK      sU    	   
   	y 	Ah// AH zHMMO r
   