
    <e                        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j	        d            ej
        ej        dd         dk    d           G d d	ej                              Zd
 Zedk    r ej                     dS dS )    N)supportT)module   winz can't easily test on this systemc                   &   e Zd Z G d d          Z G d d          Zd Z ej        ej	        
                    d          d          d             Zd	 Z ej                    d
             Z ej        ej        d          d             Zd ZdS )SelectTestCasec                       e Zd ZdS )SelectTestCase.NopeN)__name__
__module____qualname__     '/usr/lib/python3.11/test/test_select.pyNoper
      s        r   r   c                       e Zd Zd ZdS )SelectTestCase.Almostc                     dS )Nfilenor   selfs    r   r   zSelectTestCase.Almost.fileno   s    8r   Nr   r   r   r   r   r   r   Almostr      s#        	 	 	 	 	r   r   c                    |                      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)assertRaises	TypeErrorselectr   r   
ValueErrorr   s    r   test_error_conditionsz$SelectTestCase.test_error_conditions   s    )V]Aq!<<<)V]TYY[[M2rJJJ)V]T[[]]ORLLL)V]BBOOO*fmRRDDDDDr   freebsdz*skip because of a FreeBSD bug: kern/155606c                    t          t          d          5 }|                                }|                                 	 t	          j        |gg g d           |                     d           n<# t          $ r/}|                     |j        t          j	                   Y d }~nd }~ww xY wd d d            d S # 1 swxY w Y   d S )Nrbr   zexception not raised)
open__file__r   closer    failOSErrorassertEqualerrnoEBADF)r   fpfderrs       r   
test_errnozSelectTestCase.test_errno   s    (D!! 	2RBHHJJJ2rdBA... 		01111  9 9 9  EK888888889	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s;   )B7 A.B7.
B'8%B"B7"B''B77B;>B;c                     t          j         g g g d          \  }}}|                     ||           |                     ||           |                     ||           d S )Nr   )r    assertIsNot)r   rwxs       r   test_returned_list_identityz*SelectTestCase.test_returned_list_identity,   se    -BA..1aAAAr   c                    t          j        d          }t          j        dd|g}t	          j        |t          j                  5 }|j        }dD ]}t          j	        rt          d|            t          j        |gg g |          \  }}}|                     |g            |                     |g            |sk||gk    r\|                                }	t          j	        rt          t          |	                     |	st          j	        rt          d            n|                     d|||           d d d            d S # 1 swxY 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 = EOFz'Unexpected return values from select():)textwrapdedentsys
executable
subprocessPopenPIPEr9   r   verboseprintr    r+   readlinereprr)   )
r   codecmdprocpipetimeoutrfdwfdxfdlines
             r   test_selectzSelectTestCase.test_select3   s        ~tT40c*/::: 	)d;D; ) )? 20w00111 &tfb"g F FS#  b)))  b))) 4&====??D *d4jj))) "? )!%LLL		CsC) ) ) )'	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   C1EE
Ez-Emscripten cannot select a fd multiple times.c                     g  G fdd          } |            gdz  d d <   |                      t          j        g g           g d d         g f           d S )Nc                       e Zd Z fdZdS )-SelectTestCase.test_select_mutated.<locals>.Fc                 F    d= t           j                                        S )Nr   )r@   
__stdout__r   )r   as    r   r   z4SelectTestCase.test_select_mutated.<locals>.F.filenoY   s    bE~,,...r   Nr   )rX   s   r   FrU   X   s.        / / / / / / /r   rY   
      )r+   r    )r   rY   rX   s     @r   test_select_mutatedz"SelectTestCase.test_select_mutatedS   s     	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ urz!!!r1b11B"1"r?CCCCCr   c                     t          j        | t          t          j                                         t          t          d          r5t          j        | t          t          j                                         d S d S )Ndevpoll)r   check_disallow_instantiationtyper    pollhasattrr^   r   s    r   test_disallow_instantiationz*SelectTestCase.test_disallow_instantiation_   sk    ,T43F3FGGG69%% 	O0tFN<L<L7M7MNNNNN	O 	Or   N)r   r   r   r   r   r"   unittestskipIfr@   platform
startswithr1   r7   r   requires_forkrR   is_emscriptenr\   rc   r   r   r   r   r      s=                     E E E X_S\,,Y77AC C	2 	2C C	2   W) ) )> X_N D D DO O O O Or   r   c                  ,    t          j                     d S )N)r   reap_childrenr   r   r   tearDownModulerl   e   s    r   __main__)r,   osr    rB   r@   r>   rd   testr   requires_working_socketre   rf   TestCaser   rl   r   mainr   r   r   <module>rs      s    				      



          t , , , ,#,rr"E)35 5UO UO UO UO UOX& UO UO5 5UOn   zHMOOOOO r   