
    6\h+                        d dl Z d dlZd dlZd dlZd dlZd dlmZ  ed          Z ej         e	ed          d           G d dej
                              Z G d d	ej
                  Zed
k    r ej                     dS dS )    N)import_moduletermiosopenptyzneed os.openpty()c                   z    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestFunctionsc                 ^   t          j                    \  }| _        |                     t           j        |           |                     t          | j        dd                    | _        |                     t          j	        dd                    }|
                                | _        d S )Nwbr   )	buffering)moder
   )osr   fd
addCleanupcloseenterContextopenstreamtempfileTemporaryFilefilenobad_fd)self	master_fdtmps      ;/opt/python-3.11.14/usr/lib/python3.11/test/test_termios.pysetUpzTestFunctions.setUp   s    Z\\	47),,,''TWda(H(H(HII 6DA N N NOOjjll    c                     |                      t          j                  5 } ||  d d d            n# 1 swxY w Y   |                     |j        j        d         |           d S )Nr   )assertRaisesr   errorassertEqual	exceptionargs)r   errnocallabler"   cms        r   assertRaisesTermiosErrorz&TestFunctions.assertRaisesTermiosError   s    w}-- 	HdOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	*1-u55555s   266c                 t   t                               | j                  }|                     |t                     |                     t          |          d           t          d          D ]#}|                     ||         t                     $|\  }}}}}}}	|                     |	t                     |                     t          |	          t           j	                   t          |	          D ]\  }}
|t           j        z  dk    r<|t           j        k    s|t           j        k    r|                     |
t                     T|                     |
t                     |                     t          |
          d           |                     t                               | j                  |           d S )N      r      )r   	tcgetattrr   assertIsInstancelistr    lenrangeintNCCS	enumerateICANONVMINVTIMEbytesr   )r   attrsiiflagoflagcflaglflagispeedospeedccxs              r   test_tcgetattrzTestFunctions.test_tcgetattr   s   !!$'**eT***UQ'''q 	1 	1A!!%(C00009>6ueUFFBb$'''R',///bMM 	, 	,DAq'A--gl""a7=&8&8%%a----%%a///  Q++++**4;77?????r   c                    |                      t          j        t          j        | j                   |                     t          t          j        d           |                     t          t          j        ddz             |                     t          t          j        t                                 |                     t          t          j                   d S N     )r&   r#   ENOTTYr   r+   r   r   
ValueErrorOverflowError	TypeErrorobjectr   s    r   test_tcgetattr_errorsz#TestFunctions.test_tcgetattr_errors,   s    %%elG4Et{SSS*g&7<<<-):AtGDDD)W%6AAA)W%677777r   c                    t                               | j                  }t                               | j        t           j        |           t                               | j        t           j        |           t                               | j        t           j        |           t                               | j        t           j        |           d S N)r   r+   r   	tcsetattrTCSANOW	TCSADRAIN	TCSAFLUSHr   )r   r7   s     r   test_tcsetattrzTestFunctions.test_tcsetattr3   s    !!$'**$'7?E:::$'7#4e<<<$'7#4e<<<$+w>>>>>r   c           
      N   t                               | j                  }|                     t          t           j        | j        t           j        t          |                     |                     t          t           j        | j        t           j        |d d                    |                     t          t           j        | j        t           j        |dgz              t          d          D ]}|d d          }ddz  ||<   |                     t          t           j        | j        t           j        |           t                      ||<   |                     t          t           j        | j        t           j        |           |                     t          t           j        | j        t           j        |d d         |d         d d         gz              |                     t          t           j        | j        t           j        |d d         |d         dgz   gz              t          t          |d                             D ]7}|d d          }|d         d d          |d<   ddz  |d         |<   |                     t          t           j        | j        t           j        |           t                      |d         |<   |                     t          t           j        | j        t           j        |           d|d         |<   |                     t          t           j        | j        t           j        |           d|d         |<   |                     t          t           j        | j        t           j        |           9|                     t          t           j        | j        t           j        t                                 |                     t          t           j        | j        t           j                   |                     t          j        t           j        | j        d|           |                     t          t           j        | j        ddz  |           |                     t          t           j        | j        t                      |           |                     t          j        t           j        | j        t           j        |           |                     t"          t           j        dt           j        |           |                     t          t           j        ddz  t           j        |           |                     t          t           j        t                      t           j        |           |                     t          t           j        | j        t           j                   d S )	NrD   r   r)   rE   rF       r   s     )r   r+   r   r   rJ   rP   rQ   tupler/   rI   rK   r.   r&   r#   EINVALrG   r   rH   )r   r7   r8   attrs2s       r   test_tcsetattr_errorsz#TestFunctions.test_tcsetattr_errors:   sG   !!$'**)W%6RWX]R^R^___)W%6RWX[Y[X[R\]]])W%6RW[\Z]R]^^^q 	^ 	^A111XF4F1ImW->Z`aaaF1Ii):DGW_V\]]]])W%6RWX[Y[X[R\`efh`ijmkmjm`n_oRoppp)W%6RWX[Y[X[R\`efh`imrls`s_tRtuuus59~~&& 
	^ 
	^A111XFAAAF2JtGF2JqMmW->Z`aaa"HHF2JqMi):DGW_V\]]]F2JqMi):DGW_V\]]]#F2JqMi):DGW_V\]]]])W%6RXRZRZ[[[)W%6QQQ%%elG4EtwPRTYZZZ-):DGQWeTTT)W%65QQQ%%elG4Et{T[Tcejkkk*g&7W_eTTT-):AtGW_V[\\\)W%6'/SXYYY)W%6QQQQQr   c                 X   	 t                               | j        d           ng# t           j        $ rU}|j        d         t
          j        k    r4t          j        	                    d          r| 
                    d            d }~ww xY wt                               | j        d           d S )Nr*   r   freebsdzQtermios.tcsendbreak() is not supported with pseudo-terminals (?) on this platform)r   tcsendbreakr   r   r"   r#   rG   sysplatform
startswithskipTestr   )r   excs     r   test_tcsendbreakzTestFunctions.test_tcsendbreak]   s    	++++} 	 	 	x{el**s|/F/Fy/Q/Q* K L L L		
 	DK+++++s    # BABBc                    |                      t          t          j        | j        ddz             |                      t
          t          j        | j        d           |                      t
          t          j        | j        t                                 |                     t          j	        t          j        | j
        d           |                      t          t          j        dd           |                      t          t          j        ddz  d           |                      t
          t          j        t                      d           |                      t
          t          j        | j                   d S )NrE   rF   g        r   rD   )r   rI   r   r]   r   rJ   rK   r&   r#   rG   r   rH   rL   s    r   test_tcsendbreak_errorsz%TestFunctions.test_tcsendbreak_errorsg   s   -)<dgq$wOOO)W%8$'3GGG)W%8$'688LLL%%elG4GVWXXX*g&92qAAA-)<agqIII)W%8&((AFFF)W%8$'BBBBBr   c                     t                               | j                   t                               | j                   d S rO   )r   tcdrainr   r   rL   s    r   test_tcdrainzTestFunctions.test_tcdrainq   s0       $$$$$r   c                    |                      t          j        t          j        | j                   |                     t          t          j        d           |                     t          t          j        ddz             |                     t          t          j        t                                 |                     t          t          j                   d S rC   )r&   r#   rG   r   rg   r   r   rH   rI   rJ   rK   rL   s    r   test_tcdrain_errorsz!TestFunctions.test_tcdrain_errorsu   s    %%elGOT[QQQ*gor:::-!T'BBB)W_fhh???)W_55555r   c                    t                               | j        t           j                   t                               | j        t           j                   t                               | j        t           j                   d S rO   )r   tcflushr   TCIFLUSHTCOFLUSH	TCIOFLUSHrL   s    r   test_tcflushzTestFunctions.test_tcflush|   sS    !1222!1222!233333r   c                 F   |                      t          j        t          j        | j        d           |                     t          t          j        | j        ddz             |                     t          t          j        | j        t                                 |                      t          j
        t          j        | j        t          j                   |                     t          t          j        dt          j                   |                     t          t          j        ddz  t          j                   |                     t          t          j        t                      t          j                   |                     t          t          j        | j                   d S rC   )r&   r#   rX   r   rl   r   r   rI   rJ   rK   rG   r   rm   rH   rL   s    r   test_tcflush_errorsz!TestFunctions.test_tcflush_errors   s   %%elGOTWbQQQ-$'1d7KKK)W_dgvxxHHH%%elGOT[RYRbccc*gor7;KLLL-!T'7CSTTT)W_fhh@PQQQ)W_dg>>>>>r   c                 V   t                               | j        t           j                   t                               | j        t           j                   t                               | j        t           j                   t                               | j        t           j                   d S rO   )r   tcflowr   TCOOFFTCOONTCIOFFTCIONrL   s    r   test_tcflowzTestFunctions.test_tcflow   sh    tw///tw...tw///tw.....r   c                 F   |                      t          j        t          j        | j        d           |                     t          t          j        | j        ddz             |                     t          t          j        | j        t                                 |                      t          j
        t          j        | j        t          j                   |                     t          t          j        dt          j                   |                     t          t          j        ddz  t          j                   |                     t          t          j        t                      t          j                   |                     t          t          j        | j                   d S rC   )r&   r#   rX   r   rt   r   r   rI   rJ   rK   rG   r   rv   rH   rL   s    r   test_tcflow_errorsz TestFunctions.test_tcflow_errors   s   %%elGNDGRPPP-!T'JJJ)W^TWfhhGGG%%elGNDKQXQ^___*gnb'-HHH-D'-PPP)W^VXXw}MMM)W^TW=====r   c                    t                               | j                  }|                     |t                     |                     t          |          d           |                     |d         t                     |                     |d         t                     |                     t                               | j                  |           d S )NrE   r   r*   )	r   tcgetwinsizer   r,   rW   r    r.   r0   r   r   sizes     r   test_tcgetwinsizezTestFunctions.test_tcgetwinsize   s    ##DG,,dE***TA&&&d1gs+++d1gs+++--dk::DAAAAAr   c                    |                      t          j        t          j        | j                   |                     t          t          j        d           |                     t          t          j        ddz             |                     t          t          j        t                                 |                     t          t          j                   d S rC   )r&   r#   rG   r   r}   r   r   rH   rI   rJ   rK   rL   s    r   test_tcgetwinsize_errorsz&TestFunctions.test_tcgetwinsize_errors   s    %%elG4H$+VVV*g&:B???-)=q$wGGG)W%9688DDD)W%9:::::r   c                    t                               | j                  }t                               | j        |           t                               | j        t	          |                     t                               | j        |           d S rO   )r   r}   r   tcsetwinsizer-   r   r~   s     r   test_tcsetwinsizezTestFunctions.test_tcsetwinsize   sk    ##DG,,TWd+++TWd4jj111T[$/////r   c           
      2   t                               | j                  }|                     t          t           j        | j        |d d                    |                     t          t           j        | j        |dz              |                     t          t           j        | j        t                                 |                     t          t           j        | j        |d         ddz  f           |                     t          t           j        | j        |d         t          |d                   f           |                     t          t           j        | j        |d         t                      f           |                     t          t           j        | j        ddz  |d         f           |                     t          t           j        | j        t          |d                   |d         f           |                     t          t           j        | j        t                      |d         f           | 	                    t          j        t           j        | j        |           |                     t          t           j        d|           |                     t          t           j        ddz  |           |                     t          t           j        t                      |           |                     t          t           j        | j                   d S )NrD   )r   r   rE   rF   r*   )r   r}   r   r   rJ   r   rK   rI   floatr&   r#   rG   r   rH   r~   s     r   test_tcsetwinsize_errorsz&TestFunctions.test_tcsetwinsize_errors   sJ   ##DG,,)W%947D"INNN)W%947D4KPPP)W%947FHHMMM-)=twaRSUYRYHZ[[[)W%947T!WeTXYZT[nnD]^^^)W%947T!WfhhDWXXX-)=twDRVWXRYHZ[[[)W%947U4PQ7^^UYZ[U\D]^^^)W%947VXXtTUwDWXXX%%elG4H$+W[\\\*g&:BEEE-)=q$wMMM)W%9688TJJJ)W%947CCCCCr   N)__name__
__module____qualname__r   r&   rA   rM   rT   rZ   rc   re   rh   rj   rp   rr   ry   r{   r   r   r   r    r   r   r   r      s4       # # #6 6 6
@ @ @$8 8 8? ? ?!R !R !RF, , ,C C C% % %6 6 64 4 4
? ? ?/ / /> > >B B B; ; ;0 0 0D D D D Dr   r   c                       e Zd Zd Zd ZdS )
TestModulec                    |                      t          j        t                     |                      t          j        t                     |                      t          j        t                     |                      t          j        t                     |                      t          j        t                     |                      t          j        t                     |                      t          j	        t                     |                      t          j
        t                     |                      t          j        t                     |                      t          j        t                     |                      t          j        t                     |                      t          j        t                     |                      t          j        t                     |                      t          j        t                     |                      t          j        t                     |                     t          j        t          j                   |                     t          j        t          j                   d S rO   )r,   r   B0r0   B38400rQ   rR   rS   rm   rn   ro   ru   rv   rw   rx   r5   r4   r1   
assertLessrL   s    r   test_constantszTestModule.test_constants   s   gj#...gnc222gos333g/555g/555g.444g.444g/555gnc222gmS111gnc222gmS111gmS111glC000glC000w|444gl33333r   c                     |                      t          t          j        t                               |                     t          t          j        t                               d S rO   )
assertTrue
issubclassr   r   	ExceptionassertFalseOSErrorrL   s    r   test_exceptionzTestModule.test_exception   sF    
7=)<<===GM7;;<<<<<r   N)r   r   r   r   r   r   r   r   r   r      s2        4 4 4&= = = = =r   r   __main__)r#   r   r^   r   unittesttest.support.import_helperr   r   
skipUnlesshasattrTestCaser   r   r   mainr   r   r   <module>r      s    				 



   4 4 4 4 4 4
-	
"
" WWR++-@AAsD sD sD sD sDH% sD sD BAsDl= = = = =" = = =2 zHMOOOOO r   