shell bypass 403
o
ab# � @ sr d Z ddlZddlZddlZddlZddlZddlZeed�s$e�d��G dd� dej �Z
edkr7e�� dS dS )z
Tests for kqueue wrapper.
� N�kqueueztest works only on BSDc @ sD e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dS )�
TestKQueuec C sT t �� }| �|�� dk|�� � | �|j � |�� | �|j� | �t|j� d S �Nr )�selectr �
assertTrue�fileno�closed�close�assertRaises�
ValueError)�self�kq� r �9/usr/local/python-3.10/lib/python3.10/test/test_kqueue.py�test_create_queue s zTestKQueue.test_create_queuec
C s& ddl m}m}m}m} t�tjtj�}| � tj
|� t�|�}t�d�}| �
|j|� | �
|jtj� | �
|jtj� | �
|jd� | �
|jd� | �
|jd� | �
||� | �||� | �||k � | �||k� ||||fD ]}| �t||d � | �t||d� | �t||d� qqt�|tj�}| �
|j|� | �
|jtj� | �
|jtj� | �
|jd� | �
|jd� | �
|jd� | �
||� | �||� t�|tjtj�}| �
|j|� | �
|jtj� | �
|jtj� | �
|jd� | �
|jd� | �
|jd� | �
||� | �||� t�ddddd d
�}| �
|jd� | �
|jd� | �
|jd� | �
|jd� | �
|jd � | �
|jd
� | �
||� | �||� d} t�| ddd| d | �}| �
|j| � | �
|jd� | �
|jd� | �
|jd� | �
|j| d � | �
|j| � | �
||� | �||� d} t�dd| �}| �
|jd� | �
|jd� | �
|j| � | �
|jd� | �
|jd� | �
|jd� | �
||� | �||� d
} t�ddd| �}| �
|jd� | �
|jd� | �
|jd� | �
|j| � | �
|jd� | �
|jd� | �
||� | �||� d S )Nr )�lt�le�gt�gei� � �ev� � � � � i� i�� l �� )�operatorr r r r �os�open�devnull�O_WRONLY�
addCleanupr r �kevent�assertEqual�ident�filter�KQ_FILTER_READ�flags� KQ_EV_ADDZfflags�dataZudataZassertNotEqualr r
� TypeError�KQ_FILTER_WRITEZ
KQ_EV_ONESHOT)
r r r r r �fdr �other�opZbignumr r r �test_create_event s�
zTestKQueue.test_create_eventc
C s� t �d�}t � � }|�d� z
|�d|�� d f� W n ty7 } z| �|jd tj � W Y d }~nd }~ww |�
� \}}t�� }tj�
|�� �}t�|�� tjtjtjB �}|�|gd� t�|�� tjtjtjB �}|�|gd� t�|�� tjtjtjB �}|�|gd� t�|�� tjtjtjB �}|�|gd� |�d dd�} tdd� | D ��} | �| t|�� tjf|�� tjfg�� |�d � |�d
� td�D ]}
|�d dd�} t| �dkr� q�t�d� q�| �d
� tdd� | D ��} | �| t|�� tjf|�� tjf|�� tjf|�� tjfg�� t�|�� tjtj�}|�|gd� t�|�� tjtj�}|�|gd� t�|�� tjtj�}|�|gdd� |�g dd�} tdd� | D ��} | �| t|�� tjfg�� |�� |�� |�� d S )N)� 127.0.0.1r Fr0 r r r c s � � | ] }|j |jfV qd S �N�r$ r% ��.0�er r r � <genexpr>� � � z.TestKQueue.test_queue_event.<locals>.<genexpr>s Hello!s world!!!�
g �?z'timeout waiting for event notificationsc s r1 r2 r3 r4 r r r r7 � r8 g�G�z��?c s r1 r2 r3 r4 r r r r7 � r8 )�socket�
create_server�setblocking�connect�getsockname�OSErrorr# �args�errnoZEINPROGRESS�acceptr r �fromfdr r"