python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_pty.cpython-312.opt-1.pyc

ΑeB>tddlmZmZddlmZededddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZdZdZeedxr	eed	Zerd
ZndZdZd
ZdZGddej0ZGddej0ZdZedk(rej:yy))verbose
reap_children)
import_moduletermiosfcntlNI wish to buy a fish license.
For my pet fish, Eric.

TIOCGWINSZ
TIOCSWINSZct|yN)printmsgs A/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_pty.pydebugrs	
c
cyr
rs rrrsrc|jdr|jddS|jdr|jddS|S)Ns



)endswithreplace)datas rnormalize_outputr-sC}}Y||Iu--}}W||GU++KrcRtj|dd}|jS)z8Read one line.  May block forever if no newline is read.rbF)modeclosefd)ioFileIOreadline)fdreaders  r	_readliner&As!
YYre
4F??rc	tjtjt	j
|S#tj$rY|SwxYwr
)tty	tcgetattrptySTDIN_FILENOunittestexpectedFailureerror)funs rexpectedFailureIfStdinIsTTYr0FsE


c&&''',,99
J
s7:AAcJeZdZdZdZedZedZdZ	dZ
dZy)	PtyTestctjtj|j}|jtjtj|tjtj|j
}|jtjtj||jtjdtjdd|_trc	tjtj|_|jtjtj|jyy#tj$rYywxYw)Nr
)signalSIGALRM
handle_sig
addCleanupSIGHUP
handle_sighupalarm	stdin_dim_HAVE_WINSZr(tcgetwinsizer*r+tcsetwinsizer.)self	old_alarm
old_sighups   rsetUpz
PtyTest.setUpRsMM&..$//B	

v~~yA]]6==$2D2DE


v}}jA	
a(R
!$!1!1#2B2B!C 0 0#2B2B $0
99

s>A!E!!E76E7c&|jdy)Nzisatty hung)fail)r@sigframes   rr7zPtyTest.handle_sighs		- rcyr
r)signumrGs  rr:zPtyTest.handle_sighupksrc	tjtj}d}|jr	tdtd|j|jddz|jddzf}td|tjtj|tjtj}|j||d	td		tj||d
\}}}td|d|d
||j#t$j&||j#t$j&||j)t%j*|d|r&|jtj||d|r&|jtj||dt%j,|}	t%j.|d	t%j0|d}|jd|t%j.||tdt%j6|t8t;|}|jdt=|tdt%j6|t>ddt%j6|t>ddt;|}
|jdt=|
y#tj$rtdd}YwxYw#t$rtjdY[wxYw#t$rtj\}}d}Y\wxYw#t$rtj dwxYw#t$r)}	|	j2t2j4k7rYd}	~	d}	~	wwxYw#t%j.||wxYw)Nz&tty.tcgetattr(pty.STDIN_FILENO) failedz%Setting pty.STDIN_FILENO window size.zoriginal size: (row, col) = rztarget size: (row, col) = z&pty.STDIN_FILENO window size unchangedz+Failed to set pty.STDIN_FILENO window size.Calling pty.openpty()TzGot master_fd=z, slave_fd=z
, slave_name=z,Pseudo-terminals (seemingly) not functional.zslave_fd is not a ttyz%openpty() failed to set slave termiosz)openpty() failed to set slave window sizeFirzWriting to slave_fdrzWriting chunked outputr	) r(r)r*r+r.rr<r?r>assertEqualOSErrorwarningswarnopenpty	TypeErrorr,SkipTestr8osclose
assertTrueisattyget_blockingset_blockingreaderrnoEAGAINwrite
TEST_STRING_1r&r
TEST_STRING_2)r@rnew_dim
target_dim	master_fdslave_fd
slave_nameblockings1es2s           rtest_openptyzPtyTest.test_openptyosI	==!1!12D>>
=>4T^^4DEF"nnQ/!3T^^A5F5JK
2:,?@  !1!1:>**3+;+;<  *!IK	T)*
"25++dG>B3D/	8Z

OLxkJ=AB	
),(+		(+-DES]]84dD
FS--h7H
J??9-
	1OOIu-
WWY-  b)
OOIx0
#$
=)
y
!;)"-	/	&'
=!,-
=,-
y
!46Fr6JK]yy	:;D	,


KL

"&)kkm#	8!

"	T##$RSS	T4
77ell*+


OOIx0s#K6B/L$M+0MM+*O(N
6 LLL?>L?"M($M+'M((M++N

	N?N:4O:N??OOctdtj\}}|jtj
||tjk(rt	jds tdt	jdtd	t	jtdt	jdt	jdytd|z		t	j|d
}|sn;tjjt!|j#dddUt	j$|d\}}t	j&|}td|||fz|dk(r|j)dy|dk(r|j)dy|dk(r|j)dy|dk7r|j)dyy#t$rtdY-t$rtd	YCtd
t	jdYgxYw#t$rYwxYw)Nzcalling pty.fork()rKzChild's fd 1 is not a tty?!zIn child, calling os.setsid()zos.setsid() succeeded! (bad!)zGood: OSError was raised.zNo setsid() available?zAn unexpected error was raised.z!Waiting for child (%d) to finish.Prrascii)encodingrz+Child (%d) exited with code %d (status %d).z3Child raised an unexpected exception in os.setsid()z1pty.fork() failed to make child a session leader.z8Child spawned by pty.fork() did not have a tty as stdoutz&pty.fork() failed for unknown reasons.)rr*forkr8rUrVCHILDrX_exitsetsidrOAttributeErrorr[sysstdoutr^strrwaitpidwaitstatus_to_exitcoderE)r@pidrcrstatusress      r	test_forkzPtyTest.test_forks
"#Y),#))99Q<34
12
		"56HHQK5;<779b1D

  T\\'5%A.5"78 JJsA.MS&++F3C?3VBTTUax		OP		MN		TU		BCq
12!
./

78(s*G!1H5!H28H2!H25	IIcvtdtj\}}td|d|d|jtj
|tdt	j
|td	t	j|d}|j|dy#t$rd}Y wxYw)	NrLzGot master_fd 'z
', slave_fd ''zClosing slave_fdzReading from master_fdrKr)	rr*rRr8rUrVr[rOrN)r@rcrdrs    rtest_master_readzPtyTest.test_master_reads
%&!kkm	8
	{-zCD),
 !

&'	779a(D	
s#	D	sB**B87B8cPtjtjddgy)Nz-czprint("hi there"))r*spawnrw
executabler@s rtest_spawn_doesnt_hangzPtyTest.test_spawn_doesnt_hang(s		3>>4)<=>rN)__name__
__module____qualname__rCr7staticmethodr:r0rjrrrrrrr2r2QsK,!

!QL!QLfHDd$&?rr2cFeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
Zy)
SmallPtyTestsz)These tests don't spawn children or hang.ctj|_tj|_tj
|_tj|_tj|_
tj|_tj|_tj|_tj"|_tj&|_g|_g|_g|_g|_d|_yr
)r*r+orig_stdin_fileno
STDOUT_FILENOorig_stdout_filenorVorig_pty_close_copyorig_pty__copyrr
orig_pty_forkselectorig_pty_selectsetraworig_pty_setrawr)orig_pty_tcgetattr	tcsetattrorig_pty_tcsetattrrzorig_pty_waitpidfdsfilesselect_input
select_outputtcsetattr_mode_settingrs rrCzSmallPtyTests.setUp.s!$!1!1"%"3"3!ii!ii XX"zz"zz"%--"%-- #
&*#rcv|jt_|jt_|j
t_|jt_|jt_
|jt_|jt_|jt_|j"t_|j&t_|j*D]}	|j
|j.D]}	t1j|y#t,$rYIwxYw#t,$rY6wxYwr
)rr*r+rrrrVrrrrrrrrrrr)rrrrzrrOrrU)r@filer$s   rtearDownzSmallPtyTests.tearDown?s11 33''	''	%%))
))
//
//
++JJ	D


	
((	B
	




s$#DD,	D)(D),	D87D8cdtj}|jj||Sr
)rUpiperextend)r@pipe_fdss  r_pipezSmallPtyTests._pipeUs"779!rcdtj}|jj||Sr
)socket
socketpairrr)r@rs  r_socketpairzSmallPtyTests._socketpairZs(&&(


*%rc|j|||f|jjd|jjdS)Nr)rNrpopr)r@rfdswfdsxfdss    r_mock_selectzSmallPtyTests._mock_select_sA$d+T->->-B-B1-EF!!%%a((rcfd}|S)NcdfS)Nr)r|sr	mock_forkz0SmallPtyTests._make_mock_fork.<locals>.mock_forkes
9rr)r@r|rs ` r_make_mock_forkzSmallPtyTests._make_mock_forkds	rc||_yr
)r)r@filenooptrs    r_mock_tcsetattrzSmallPtyTests._mock_tcsetattris
&*#rc`|j\}}|t_|j\}}|t_|j	}|Dcgc]}|j}}t
j|ddt
j|d|jt_	|jj||dgggf|jj||dgggf|jj||dg||dggf|jjg||dggf|jj||dgggf|jt5tj|ddddtj||dgggdd}|j!||dg||j!t
j"|dd|j!t
j"|dddycc}w#1swYxYw)z6Test the normal data case on both master_fd and stdin.rKsfrom masters
from stdinrN)rr*rr+rrrUr^rrrappendrassertRaises
IndexErrorrrNr[)	r@read_from_stdout_fdmock_stdout_fd
mock_stdin_fdwrite_to_stdin_fdrsmastersrs	         rtest__copy_to_eachz SmallPtyTests.test__copy_to_eachls.2jjl+^*+/::<(
((%%'
'12!188:22	^,
"M2&&
  ='!*"=r2!FG!!M71:#>B"GH  ='!*"=PWXYPZ?[]_!`a!!2
'CR"HI  ='!*"=r2!FG


z
*	"IIgaj!	"}}171:>BJ1M-wqz:DA!4b9>JR0-@+3	"	"sH7H$$H-c|jdt_tfdt_dt_dt_tfdt_|jt_	dt_
|jtjgd|j|jdy	)
zCTest that spawn resets the tty mode no when _copy returns normally.rKcdgSr
r)_1_2status_sentinels  r<lambda>zDSmallPtyTests.test__restore_tty_mode_normal_return.<locals>.<lambda>sdO%<rcyr
r_s rrzDSmallPtyTests.test__restore_tty_mode_normal_return.<locals>.<lambda>rcyr
r)rr_3s   rrzDSmallPtyTests.test__restore_tty_mode_normal_return.<locals>.<lambda>rrcSr
r)r$
mode_sentinels rrzDSmallPtyTests.test__restore_tty_mode_normal_return.<locals>.<lambda>s=rcyr
rrs rrzDSmallPtyTests.test__restore_tty_mode_normal_return.<locals>.<lambda>rrz4pty.waitpid process status not returned by pty.spawnz1pty.tcsetattr not called with original mode valueN)rr*rrobjectrzrVrr)rrrrNrr)r@rrs @@r$test__restore_tty_mode_normal_returnz2SmallPtyTests.test__restore_tty_mode_normal_returns
''* (<"	+	
0
,,
#
29op44mExyrN)
rrr__doc__rCrrrrrrrrrrrrr+s43+",

)

+A<zrrctyr
)rrrrtearDownModulersOr__main__)test.supportrrtest.support.import_helperrr\rUr*r(rwrr5rr!r,rPr_r`hasattrr=rrr&r0TestCaser2rrrmainrrr<module>rs/4ig	





	2
+
c<(GWS,-G

(
X?hX?trzH%%rzjzHMMOr