
    daf                        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                          yy)    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                  j                  d      d      d        Zd	 Z ej                         d
        Z ej                  ej                   d      d        Zd Zy)SelectTestCasec                       e Zd Zy)SelectTestCase.NopeN)__name__
__module____qualname__     +/root/Python-3.12.4/Lib/test/test_select.pyNoper
      s    r   r   c                       e Zd Zd Zy)SelectTestCase.Almostc                      y)Nfilenor   selfs    r   r   zSelectTestCase.Almost.fileno   s    r   Nr   r   r   r   r   r   r   Almostr      s    	r   r   c                    | j                  t        t        j                  ddd       | j                  t        t        j                  | j                         gg g        | j                  t        t        j                  | j	                         gg g        | j                  t        t        j                  g g g d       | j                  t
        t        j                  g g g d       y )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)V]]T[[]ORL)V]]BBO*fmmRRDr   freebsdz*skip because of a FreeBSD bug: kern/155606c                 d   t        t        d      5 }|j                         }|j                          	 t	        j                  |gg g d       | j                  d       d d d        y # t        $ r4}| j                  |j                  t        j                         Y d }~Ad }~ww xY w# 1 sw Y   y xY w)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HHJ2rdBA. 		01	2 	2
  9  EKK889	2 	2s4   !B&A&B&&	B#/*BB&B##B&&B/c                     t        j                   g g g d      \  }}}| j                  ||       | j                  ||       | j                  ||       y )Nr   )r    assertIsNot)r   rwxs       r   test_returned_list_identityz*SelectTestCase.test_returned_list_identity+   sL    --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 |      \  }}}| j                  |g        | j                  |g        |se||gk(  rT|j                         }	t        j                  rt        t        |	             |	st        j                  rt        d        n| j                  d|||        d d d        y # 1 sw Y   y xY w)	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_select2   s       ~~tT40c*//: 	)d;;D; )??Jwi01 &tfb"g FS#  b)  b)4&===?Dd4j)"??!%L		CsC)#)	) 	) 	)s   C$D<<Ez-Emscripten cannot select a fd multiple times.c                     g  G fdd      } |       gdz  d d  | j                  t        j                  g g       g d d g f       y )Nc                       e Zd Z fdZy)-SelectTestCase.test_select_mutated.<locals>.Fc                 F    d= t         j                  j                         S )Nr   )r@   
__stdout__r   )r   as    r   r   z4SelectTestCase.test_select_mutated.<locals>.F.filenoX   s    bE~~,,..r   Nr   )rX   s   r   FrU   W   s    /r   rY   
      )r+   r    )r   rY   rX   s     @r   test_select_mutatedz"SelectTestCase.test_select_mutatedR   sP     	/ 	/ urz!r1b1B"1r?Cr   c                     t        j                  | t        t        j                                      t        t        d      r2t        j                  | t        t        j                                      y y )Ndevpoll)r   check_disallow_instantiationtyper    pollhasattrr^   r   s    r   test_disallow_instantiationz*SelectTestCase.test_disallow_instantiation^   sH    ,,T43FG69%00tFNN<L7MN &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 X__S\\,,Y7AC	2C	2 W) )> X__NDDOr   r   c                  ,    t        j                          y )N)r   reap_childrenr   r   r   tearDownModulerl   d   s    r   __main__)r,   r    rB   r@   r>   rd   testr   requires_working_socketre   rf   TestCaser   rl   r   mainr   r   r   <module>rr      s       
      t ,#,,r"E)35UOX&& UO5UOn zHMMO r   