
    0hh                         S SK r S SKrS SKJr  \" S5      r\" S5      r\R                  " \" \ S5      S5       " S S\R                  5      5       r	\
S	:X  a  \R                  " 5         gg)
    N)import_moduletermiosttyopenptyzneed os.openpty()c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestTty	   c                 d   [         R                  " 5       u  ol        U R                  [         R                  U5        U R                  [        U R                  SSS95      U l        U R                  R                  5       U l        [        R                  U R                  5      U l        U R                  [        R                  U R                  [        R                  U R                  5        U R                  [        R                  U R                  [        R                  U R                  5        g )Nwbr   )	buffering)osr   fd
addCleanupcloseenterContextopenstreamfilenor   	tcgetattrmode	tcsetattrTCSANOW	TCSAFLUSH)self	master_fds     6/opt/python-3.13.8/usr/lib/python3.13/test/test_tty.pysetUpTestTty.setUp   s    ZZ\	7),''TWWda(HI++$$&%%dgg.	))477GOOTYYO))477G4E4EtyyQ    c                 4   U R                  US   [        R                  -  S5        U R                  US   [        R                  -  S5        U R                  US   [        R                     S5        U R                  US   [        R
                     S5        g )N   r         )assertEqualr   ECHOICANONVMINVTIMEr   r   s     r   check_cbreakTestTty.check_cbreak   sv    a7<</3a7>>115a.2a/3r   c                    U R                  U5        U R                  US   [        R                  -  S5        U R                  US   [        R                  -  S5        U R                  US   [        R
                  -  S5        U R                  US   [        R                  -  [        R                  [        R                  -  5        U R                  US   [        R                  -  [        R                  [        R                  -  5        U R                  US   [        R                  -  [        R                  5        U R                  US   [        R                  -  S5        U R                  US   [        R                  -  S5        U R                  US   [        R                  -  S5        U R                  US   [        R                     S5        U R                  US   [        R                     S5        g )Nr   r#      r!   r"   )r*   r$   r   ISTRIPICRNLOPOSTPARENBCS8CSIZEr%   r&   ISIGr'   r(   r)   s     r   	check_raw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                 L   [         R                  U R                  5      nU R                  XR                  5        [
        R                  U5        U R                  U5        U R                  US   U R                  S   5        U R                  US   U R                  S   5        g )N      )r   r   r   r$   r   r   	cfmakerawr5   r)   s     r   test_cfmakerawTestTty.test_cfmakeraw)   sx      )yy)dta$))A,/a$))A,/r   c                    [         R                  U R                  5      nU R                  XR                  5        [
        R                  U5        U R                  U5        U R                  US   U R                  S   5        U R                  US   U R                  S   5        U R                  US   U R                  S   5        U R                  US   U R                  S   5        U[
        R                  ==   [         R                  -  ss'   [
        R                  U5        U R                  U[
        R                     [         R                  -  [         R                  SS9  U[
        R                  ==   [         R                  ) -  ss'   [
        R                  U5        U R                  U[
        R                     [         R                  -  SSS9  g )	Nr#   r-   r8   r9   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_cfmakecbreakTestTty.test_cfmakecbreak1   sZ     )yy)$a$))A,/a$))A,/a$))A,/a$))A,/SYY7==(cii7==8'--D 	 	FSYYGMM>)cii7==8!@ 	 	Br   c                    [         R                  U R                  5      n[        R	                  U R                  5      nU R                  X!5        [         R                  U R                  5      nU R                  U5        [        R	                  U R                  [         R                  5      nU R                  XC5        [        R	                  U R                  5        [        R	                  U R                  [         R                  S9  g )Nr   when)	r   r   r   r   setrawr$   r5   r   r   )r   mode0mode1mode2mode3s        r   test_setrawTestTty.test_setrawC   s    !!$''*

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

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

4;;

dggGOO
4r   c                    [         R                  U R                  5      n[        R	                  U R                  5      nU R                  X!5        [         R                  U R                  5      nU R                  U5        [         R                  nU R                  U[        R                     U-  U[        R                     U-  SS9  [        R	                  U R                  [         R                  5      nU R                  XS5        [        R	                  U R                  5        [        R	                  U R                  [         R                  S9  g )Nz%ICRNL should not be altered by cbreakr>   rE   )r   r   r   r   	setcbreakr$   r*   r/   rA   r   r   )r   rH   rI   rJ   r/   rK   s         r   test_setcbreakTestTty.test_setcbreakN   s    !!$''*dgg&&!!$''*% syy)E153Ce3KD 	 	Fdggw7&dkk"w7r   )r   r   r   N)__name__
__module____qualname____firstlineno__r   r*   r5   r;   rB   rL   rP   __static_attributes__ 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   rR   mainrW   r   r   <module>r_      su    	  4
	
"E 
WR+-@AP8h P8 BP8f zMMO r   