o
    HXîhF  ã                   @   s   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 e 	ej
dd… dkd¡G dd„ dejƒƒZdd	„ Zed
krFe ¡  dS dS )é    N)Úsupporté   Úwinz can't easily test on this systemc                   @   s~   e Zd ZG dd„ dƒZG dd„ dƒZdd„ Ze ej	 
d¡d¡d	d
„ ƒZdd„ Ze eedƒd¡dd„ ƒZdd„ Zdd„ ZdS )ÚSelectTestCasec                   @   s   e Zd ZdS )zSelectTestCase.NopeN)Ú__name__Ú
__module__Ú__qualname__© r	   r	   ú:/opt/python-3.10.19/usr/lib/python3.10/test/test_select.pyÚNope   s    r   c                   @   s   e Zd Zdd„ ZdS )zSelectTestCase.Almostc                 C   s   dS )NÚfilenor	   ©Úselfr	   r	   r
   r      s   zSelectTestCase.Almost.filenoN©r   r   r   r   r	   r	   r	   r
   ÚAlmost   s    r   c                 C   sx   |   ttjddd¡ |   ttj|  ¡ gg g ¡ |   ttj|  ¡ gg g ¡ |   ttjg g g d¡ |   ttjg g g d¡ d S )Né   é   r   znot a numberéÿÿÿÿ)ZassertRaisesÚ	TypeErrorÚselectr   r   Ú
ValueErrorr   r	   r	   r
   Útest_error_conditions   s
   z$SelectTestCase.test_error_conditionsZfreebsdz*skip because of a FreeBSD bug: kern/155606c                 C   s¦   t tdƒD}| ¡ }| ¡  zt |gg g d¡ W n ty3 } z|  |jtj¡ W Y d }~nd }~ww |  	d¡ W d   ƒ d S W d   ƒ d S 1 sLw   Y  d S )NÚrbr   zexception not raised)
ÚopenÚ__file__r   Úcloser   ÚOSErrorÚassertEqualÚerrnoÚEBADFÚfail)r   ÚfpÚfdÚerrr	   r	   r
   Ú
test_errno   s   €ÿø"úzSelectTestCase.test_errnoc                 C   s>   t   g g g d¡\}}}|  ||¡ |  ||¡ |  ||¡ d S )Nr   )r   ZassertIsNot)r   ÚrÚwÚxr	   r	   r
   Útest_returned_list_identity*   s   z*SelectTestCase.test_returned_list_identityÚpopenzneed os.popen()c           
      C   s  t  d¡}tjdd|g}tj|tjdd}|j}dD ]M}tj	r&t
d|› ƒ t |gg g |¡\}}}|  |g ¡ |  |g ¡ |sAq||gkr_| ¡ }	tj	rSt
t|	ƒƒ |	s^tj	r\t
dƒ  nq|  d|||¡ qW d   ƒ d S W d   ƒ d S 1 s{w   Y  d S )	Nz“
            import time
            for i in range(10):
                print("testing...", flush=True)
                time.sleep(0.050)
        z-Iz-c)Ústdout)r   r   r   é   é   é   NNNNNNNNNNz
timeout = ZEOFz'Unexpected return values from select():)ÚtextwrapÚdedentÚsysÚ
executableÚ
subprocessÚPopenÚPIPEr*   r   ÚverboseÚprintr   r   ÚreadlineÚreprr    )
r   ÚcodeÚcmdÚprocÚpipeÚtimeoutZrfdZwfdZxfdÚliner	   r	   r
   Útest_select1   s8   

ÿïþ"ïzSelectTestCase.test_selectc                    sR   g ‰ G ‡ fdd„dƒ}|ƒ gd ˆ d d …< |   t g ˆ g ¡g ˆ d d… g f¡ d S )Nc                       s   e Zd Z‡ fdd„ZdS )z-SelectTestCase.test_select_mutated.<locals>.Fc                    s   ˆ d= t j ¡ S )Nr   )r0   Ú
__stdout__r   r   ©Úar	   r
   r   T   s   
z4SelectTestCase.test_select_mutated.<locals>.F.filenoNr   r	   rA   r	   r
   ÚFS   s    rC   é
   é   )r   r   )r   rC   r	   rA   r
   Útest_select_mutatedQ   s   (z"SelectTestCase.test_select_mutatedc                 C   s:   t  | tt ¡ ƒ¡ ttdƒrt  | tt ¡ ƒ¡ d S d S )NÚdevpoll)r   Zcheck_disallow_instantiationÚtyper   ÚpollÚhasattrrG   r   r	   r	   r
   Útest_disallow_instantiationZ   s   
ÿz*SelectTestCase.test_disallow_instantiationN)r   r   r   r   r   r   ÚunittestÚskipIfr0   ÚplatformÚ
startswithr$   r(   Z
skipUnlessrJ   Úosr?   rF   rK   r	   r	   r	   r
   r   
   s    ÿ

	r   c                   C   s   t  ¡  d S )N)r   Úreap_childrenr	   r	   r	   r
   ÚtearDownModule`   s   rR   Ú__main__)r   rP   r   r2   r0   r.   rL   Útestr   rM   rN   ZTestCaser   rR   r   Úmainr	   r	   r	   r
   Ú<module>   s     ÿTÿ