o
    IXîh9  ã                   @   sš   	 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 d dlmZ e	e dƒs+e 
d¡‚e	e dƒs5e 
d¡‚G dd	„ d	eƒZd
d„ ZedkrKe ¡  dS dS )é    N)ÚForkWait)ÚsupportÚforkzos.fork not definedÚwait3zos.wait3 not definedc                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú	Wait3Testc                C   sx   t  ¡ tj }t  ¡ |kr&t tj¡\}}}||krnt  d¡ t  ¡ |ks|  ||¡ |  t 	|¡|¡ |  
|¡ d S )Ngš™™™™™¹?)ÚtimeÚ	monotonicr   ZSHORT_TIMEOUTÚosr   ÚWNOHANGÚsleepÚassertEqualÚwaitstatus_to_exitcodeZ
assertTrue)ÚselfZcpidÚexitcodeÚdeadlineZspidÚstatusÚrusage© r   ú9/opt/python-3.10.19/usr/lib/python3.10/test/test_wait3.pyÚ	wait_impl   s   
úzWait3Test.wait_implc                 C   s„   t jddg}tj|tjd}z)t tj¡\}}}|  d|¡ |  d|¡ |  dt	|ƒ¡ W |j
 ¡  | ¡  d S |j
 ¡  | ¡  w )Nz-czimport sys; sys.stdin.read())Ústdinr   )ÚsysÚ
executableÚ
subprocessÚPopenÚPIPEr	   r   r
   r   Úsumr   ÚcloseÚwait)r   ÚargsÚprocÚpidr   r   r   r   r   Útest_wait3_rusage_initialized$   s   

ÿ
z'Wait3Test.test_wait3_rusage_initializedN)Ú__name__Ú
__module__Ú__qualname__r   r"   r   r   r   r   r      s    r   c                   C   s   t  ¡  d S )N)r   Úreap_childrenr   r   r   r   ÚtearDownModule4   s   r'   Ú__main__)r	   r   r   r   ZunittestZtest.fork_waitr   Útestr   ÚhasattrZSkipTestr   r'   r#   Úmainr   r   r   r   Ú<module>   s"    



"ÿ