cZaSSKrSSKJrJrJrJrJrJr SSKJ r SSK J r J r \ "S5 \(d\(d\(d\(a\R"S5eSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSrSr\"\S 5=(a \"\S 5r\(aS rOS rS rSrSrSr "SS\RB5r""SS\RB5r#Sr$\%S:Xa\RL"5 gg)N) is_androidis_apple_mobile is_emscriptenis_wasi reap_childrenverbose) import_module)TESTFNunlinktermiosz%pty is not available on this platformI wish to buy a fish license. For my pet fish, Eric. TIOCGWINSZ TIOCSWINSZc[U5 gN)printmsgs 4/opt/alt/python313/lib64/python3.13/test/test_pty.pydebugrs  c cgrrs rrr"s rcURS5(aURSS5$URS5(aURSS5$U$)Ns   )endswithreplace)datas rnormalize_outputr!0sI }}Y||Iu-- }}W||GU++ KrcN[R"USSS9nUR5$)z8Read one line. May block forever if no newline is read.rbF)modeclosefd)ioFileIOreadline)fdreaders r _readliner+Ds! YYre 4F ?? rc[R"[R5 [R "U5$![R a U$f=fr)tty tcgetattrpty STDIN_FILENOunittestexpectedFailureerror)funs rexpectedFailureIfStdinIsTTYr5IsE  c&&''',, 99  J s9<AAc [R"X5nU[U5:wa[SUS[U5SUS35eg)Nzshort write: os.write(z, z bytes) wrote z bytes)oswritelen Exception)r)r writtens r write_allr<SsQhhr G#d)0Bs4ykB!!( 12 2rcL\rSrSrSr\S5r\S5rSr Sr Sr Sr g ) PtyTest]c[R"[RUR5nUR[R[RU5 SUl[ (ad[ R"[R5UlUR[ R[RUR5 gg![ Ra gf=fr) signalSIGHUP handle_sighup addCleanup stdin_dim _HAVE_WINSZr- tcgetwinsizer/r0 tcsetwinsizer3)self old_sighups rsetUp PtyTest.setUp^s]]6==$2D2DE   v}}jA ; !$!1!1#2B2B!C 0 0#2B2B $0  99  s2A"CC-,C-cgrr)signumframes rrCPtyTest.handle_sighupls rc[R"[R5nSnUR (a[ S5 [ SUR 35 UR SS-UR SS-4n[ SU35 [R"[RU5 [R"[R5nURX#S5 [ S 5 [R"XS 5upVn[ S U<S U<SU<35 UR'[(R*U5 UR'[(R*U5 UR-[(R."U5S5 U(a'UR[R"U5US5 U(a'UR[R"U5US5 [(R0"U5n[(R2"US5 [(R4"US5n URSU 5 [(R2"XX5 [ S5 [;U[<5 [?U5n URS[AU 55 [ S5 [;U[BSS5 [;U[BSS5 [?U5n URS[AU 55 g![Ra [ S5 SnGNf=f![a2n[R[5RSUS 9 SnAGNfSnAff=f![ a [R"5upVSnGNmf=f![a ["R$"S5ef=f![a*nUR6[6R8:waeSnAGNSnAff=f![(R2"XX5 f=f)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.)exc_infoCalling 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 sizeFrzWriting to slave_fdr zWriting chunked outputr)"r-r.r/r0r3rrErHrG assertEqualOSErrorlogging getLogger__name__warningopenpty TypeErrorr1SkipTestrDr7close assertTrueisatty get_blocking set_blockingreaderrnoEAGAINr< TEST_STRING_1r+r! TEST_STRING_2) rIr$new_dim target_dime master_fdslave_fd slave_nameblockings1s2s r test_openptyPtyTest.test_openptypsJ ==!1!12D  >> =>4T^^4DEF"nnQ/!3T^^A5F5JK 2:,?@  !1!1:>**3+;+;<  !IK T ) * "25++d>B3D/ Z O LxkJ=A B ), (+  (+-DE    S]]84dD F    S--h7H J??9- 1 OOIu - WWY-  b) OOI 0 #$(M* y ! ;)"- / &'(M"1-.(M!"-. y ! 46Fr6JKayy  : ;D , !!(+33AA4   "&)kkm# !  " T##$RS S T4 77ell*+  OOI 0s$K1B0L+ N7MNO)N&1!LL M#'MM#M?;N>M??N!N#& O0OOOOO5c[S5 [R"5upUR[R U5 U[R :Xa[R"S5(d![S5 [R"S5 [S5 [R"5 [S5 [R"S5 [R"S 5 g[S U-5 [R"US 5nU(dO9[RR[!UR#SS5SS95 MY[R$"US5up[R&"U5n[SXU4-5 US:XaUR)S5 gUS:XaUR)S5 gUS:XaUR)S5 gUS :waUR)S5 gg![a [S5 GN7[a [S 5 GNN [S 5 [R"S5 GNs=f![a GMf=f)Nzcalling pty.fork()rRzChild'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/forkrDr7r`CHILDrb_exitsetsidrXAttributeErrorresysstdoutr8strrwaitpidwaitstatus_to_exitcodefail)rIpidrmr statusress r test_forkPtyTest.test_forks "# ), #)) 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*G4<I 4I I#"I IIc|[S5 [R"5up[SUSUS35 UR[R U5 [S5 [R "U5 [S5 [R "US5nURUS5 g![a SnN!f=f) NrTzGot master_fd 'z ', slave_fd ''zClosing slave_fdzReading from master_fdrRr) rr/r]rDr7r`rerXrW)rIrmrnr s rtest_master_readPtyTest.test_master_reads %&!kkm   {-zCD ),  !  &' 779a(D s# D sB,, B;:B;c^UR[[5 [[S5nSn[R "U5n[R "UR5U5 SmU4Sjn[R"[RSS/U5 [R "X25 [R"U5 SSS5 URTS5 [[S5nURUR5S5 SSS5 g![R "X25 [R"U5 f=f!,(df  N=f!,(df  g=f) NwbrRrc@>[R"US5nTU- mU$)NrU)r7re)r)r bufs r master_read3PtyTest.test_spawn_doesnt_hang..master_read2s!wwr4(t  rz-czprint("hi there")s hi there r#)rDr r openr7dupdup2filenor/spawnr executabler`rWre)rIf STDOUT_FILENO dup_stdoutrrs @rtest_spawn_doesnt_hangPtyTest.test_spawn_doesnt_hang+s ' &$ 1M .J GGAHHJ .C   % 3>>41DE%' 2$ o. &$ 1   QVVX 7  2$ " s0AE 3(D,E 2!E.E  E  E E,)rEN) r[ __module__ __qualname____firstlineno__rK staticmethodrCr5rsrrr__static_attributes__rrrr>r>]sF   !SL!SLjHDd$&8rr>cN\rSrSrSrSrSrSrSrSr Sr S r S r S r S rg ) SmallPtyTestsiAz)These tests don't spawn children or hang.c[RUl[RUl[R Ul[RUl[RUl [RUl [RUl[RUl[R"Ul[R&Ul/Ul/Ul/Ul/UlSUlgr)r/r0orig_stdin_filenororig_stdout_filenor`orig_pty_close_copyorig_pty__copyr| orig_pty_forkselectorig_pty_selectsetraworig_pty_setrawr.orig_pty_tcgetattr tcsetattrorig_pty_tcsetattrrorig_pty_waitpidfdsfiles select_input select_outputtcsetattr_mode_setting)rIs rrKSmallPtyTests.setUpDs!$!1!1"%"3"3!ii!ii XX"zz"zz"%--"%-- #  &*#rcUR[lUR[lUR [lUR[lUR[l UR[l UR[lUR[lUR"[lUR&[lUR*HnUR 5 M UR.Hn[0R "U5 M g![,a MPf=f![,a M=f=fr)rr/r0rrrr`rrrr|rrrrrr.rrrrrrXrr7)rIfiler)s rtearDownSmallPtyTests.tearDownUs11 33'' '' %%)) )) // // ++ JJD   ((B       s$#D"D3" D0/D03 EEcf[R"5nURRU5 U$r)r7piperextend)rIpipe_fdss r_pipeSmallPtyTests._pipeks"779 !rcf[R"5nURRU5 U$r)socket socketpairrr)rIrs r _socketpairSmallPtyTests._socketpairps(&&(  *%rcURXU4URRS55 URRS5$)Nr)rWrpopr)rIrfdswfdsxfdss r _mock_selectSmallPtyTests._mock_selectus? $d+T->->-B-B1-EF!!%%a((rc^U4SjnU$)Nc >TS4$)N r)rsr mock_fork0SmallPtyTests._make_mock_fork..mock_fork{s 9 rr)rIrrs ` r_make_mock_forkSmallPtyTests._make_mock_forkzs rcX0lgr)r)rIroptr$s r_mock_tcsetattrSmallPtyTests._mock_tcsetattrs&*#rc:UR5upU[lUR5up4U[lUR 5nUVs/sHofR 5PM nn[ USS5 [ US5 UR[lURRX7S///45 URRX7S///45 URRX7S/X'S//45 URR/X'S//45 URRX7S///45 UR[5 [R"US5 SSS5 [R"XS///S5SnURXS/U5 UR[ R""US5S5 UR[ R""USS5S5 gs snf!,(df  N=f)z6Test the normal data case on both master_fd and stdin.rRs from masters from stdinrN)rr/rr0rrr<rrrappendr assertRaises IndexErrorrrWr7re) rIread_from_stdout_fdmock_stdout_fd mock_stdin_fdwrite_to_stdin_fdrsmastersrs rtest__copy_to_each SmallPtyTests.test__copy_to_eachs.2jjl+*+/::<( (%%' '12z!88:z2 '!*n-#]3&&    =!*"=r2!FG !!M1:#>B"GH   =!*"=XYPZ?[]_!`a !!2 'CR"HI   =!*"=r2!FG   z * IIgaj !+}}11:>BJ1M -qz:DA !4b9>J R0-@+3+ *sHH  Hc^^URS5[l[5mU4Sj[lS[lS[l[5mU4Sj[lUR[l S[l UR[R"/5TS5 URURTS5 g ) zCTest that spawn resets the tty mode no when _copy returns normally.rRc >ST/$rr)_1_2status_sentinels rDSmallPtyTests.test__restore_tty_mode_normal_return..s dO%T$rr)r) mode_sentinels rrrs=rcgrrrs rrrstrz4pty.waitpid process status not returned by pty.spawnz1pty.tcsetattr not called with original mode valueN)rr/r|objectrr`rr.rrrrWrr)rIrrs @@r$test__restore_tty_mode_normal_return2SmallPtyTests.test__restore_tty_mode_normal_returns ''* (< " +  0 ,, #  29op 44mExyr)rrrrrrrrrrrrrrrN)r[rrr__doc__rKrrrrrrrrrrrrrrAs43+",  )  +A<zrrc[5 gr)rrrrtearDownModulersOr__main__)'r1 test.supportrrrrrrtest.support.import_helperr test.support.os_helperr r r_rfr7r/r-rrrArr&warningsrhrihasattrrFrr!r+r5r<TestCaser>rrr[mainrrrrs51i MW   C DD 2 + c<(GWS,-G   ( 2b8hb8HrzH%%rzj z MMOr