
    daf                         d dl Z d dlZd dlmZ  ed      Z ed      Z ej                   ee d      d       G d dej                               Z	e
d	k(  r ej                          yy)
    N)import_moduletermiosttyopenptyzneed os.openpty()c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestTtyc                 j   t        j                         \  }| _        | j                  t         j                  |       | j                  t        | j                  dd            | _        | j                  j                         | _        t        j                  | j                        | _        | j                  t        j                  | j                  t        j                  | j                         | j                  t        j                  | j                  t        j                  | j                         y )Nwbr   )	buffering)osr   fd
addCleanupcloseenterContextopenstreamfilenor   	tcgetattrmode	tcsetattrTCSANOW	TCSAFLUSH)self	master_fds     (/root/Python-3.12.4/Lib/test/test_tty.pysetUpzTestTty.setUp   s    ZZ\	47),''TWWda(HI++$$&%%dgg.	))477GOOTYYO))477G4E4EtyyQ    c                 4   | j                  |d   t        j                  z  d       | j                  |d   t        j                  z  d       | j                  |d   t        j                     d       | j                  |d   t        j
                     d       y )N   r         )assertEqualr   ECHOICANONVMINVTIMEr   r   s     r   check_cbreakzTestTty.check_cbreak   sv    a7<</3a7>>115a.2a/3r   c                    | j                  |       | j                  |d   t        j                  z  d       | j                  |d   t        j                  z  d       | j                  |d   t        j
                  z  d       | j                  |d   t        j                  z  t        j                  t        j                  z         | j                  |d   t        j                  z  t        j                  t        j                  z         | j                  |d   t        j                  z  t        j                         | j                  |d   t        j                  z  d       | j                  |d   t        j                  z  d       | j                  |d   t        j                  z  d       | j                  |d   t        j                     d       | j                  |d   t        j                     d       y )Nr   r!      r   r    )r(   r"   r   ISTRIPICRNLOPOSTPARENBCS8CSIZEr#   r$   ISIGr%   r&   r'   s     r   	check_rawzTestTty.check_raw   sm   $a7>>115a7==0!4a7==0!4a7>>17;;3OPa7==0'++2MNa7;;.<a7<</3a7>>115a7<</3a.2a/3r   c                 N   t         j                  | j                        }| j                  || j                         t
        j                  |       | j                  |       | j                  |d   | j                  d          | j                  |d   | j                  d          y )N      )r   r   r   r"   r   r   	cfmakerawr2   r'   s     r   test_cfmakerawzTestTty.test_cfmakeraw)   sz      )tyy)dta$))A,/a$))A,/r   c                    t         j                  | j                        }| j                  || j                         t
        j                  |       | j                  |       | j                  |d   | j                  d          | j                  |d   | j                  d          | j                  |d   | j                  d          | j                  |d   | j                  d          |t
        j                  xx   t         j                  z  cc<   t
        j                  |       | j                  |t
        j                     t         j                  z  t         j                  d       |t
        j                  xx   t         j                   z  cc<   t
        j                  |       | j                  |t
        j                     t         j                  z  dd       y )	Nr!   r*   r4   r5   z%ICRNL should not be cleared by cbreakmsgr   z!ICRNL should not be set by cbreak)
r   r   r   r"   r   r   cfmakecbreakr(   IFLAGr,   r'   s     r   test_cfmakecbreakzTestTty.test_cfmakecbreak1   s\     )tyy)$a$))A,/a$))A,/a$))A,/a$))A,/SYY7==(cii7==8'--D 	 	FSYYGMM>)cii7==8!@ 	 	Br   c                     t         j                  | j                        }t        j	                  | j                        }| j                  ||       t         j                  | j                        }| j                  |       t        j	                  | j                  t         j                        }| j                  ||       t        j	                  | j                         t        j	                  | j                  t         j                         y )Nr   when)	r   r   r   r   setrawr"   r2   r   r   )r   mode0mode1mode2mode3s        r   test_setrawzTestTty.test_setrawC   s    !!$''*

477#&!!$''*u

477GOO4&

4;;

dggGOO
4r   c                    t         j                  | j                        }t        j	                  | j                        }| j                  ||       t         j                  | j                        }| j                  |       t         j                  }| j                  |t        j                     |z  |t        j                     |z  d       t        j	                  | j                  t         j                        }| j                  ||       t        j	                  | j                         t        j	                  | j                  t         j                         y )Nz%ICRNL should not be altered by cbreakr9   r?   )r   r   r   r   	setcbreakr"   r(   r,   r<   r   r   )r   rB   rC   rD   r,   rE   s         r   test_setcbreakzTestTty.test_setcbreakN   s    !!$''*dgg&&!!$''*% syy)E153Ce3KD 	 	Fdggw7&dkk"w7r   N)
__name__
__module____qualname__r   r(   r2   r7   r=   rF   rI    r   r   r   r   	   s'    R440B$	58r   r   __main__)r   unittesttest.support.import_helperr   r   r   
skipUnlesshasattrTestCaser   rJ   mainrM   r   r   <module>rU      sy    	  4
	
"E WR+-@AP8h P8 BP8f zHMMO r   