shell bypass 403
o
`b�$ �
@ s� d Z ddlZddlZddlZddlZddlZddlZeed�s$e�d��ze� � W n e
yB Z zejejkr=e�d��� dZ[ww G dd� dej
�ZedkrVe�� dS dS ) z
Tests for epoll wrapper.
� N�epollztest works only on Linux 2.6zkernel doesn't support epoll()c @ st e Zd Zdd� Zdd� Zdd� Zdd� Zd d
� Zdd� Zd
d� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� ZdS )� TestEPollc C s t �d�| _| jg| _d S )N)� 127.0.0.1r )�socket�
create_server�serverSocket�connections��self� r �8/usr/local/python-3.10/lib/python3.10/test/test_epoll.py�setUp+ s zTestEPoll.setUpc C s | j D ]}|�� qd S )N)r �close)r
Zsktr r r �tearDown/ s
�zTestEPoll.tearDownc
C s� t � � }|�d� z|�d| j�� d f� W t
d�� ty6 } z| �|jd tj � W Y d }~nd }~ww | j�� \}}| j�
||f� ||fS )NFr � r z&Connect should have raised EINPROGRESS)r �setblocking�connectr �getsockname�OSError�assertEqual�args�errnoZEINPROGRESS�AssertionError�acceptr �extend)r
�client�e�server�addrr r r �_connected_pair3 s
� ��zTestEPoll._connected_pairc
C s� zt �d�}W n ty } ztt|���d }~ww | �|�� dk|�� � | �|j � |�� | �|j� | � t
|j� tt d�r_t �dt j��� t jt jd��� t jdd��� d S d S )N� r �
EPOLL_CLOEXEC�����flags)
�selectr r r �str�
assertTrue�fileno�closedr �assertRaises�
ValueError�hasattrr! )r
�epr r r r �test_createA s ��
�zTestEPoll.test_createc C s� | � ttjddd� | � ttjd� | � ttjd � | � ttjd� | � ttjdg� | � ttji � | � ttjd� | � ttjd� | j ttjdd� ttd �r\| j ttjd
d� d S d S )Nr � � Zfoor r ���)�sizehintr! iD0 r# )r* � TypeErrorr% r r+ r, r r r r r �test_badcreateQ s
�zTestEPoll.test_badcreatec C sd t �d��}| �|�� d� | �|j� W d � n1 sw Y | �|j� | �t|j� d S )Nr r ) r% r Z
assertGreaterr( �assertFalser) r'