a
    ze
                     @   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 eejdd dkdG dd dej	Z
dd	 Zed
krxe  dS )    N)support   winz can't easily test on this systemc                   @   sd   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dd Zdd ZdS )SelectTestCasec                   @   s   e Zd ZdS )zSelectTestCase.NopeN)__name__
__module____qualname__ r	   r	   &/usr/lib/python3.9/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v}| }|  zt|gg g d W n4 tyf } z| |jtj W Y d }~nd }~0 0 | 	d W d    n1 s0    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_identityc                 C   s   d}t |}dD ]}tjr(td| t|gg g |\}}}|||fg g g fkrVq|||f|gg g fkr| }tjrtt| |stjrtd  qq| d||| qW d    n1 s0    Y  d S )Nz?for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; done)r   r   r            NNNNNNNNNNz	timeout =ZEOFz'Unexpected return values from select():)	ospopenr   verboseprintr   readlinereprr    )r   cmdpZtoutZrfdZwfdZxfdliner	   r	   r
   test_select/   s$    
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   )sys
__stdout__r   r   ar	   r
   r   G   s    z4SelectTestCase.test_select_mutated.<locals>.F.filenoNr   r	   r8   r	   r
   FF   s   r:   
      )r   r   )r   r:   r	   r8   r
   test_select_mutatedD   s    z"SelectTestCase.test_select_mutatedN)r   r   r   r   r   r   unittestskipIfr6   platform
startswithr$   r(   r5   r=   r	   r	   r	   r
   r      s   
r   c                   C   s   t   d S )N)r   reap_childrenr	   r	   r	   r
   tearDownModuleM   s    rC   __main__)r   r,   r   r6   r>   testr   r?   r@   ZTestCaser   rC   r   mainr	   r	   r	   r
   <module>   s   C