HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //usr/lib/python3/dist-packages/twisted/internet/test/__pycache__/test_sigchld.cpython-38.pyc
U


W[_�@s�dZddlmZmZddlZddlZddlZddlmZddl	m
Z
ddlmZedkrvddl
mZdd	lmZmZnd
ZGdd�de�ZdS)
zX
Tests for L{twisted.internet._sigchld}, an alternate, superior SIGCHLD
monitoring API.
�)�division�absolute_importN)�platformType)�msg)�SynchronousTestCase�posix)�setNonBlocking)�installHandler�isDefaultHandlerz,These tests can only run on POSIX platforms.c@sHeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�SetWakeupSIGCHLDTestszy
    Tests for the L{signal.set_wakeup_fd} implementation of the
    L{installHandler} and L{isDefaultHandler} APIs.
    cCs@t��\}}|�tj|�|�tj|�t|�t|�||fS)zk
        Create a non-blocking pipe which will be closed after the currently
        running test.
        )�os�pipeZ
addCleanup�closer��self�read�write�r�D/usr/lib/python3/dist-packages/twisted/internet/test/test_sigchld.pyr
szSetWakeupSIGCHLDTests.pipecCsjt�tj�}|tjkr.||_t�tjtj�nd|_td�|_|jdk	rf|jdkrftd|j|jf�dS)z�
        Save the current SIGCHLD handler as reported by L{signal.signal} and
        the current file descriptor registered with L{installHandler}.
        N���z<Previous test didn't clean up after its SIGCHLD setup: %r %r)�signal�	getsignal�SIGCHLD�SIG_DFL�signalModuleHandlerr	�oldFDr)rZhandlerrrr�setUp*s


�zSetWakeupSIGCHLDTests.setUpcCsLtd�t�tjtj�|jdk	r4t�tj|j�n|jdkrHt|j�dS)zM
        Restore whatever signal handler was present when setUp ran.
        rN)r	rrrrr�rrrr�tearDown=s

zSetWakeupSIGCHLDTests.tearDowncCsf|�t��t�tjtj�|�t��t�tjtj�|�t��t�tjdd��|�t��dS)zn
        L{isDefaultHandler} returns true if the SIGCHLD handler is SIG_DFL,
        false otherwise.
        cWsdS)Nr)�argsrrr�<lambda>V�z=SetWakeupSIGCHLDTests.test_isDefaultHandler.<locals>.<lambda>N)�
assertTruer
rr�SIG_IGN�assertFalserrrrr�test_isDefaultHandlerLsz+SetWakeupSIGCHLDTests.test_isDefaultHandlercCs(|��\}}t|�}|�t|�|�dS)zV
        L{installHandler} returns the previously registered file descriptor.
        N)r
r	�assertEqual)rrrrrrr�test_returnOldFDZsz&SetWakeupSIGCHLDTests.test_returnOldFDcCsD|��\}}|�t��t|�|�t��td�|�t��dS)zO
        C{installHandler(-1)} removes the SIGCHLD handler completely.
        rN)r
r"r
r	r$rrrr�test_uninstallHandlercsz+SetWakeupSIGCHLDTests.test_uninstallHandlercCsd|��\}}t|�|�ttj|d�}|�|jtj�t�	t�
�tj�|�t
t�|d��d�dS)z�
        The file descriptor passed to L{installHandler} has a byte written to
        it when SIGCHLD is delivered to the process.
        ��N)r
r	ZassertRaises�OSErrorrrr&�errnoZEAGAIN�kill�getpidrr�len)rrr�excrrr�test_installHandlerosz)SetWakeupSIGCHLDTests.test_installHandlerN)�__name__�
__module__�__qualname__�__doc__r
rrr%r'r(r1rrrrrs
	r)r5Z
__future__rrrrr,Ztwisted.python.runtimerZtwisted.python.logrZtwisted.trial.unittestrZtwisted.internet.fdescrZtwisted.internet._signalsr	r
�skiprrrrr�<module>s