+
    üÐj´  ã                  ó˜   € R t ^ RIHt ^ RIt^ RIHt ^ RIHt  ^ RIH	t	H
t
 RtR R ltR	 R
 lt ! R R]4      tR#   ] d    Rt L$i ; i)z.
Tests for L{twisted.internet.kqueuereactor}.
)ÚannotationsN)Úimplementer)ÚTestCase)ÚKQueueReactorÚ_IKQueuezKQueue not available.c               ó$   € V ^8„  d   QhRRRRRR/# ©é   ÚargsÚobjectÚkwargsÚreturnÚNone© )Úformats   "ÚJ/usr/lib/python3/dist-packages/twisted/internet/test/test_kqueuereactor.pyÚ__annotate__r      s!   € ÷ ñ �vð ¨ð °Dñ ó    c                 ó   € R# )z
Do nothing.
Nr   )r
   r   s   *,r   Ú_fakeKEventr      s   ‚ r   c               ó$   € V ^8„  d   QhRRRRRR/# )r	   Ú
testKQueuer   Ú
testKEventr   r   r   )r   s   "r   r   r      s!   € ÷ ñ ˜vð °6ð ¸hñ r   c                óT   a a€ \        \        4       ! VV 3R lR4      4       pV! 4       # )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                  ó$   <€ ] tR t^'t Zt Z tRtR# )Ú"makeFakeKQueue.<locals>.FakeKQueuer   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚkqueueÚkeventÚ__static_attributes__)r   r   s   €€r   Ú
FakeKQueuer   '   s   ø† áˆÙŒr   r#   )r   r   )r   r   r#   s   ff r   ÚmakeFakeKQueuer$      s+   ù€ ô ”Ó÷ô ó ðñ ‹<Ðr   c                  ó*   € ] tR t^/tRt]tR R ltRtR# )ÚKQueueTestszŸ
These are tests for L{KQueueReactor}'s implementation, not its real world
behaviour. For that, look at
L{twisted.internet.test.reactormixins.ReactorBuilder}.
c               ó   € V ^8„  d   QhRR/# )r	   r   r   r   )r   s   "r   r   ÚKQueueTests.__annotate__8   s   € ÷ ñ ˜Dñ r   c                ón   €  ! R R4      p\        \        V\        4      4      pVP                  ^ 4       R# )zF
L{KQueueReactor} handles L{errno.EINTR} in C{doKEvent} by returning.
c                  ó&   € ] tR t^=tRtR R ltRtR# )Ú*KQueueTests.test_EINTR.<locals>.FakeKQueuezu
A fake KQueue that raises L{errno.EINTR} when C{control} is called,
like a real KQueue would if it was interrupted.
c               ó$   € V ^8„  d   QhRRRRRR/# r   r   )r   s   "r   r   Ú7KQueueTests.test_EINTR.<locals>.FakeKQueue.__annotate__C   s!   € ÷ :ñ : Vð :°vð :À$ñ :r   c                	ó6   € \        \        P                  R 4      h)ÚInterrupted)ÚOSErrorÚerrnoÚEINTR)Úselfr
   r   s   &*,r   ÚcontrolÚ2KQueueTests.test_EINTR.<locals>.FakeKQueue.controlC   s   € ÜœeŸk™k¨=Ó9Ð9r   r   N)r   r   r   r   Ú__doc__r4   r"   r   r   r   r#   r+   =   s   † ñ÷
:ñ :r   r#   N)r   r$   r   ÚdoKEvent)r3   r#   Úreactors   &  r   Ú
test_EINTRÚKQueueTests.test_EINTR8   s/   € ÷
	:ñ 	:ô  ¤¨z¼;Ó GÓHˆð 	×Ñ˜Ör   r   N)	r   r   r   r   r6   Ú
kqueueSkipÚskipr9   r"   r   r   r   r&   r&   /   s   † ñð €D÷ñ r   r&   )r6   Ú
__future__r   r1   Úzope.interfacer   Útwisted.trial.unittestr   Útwisted.internet.kqreactorr   r   r;   ÚImportErrorr   r$   r&   r   r   r   Ú<module>rB      sQ   ðñõ #ã å &å +ð)ßBà€Jõ
õô$�(ö øð9 ô )Ø(‚Jð)ús   š
= ½	A	ÁA	