§
    Ètºf´  ã                  ó”   — d Z ddlmZ ddlZddlmZ ddlmZ 	 ddlm	Z	m
Z
 dZn# e$ r dZY nw xY wdd„Zdd„Z G d„ de¦  «        ZdS )z.
Tests for L{twisted.internet.kqueuereactor}.
é    )ÚannotationsN)Úimplementer)ÚTestCase)ÚKQueueReactorÚ_IKQueuezKQueue not available.ÚargsÚobjectÚkwargsÚreturnÚNonec                 ó   — dS )z
    Do nothing.
    N© )r   r
   s     úg/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/twisted/internet/test/test_kqueuereactor.pyÚ_fakeKEventr      s   € € € ó    Ú
testKQueueÚ
testKEventr   c                ón   ‡ ‡— t          t          ¦  «         G ˆˆ fd„d¦  «        ¦   «         } |¦   «         S )a  
    Create a fake that implements L{_IKQueue}.

    @param testKQueue: Something that acts like L{select.kqueue}.
    @param testKEvent: Something that acts like L{select.kevent}.
    @return: An implementation of L{_IKQueue} that includes C{testKQueue} and
        C{testKEvent}.
    c                  ó   •— e Zd Z”Z” ZdS )ú"makeFakeKQueue.<locals>.FakeKQueueN)Ú__name__Ú
__module__Ú__qualname__ÚkqueueÚkevent)r   r   s   €€r   Ú
FakeKQueuer   '   s   ø€ € € € € àˆØˆˆˆr   r   )r   r   )r   r   r   s   `` r   ÚmakeFakeKQueuer      s^   øø€ õ •ÑÔðð ð ð ð ð ð ð ñ ô ñ Ôðð ˆ:‰<Œ<Ðr   c                  ó   — e Zd ZdZeZdd„ZdS )ÚKQueueTestsz¯
    These are tests for L{KQueueReactor}'s implementation, not its real world
    behaviour. For that, look at
    L{twisted.internet.test.reactormixins.ReactorBuilder}.
    r   r   c                óŽ   —  G d„ d¦  «        }t          t          |t          ¦  «        ¦  «        }|                     d¦  «         dS )zV
        L{KQueueReactor} handles L{errno.EINTR} in C{doKEvent} by returning.
        c                  ó   — e Zd ZdZd	d„ZdS )
ú*KQueueTests.test_EINTR.<locals>.FakeKQueuez™
            A fake KQueue that raises L{errno.EINTR} when C{control} is called,
            like a real KQueue would if it was interrupted.
            r   r	   r
   r   r   c                ó6   — t          t          j        d¦  «        ‚)NÚInterrupted)ÚOSErrorÚerrnoÚEINTR)Úselfr   r
   s      r   Úcontrolz2KQueueTests.test_EINTR.<locals>.FakeKQueue.controlC   s   € Ý�eœk¨=Ñ9Ô9Ð9r   N©r   r	   r
   r	   r   r   )r   r   r   Ú__doc__r)   r   r   r   r   r"   =   s2   € € € € € ðð ð
:ð :ð :ð :ð :ð :r   r   r   N)r   r   r   ÚdoKEvent)r(   r   Úreactors      r   Ú
test_EINTRzKQueueTests.test_EINTR8   s_   € ð
	:ð 	:ð 	:ð 	:ð 	:ñ 	:ô 	:ð 	:õ  ¥¨z½;Ñ GÔ GÑHÔHˆð 	×Ò˜ÑÔÐÐÐr   N)r   r   )r   r   r   r+   Ú
kqueueSkipÚskipr.   r   r   r   r   r   /   s9   € € € € € ðð ð €Dðð ð ð ð ð r   r   r*   )r   r	   r   r	   r   r   )r+   Ú
__future__r   r&   Úzope.interfacer   Útwisted.trial.unittestr   Útwisted.internet.kqreactorr   r   r/   ÚImportErrorr   r   r   r   r   r   ú<module>r6      sô   ððð ð #Ð "Ð "Ð "Ð "Ð "à €€€à &Ð &Ð &Ð &Ð &Ð &à +Ð +Ð +Ð +Ð +Ð +ð)ØBÐBÐBÐBÐBÐBÐBÐBà€J€JøØð )ð )ð )Ø(€J€J€Jð)øøøðð ð ð ðð ð ð ð$ð ð ð ð �(ñ ô ð ð ð s   š
% ¥/®/