Ë
    pPêji  ã                  ó¤   — d dl mZ d dlZd dlZd dlmZmZ d dlmZm	Z	 d dl
Z
d dlmZmZ dZdd„Zdd„Zdd	„Z G d
„ de«      Zedk(  r e	«        yy)é    )ÚannotationsN)ÚQueueÚget_context)ÚTestCaseÚmain)Ú	IPCClientÚ	IPCServerzdmypy-test-ipcc                óö   — t        t        «      }|j                  |j                  «       d}|s/|5  |j	                  | «       |j                  «       }d d d «       |sŒ/|j                  «        y # 1 sw Y   ŒxY w)NÚ )r	   ÚCONNECTION_NAMEÚputÚconnection_nameÚwriteÚreadÚcleanup©ÚmsgÚqÚserverÚdatas       úV/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/test/testipc.pyr   r      sf   € Ü”Ó'€FØ‡E�Eˆ&×
 Ñ
 Ô!Ø€DÙØñ 	!Ø�L‰L˜ÔØ—;‘;“=ˆD÷	!ò ð ‡N�NÕ÷	!ð 	!ús   ±"A/Á/A8c                ó  — t        t        «      }| j                  |j                  «       d}|5  |dk7  r'|j	                  «       }|j                  |«       |dk7  rŒ'd d d «       |j                  «        y # 1 sw Y   ŒxY w)Nr   Úquit©r	   r   r   r   r   r   r   )r   r   r   s      r   Úserver_multi_message_echor      sn   € Ü”Ó'€FØ‡E�Eˆ&×
 Ñ
 Ô!Ø€DØ	ñ Ø�fŠnØ—;‘;“=ˆDØ�L‰L˜Ôð �f‹n÷ð ‡N�NÕ÷	ð ús   ¯,A5Á5A>c                óò   — t        t        d¬«      }|j                  |j                  «       |5  |j	                  «       }|j                  || z   «       ddd«       |j                  «        y# 1 sw Y   ŒxY w)zÔServe a client that takes longer to speak than the connection timeout.

    The timeout bounds accepting a connection, not the traffic after it, so the
    read below must wait however long the client needs.
    é   ©ÚtimeoutNr   r   s       r   Úserver_with_short_timeoutr    %   sa   € ô ”°Ô2€FØ‡E�Eˆ&×
 Ñ
 Ô!Ø	ñ !Ø�{‰{‹}ˆØ�‰�T˜C‘ZÔ ÷!ð ‡N�NÕ÷!ð !ús   ¯%A-Á-A6c                  ón   — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„Zej                  j                  dd„«       Zy)	ÚIPCTestsc                ól   — t         j                  dk(  rt        d«      | _        y t        d«      | _        y )NÚlinuxÚ
forkserverÚspawn)ÚsysÚplatformr   Úctx)Úselfs    r   ÚsetUpzIPCTests.setUp4   s&   € Ü�<‰<˜7Ò"ä" <Ó0ˆD�Hä" 7Ó+ˆD�Hó    c                óº  — | j                   j                  «       }ddz  }| j                   j                  t        ||fd¬«      }|j	                  «        |j                  «       }t        |d¬«      5 }|j                  «       |k(  sJ ‚|j                  d«       d d d «       |j                  «        |j                  «        |j                  «        y # 1 sw Y   Œ:xY w)NÚti@ T©ÚtargetÚargsÚdaemonr   r   Útest)r)   r   ÚProcessr   ÚstartÚgetr   r   r   ÚcloseÚjoin_threadÚjoin©r*   Úqueuer   Úpr   Úclients         r   Útest_transaction_largezIPCTests.test_transaction_large;   s¯   € Ø ŸH™HŸN™NÓ,ˆØ�F‰lˆØ�H‰H×Ñ¤F°#°u°ÀdÐÓKˆØ	�‰Œ	ØŸ)™)›+ˆÜ�°Ô2ð 	!°fØ—;‘;“= CÒ'Ð'Ð'Ø�L‰L˜Ô ÷	!ð 	�‰ŒØ×ÑÔØ	�‰�÷	!ð 	!ús   Á1'CÃCc                óf  — | j                   j                  «       }d}| j                   j                  t        ||fd¬«      }|j	                  «        |j                  «       }t        |d¬«      5 }|j                  «       |k(  sJ ‚|j                  d«       d d d «       t        |d¬«      5 }|j                  «       |k(  sJ ‚|j                  d«       d d d «       |j                  «        |j                  «        |j                  «        |j                  dk(  sJ ‚y # 1 sw Y   Œ‡xY w# 1 sw Y   ŒWxY w)	Nzthis is a test messageTr/   r   r   r   r3   r   )r)   r   r4   r   r5   r6   r   r   r   r7   r8   r9   Úexitcoder:   s         r   Útest_connect_twicezIPCTests.test_connect_twiceH   sþ   € Ø ŸH™HŸN™NÓ,ˆØ&ˆØ�H‰H×Ñ¤F°#°u°ÀdÐÓKˆØ	�‰Œ	ØŸ)™)›+ˆÜ�°Ô2ð 	°fØ—;‘;“= CÒ'Ð'Ð'Ø�L‰L˜Ô÷	ô �°Ô2ð 	!°fØ—;‘;“= CÒ'Ð'Ð'Ø�L‰L˜Ô ÷	!ð 	�‰ŒØ×ÑÔØ	�‰ŒØ�z‰z˜QŠÐ‰÷	ð 	ú÷	!ð 	!ús   Á.'DÂ*'D'ÄD$Ä'D0c                ó   — | j                   j                  «       }| j                   j                  t        |fd¬«      }|j	                  «        |j                  «       }t        |d¬«      5 }d}|j                  |j                  d«      «       |j                  «       |j                  d«      k(  sJ ‚|j                  d«       |j                  d«       t        j                  d	«       |j                  «       dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  d
«       |j                  «       d
k(  sJ ‚	 d d d «       |j                  «        |j                  «        |j                  «        |j                  d	k(  sJ ‚y # 1 sw Y   ŒKxY w)NTr/   r   r   s   fÌ¶oÌ²ð�‘œ Ð²â·¡aÌ¶rÌ“Í˜ÍŒzutf-8zTest with spacesz"Test write before reading previousr   r   )r)   r   r4   r   r5   r6   r   r   Údecoder   ÚtimeÚsleepr7   r8   r9   r@   )r*   r;   r<   r   r=   Ú
fancy_texts         r   Útest_multiple_messageszIPCTests.test_multiple_messagesZ   sC  € Ø ŸH™HŸN™NÓ,ˆØ�H‰H×ÑÔ$=ÀUÀHÐUYÐÓZˆØ	�‰Œ	ØŸ)™)›+ˆÜ�°Ô2ð 	+°fð vˆJØ�L‰L˜×*Ñ*¨7Ó3Ô4Ø—;‘;“= J×$5Ñ$5°gÓ$>Ò>Ð>Ð>à�L‰LÐ+Ô,Ø�L‰LÐ=Ô>Ü�J‰J�qŒMØ—;‘;“=Ð$6Ò6Ð6Ð6Ø—;‘;“=Ð$HÒHÐHÐHà�L‰L˜Ô Ø—;‘;“= FÒ*Ð*Ñ*÷	+ð 	�‰ŒØ×ÑÔØ	�‰ŒØ�z‰z˜QŠÐ‰÷%	+ð 	+ús   Á+CFÆFc                ó  — | j                   j                  «       }d}| j                   j                  t        ||fd¬«      }|j	                  «        |j                  «       }t        |d¬«      5 }t        j                  d«       |j                  d«       |j                  «       d|z   k(  sJ ‚	 d d d «       |j                  «        |j                  «        |j                  «        |j                  dk(  sJ ‚y # 1 sw Y   ŒKxY w)	Nz
 -- echoedTr/   r   r   g      @Úhellor   )r)   r   r4   r    r5   r6   r   rD   rE   r   r   r7   r8   r9   r@   r:   s         r   Ú3test_server_timeout_does_not_apply_after_connectingz<IPCTests.test_server_timeout_does_not_apply_after_connectings   sÎ   € ð !ŸH™HŸN™NÓ,ˆØˆØ�H‰H×ÑÔ$=ÀSÈ%ÀLÐY]ÐÓ^ˆØ	�‰Œ	ØŸ)™)›+ˆÜ�°Ô2ð 	2°fä�J‰J�sŒOØ�L‰L˜Ô!Ø—;‘;“= G¨c¡MÒ1Ð1Ñ1÷		2ð
 	�‰ŒØ×ÑÔØ	�‰ŒØ�z‰z˜QŠÐ‰÷	2ð 	2ús   Á.?C8Ã8Dc                óœ  — t        j                   «       }t        d«      D ]b  }	 t        |d«       | j                  «        t        j                   «       }t        |||z
  «       t        j
                  j                  «        |}Œd y # t        j                   «       }t        |||z
  «       t        j
                  j                  «        |}w xY w)Niè  r5   )rD   ÚrangeÚprintrA   r'   ÚstdoutÚflush)r*   Út0ÚiÚt1s       r   Útest_connect_alotzIPCTests.test_connect_alot‹   s›   € ä�Y‰Y‹[ˆÜ�t“ò 	ˆAðÜ�a˜Ô!Ø×'Ñ'Ô)ä—Y‘Y“[�Ü�a˜˜b™Ô!Ü—
‘
× Ñ Ô"Ø‘ñ	øô
 —Y‘Y“[�Ü�a˜˜b™Ô!Ü—
‘
× Ñ Ô"Ø‘ús   ¤BÂACN)ÚreturnÚNone)Ú__name__Ú
__module__Ú__qualname__r+   r>   rA   rG   rJ   ÚpytestÚmarkÚskiprS   © r,   r   r"   r"   3   s9   „ ó,óóó$ó2ð0 ‡[�[×Ñò
ó ñ
r,   r"   Ú__main__)r   Ústrr   ú
Queue[str]rT   rU   )r   r_   rT   rU   )Ú
__future__r   r'   rD   Úmultiprocessingr   r   Úunittestr   r   rY   Úmypy.ipcr   r	   r   r   r   r    r"   rV   r\   r,   r   ú<module>rd      sQ   ðÝ "ã 
Û ß .ß #ã ç )à"€óóóôcˆxô cðL ˆzÒÙ…Fð r,   