
    ;e                         d dl Z d dlZd dlZd dlZd dlmZ  eed          s ej        d          d Z G d dej	                  Z
edk    r ej                     dS dS )	    N)cpython_onlydevpollz$test works only on Solaris OS familyc                 N    g }| D ]\  }}||z  r|                     |            |S )N)append)readyflagmatchfdmodes        (/usr/lib/python3.11/test/test_devpoll.pyfind_ready_matchingr      s>    E  D$; 	LLL    c                   B    e Zd Zd Zd Zd Zd Zd Zed             Z	dS )DevPollTestsc                 D   t          j                    }d}d}t          |          }g }g }i }i }t          |          D ]}	t	          j                    \  }
}|                    |
           |                    |
t           j                   |                    |t           j	                   |
                    |
           |
                    |           |||
<   |
||<   g }|r|                                }t          |t           j	                  }|s|                     d           t          j        |          }t	          j        ||           |                                }t          |t           j                  }|s|                     d           |                     ||         g|           |d         }
t	          j        |
|          }|                     t          |          |           |
                    |           t	          j        ||
                    t	          j        |
           |                    ||
                    |                    |
           |                    ||
                    ||                     ||g|z             d S )N   s    This is a test.zno pipes ready for writingzno pipes ready for readingr   )selectr   lenrangeospiperegistermodifyPOLLINPOLLOUTr   pollr   failrandomchoicewriteassertEqualreadclose
unregisterremove)selfp	NUM_PIPESMSGMSG_LENreaderswritersr2ww2rirdwrbufsr   ready_writersready_readersbufs                    r   test_devpoll1zDevPollTests.test_devpoll1   se    N	!c((y!! 	 	AWYYFBJJrNNNHHR'''JJr6>***NN2NN2CGCGG 	$FFHHE/v~FFM  8		6777}--BHRFFHHE/v}EEM  8		6777c"gY666q!B'"g&&CSXXw///KKHSWLLR!!!LLNN3r7###)  	$, 	uy011111r   c                    t          j                    }t          j                    \  }}|                    |           |                    d           |                     t          |j        d           |                     t          |j        d           |                     t          |j        d           |                    d           |                    d           |                    d           |                     t          |j        d           |                     t          |j        d	           |                     t          |j        d
           d S )Ni   l         r      i   @l        l                        )r   r   r   r   r   r   assertRaisesOverflowErrorr&   pollsterwrs       r   test_timeout_overflowz"DevPollTests.test_timeout_overflowJ   s   >##wyy1!b-;;;-AAA-AAAaag-@@@-@@@-@@@@@r   c                 6   t          t          d          }|                     |j                   |                                }t          j                    }|                     |                                t                     | 	                    |j
                   |                                 |                     |j
                   |                     t          |j                   |                                 |                     t          |j        |t
          j                   |                     t          |j                   |                     t          |j        |t
          j                   |                     t          |j        |           d S )Nrb)open__file__
addCleanupr#   filenor   r   assertIsInstanceintassertFalseclosed
assertTruer<   
ValueErrorr   r   r   r   r$   )r&   	open_filer
   r   s       r   
test_closezDevPollTests.test_close[   s=   4((		(((."" 	gnn..444((( 	'''*gn555 	 	*gnb&-HHH*gl333*g&6FMJJJ*g&8"=====r   c                     t          j                    }|                     |j                   |                     t          j        |                                          d           d S )NF)r   r   rG   r#   r!   r   get_inheritablerH   )r&   r   s     r   test_fd_non_inheritablez$DevPollTests.test_fd_non_inheritables   sT    .""&&&+GNN,<,<==uEEEEEr   c                    t          j                    }t          j                    \  }}|                    |           |                     t          |j        dd           |                     t          |j        dd           |                     t          |j        dd           |                     t          |j        dd           d S )Nr   r8   r;   r:   )	r   r   r   r   r   r<   rN   r=   r   r>   s       r   test_events_mask_overflowz&DevPollTests.test_events_mask_overflowx   s    >##wyy1!*h&7B???-):AwGGG*hoq"===-!WEEEEEr   c                 "   ddl m} t          j                    }t	          j                    \  }}|                    |           |                     t          |j        d|dz              |                     t          |j	        d|dz              d S )Nr   )	USHRT_MAXr:   )
	_testcapirW   r   r   r   r   r   r<   r=   r   )r&   rW   r?   r@   rA   s        r   "test_events_mask_overflow_c_limitsz/DevPollTests.test_events_mask_overflow_c_limits   s    ''''''>##wyy1!-):Ay1}MMM-!Y]KKKKKr   N)
__name__
__module____qualname__r6   rB   rP   rS   rU   r   rY    r   r   r   r      s        02 02 02dA A A"> > >0F F F
F F F L L \L L Lr   r   __main__)r   r   r   unittesttest.supportr   hasattrSkipTestr   TestCaser   rZ   mainr]   r   r   <module>re      s   
 
			    % % % % % %wvy!! D
(
B
C
CC  tL tL tL tL tL8$ tL tL tLn zHMOOOOO r   