B
    18™\–
  ã               @   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	   úT/oak/stanford/groups/akundaje/marinovg/programs/Python-3.7.3/Lib/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éÿÿÿÿ)ÚassertRaisesÚ	TypeErrorÚselectr   r   Ú
ValueError)r   r	   r	   r
   Útest_error_conditions   s
    z$SelectTestCase.test_error_conditionsÚfreebsdz*skip because of a FreeBSD bug: kern/155606c             C   s~   t tdƒj}| ¡ }| ¡  yt |gg g d¡ W n2 tk
rd } z|  |jtj¡ W d d }~X Y nX |  	d¡ W d Q R X 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   ÚassertIsNot)r   ÚrÚwÚxr	   r	   r
   Útest_returned_list_identity(   s    z*SelectTestCase.test_returned_list_identityc             C   s¾   d}t  |d¡}x dD ]˜}tjr*td|ƒ t |gg g |¡\}}}|||fg g g fkrXq|||f|gg g fkrž| ¡ }tjrˆtt|ƒƒ |stjrštdƒ P q|  d|||¡ qW | 	¡  d S )Nz?for i in 0 1 2 3 4 5 6 7 8 9; do echo testing...; sleep 1; doner&   )r   r   r   é   é   é   NNNNNNNNNNz	timeout =ZEOFz'Unexpected return values from select():)
ÚosÚpopenr   ÚverboseÚprintr   ÚreadlineÚreprr    r   )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   H   s    z4SelectTestCase.test_select_mutated.<locals>.F.filenoN)r   r   r   r   r	   )r9   r	   r
   ÚFG   s   r:   é
   é   )r   r   )r   r:   r	   )r9   r
   Útest_select_mutatedE   s    z"SelectTestCase.test_select_mutatedN)r   r   r   r   r   r   ÚunittestÚskipIfr7   ÚplatformÚ
startswithr$   r)   r6   r=   r	   r	   r	   r
   r      s   r   c               C   s   t  ¡  d S )N)r   Úreap_childrenr	   r	   r	   r
   ÚtearDownModuleN   s    rC   Ú__main__)r   r-   r   r7   r>   Útestr   r?   r@   ÚTestCaser   rC   r   Úmainr	   r	   r	   r
   Ú<module>   s   
D