vSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSK J r SSK J r J r SSK Jr SSKJr SSKJr SSKJr \RS :wa\R("S 5e\R*"5R,rS S /r\R0"\S :=(a \R2"5S:HS5"SS\R455r"SS\R45rg)N) TextLogStream)array) ExitStackcontextmanager)Thread)LOOPBACK_TIMEOUT)time)patchandroidzAndroid-specific)stdoutI)stderrWaarch64z4SELinux blocks reading logs on older ARM64 emulatorscZ\rSrSrSrSrSrSS.SjrSr\ S 5r S r S r S r S rg)TestAndroidOutputNc^[R"/SQ[RSS9Tl[R "5TlU4Sjn[US9TlTRR5 SSK J nJ nJ n [U"S5S 5nXCU4UlS nS TR!5S [#53pU"XgR%S 5UR%S 55 TR'SXxSS9 g! TR)5 e=f)N)logcatz-vtagbackslashreplace)r errorsc>TRRH-nTRRUR S55 M/ TRRR 5 g)N )logcat_processr logcat_queueputrstripclose)lineselfs 8/opt/alt/python313/lib64/python3.13/test/test_android.py logcat_thread.TestAndroidOutput.setUp..logcat_thread)sN++22!!%%dkk$&783    & & , , .)targetr)CDLLc_char_pc_intz liblog.so__android_log_writez python.test UTF-8r Tskip) subprocessPopenPIPErqueueQueuerrr&startctypesr*r+r,getattrargtypesidr encode assert_logtearDown) r$r&r*r+r,android_log_writeANDROID_LOG_INFOrmessages ` r%setUpTestAndroidOutput.setUp"s(.. #JOO% "KKM / $=9   "  4 4 '[(9;P Q */8)D  & )TWWYKq*A  **W"5w~~g7N P OOCDO 9  MMO s 6A=C44Dc >UHnUR"XU40UD6 M gN)r>)r$levelrexpectedkwargsr#s r% assert_logsTestAndroidOutput.assert_logsCsD OOE 7 7r(Fr1c[5[-nURRU[5- S9n[R"SUS3U5=n(a*URXS5 URX7S5 gMs![R a UR SU<35Sef=f![a U(deNDf=f)N)timeoutzline not found: z(.)/z: (.*)rr) r rrgetr6EmptyfailureExceptionre fullmatch assertEqualAssertionError)r$rGrrHr2deadliner#matchs r%r>TestAndroidOutput.assert_logGs6,, ((,,h6G,I  SE%8$??u?$$U!H5$$XQx8;; ++&xl3 & s$B(B4+B14C C cURR5 URR[5 URR [5 SUlgrF)r terminatewaitrr&joinr$s r%r?TestAndroidOutput.tearDownYsH %%'   !12  01"r(c#z# URSS9 Sv URSS9 g!URSS9 f=f7f)NT) write_throughF) reconfigure)r$streams r% unbufferedTestAndroidOutput.unbufferedas@. 4    U  3F  U  3s;';8;c bSSS.Un[5nURURU55 [[U5n[[SUS35n[ U[ R5(a9UR[SU3[USU3UR5SS955 U$) Nr.)r r__zsys.python.r)r) r enter_contextsubTestr:sys isinstanceioStringIOr rfileno)r$ stream_namerGpriostackra native_streams r%stream_context TestAndroidOutput.stream_contextlsQ&  DLL56k*r+b%9: fbkk * *   ;-(! }5}7K7K7M1  r(c x ^^^^ [GHOunmnTRUT5 [[U5mSU3m TR ST S3[ T55 TR TR5S5 TR TR5S5 TR TR5U5 TR STR5 TR STR5 TR TRS5 TR TRS5 SNSS.UUUU 4S jjjnTRT5 U"S /5 U"S 5 U"S 5 U"S 5 U"S5 U"S5 U"S5 U"S5 U"S5 U"SS/5 U"SS/5 U"SS/5 U"SS/5 U"SS/5 U"SS/5 SSS5 U"SS /5 U"S S!S /5 U"S"S /5 U"S#S$/5 U"S%S&S /5 U"S'S(/5 U"S)/5 U"S*S+S /5 U"S"S,/5 TRSS-9 TR TRS5 TRT5 U"SS S!/5 U"S S S /5 U"S"S /5 U"S#S$/5 U"S%S&S /5 U"S'S(S./5 U"S)S)/5 U"S*/S/Q5 U"S"S /5 SSS5 U"S0S1/5 U"S2S1S3/5 U"S4S /5 U"S5S6/5 U"S7S8/5 "S9S:[ 5nU"U"S;5SHanTR#US?9 TR%[&S@[)U5R*35 TR-U5 SSS5 SSS5 Mc U"S1/5 TR/5 TR1TT S15 U"S1/5 U"S3/5 TR/5 TR1TT SA5 U"SBSC-S"-SDSE/5 SFnU"USG-S"-USH-USI-/5 SJnU"USK-/5 U"USG-/5 U"USL-USM-/5 U"S"USL-/5 SSS5 GMR g!,(df  GN=f!,(df  GN=f!,(df  GN=f!,(df  GM{=f!,(df  GM=f)ONrgzTFr0r write_lenc>Uc [U5nTRUTRU55 UcU/nTRTTU5 grF)lenrSwriterJ)slinesrxrGr$rars r%r{)TestAndroidOutput.test_str..writesH ($'F $$Y Q@}!"$$UC7r(aHelloz Hello worldr/z uoléu中文u😀uz \ud800\udc00uz\udc80\xc0\x80za a\xc0\x80zb \xc0\x80bzab a\xc0\x80bz xz a xrzb bzc czd edxxzf gexxfg)line_bufferingefrrzhello hellozhello world worldz z!before form feed after form feed z before form feed after form feedu-before line separator
after line separator u,before line separator
after line separatorc&\rSrSrSrSrSrSrg)-TestAndroidOutput.test_str..CustomStrc[5erFrT)r$argsrIs r% splitlines8TestAndroidOutput.test_str..CustomStr.splitlines ,..r(c[5erFrr\s r%__len__5TestAndroidOutput.test_str..CustomStr.__len__rr(c[5erFrr\s r%__str__5TestAndroidOutput.test_str..CustomStr.__str__rr(N)__name__ __module__ __qualname____firstlineno__rrr__static_attributes__rr(r% CustomStrrs///r(rzcustom custom)r(shelloN*objz$write\(\) argument must be str, not helloworldfoobarifoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobaru0123456789d2 01234567893i^rF) STREAM_INFOrsr:rjrSreprassertIswritablereadablernencodingrrr_rbr`strriassertRaisesRegex TypeErrortyperr{flushr>) r$rornr{rrr|rGrars ` @@@r%test_strTestAndroidOutput.test_strs*5+ &K$$[%8 k2 }-  #3C5!;T&\J foo/6 foo/7  &9  &//:  !3V]]C f33T: f22E:8d88__V,"bM#J'N-(#J$K*%.),'.?*;<(YK0([M2)l^4)l^4*}o65-<ebT"gSz*dRD!ecU#gRy)fse$dBh -dSE"""%"8 f33T:__V,%"c+'B9-$%%#''C9-&3*-$'(N3$%-kG9-*Wg,>?frd#=<=?IHIK //i +hZ1E5C#.!33%C $S 2 235 #LL- /.5gr" sG4gr"gr" sL9x#~-0-/0 Sq3w$&3w2v !a#gr"a#gr"a"fq3wi(dQVH%c98+6.-,^-,N/.W98sqD%R) BQ B R)0A Q2A-R)=-R *R <R CR) Q/ *R)2 R <R) RR  R& R)) R9 c ^^^^[GHunmnTRUT5 [[U5RmSU3mTR STS3[ T55 TRTR5S5 TRTR5S5 TR TR5U5 SDSS.UUUU4SjjjnU"S/5 U"S 5 U"S 5 U"S 5 U"S 5 U"S 5 U"S5 U"S5 U"S5 U"SS/5 U"SS/5 U"SS/5 U"SS/5 U"SS/5 U"SS/5 U"SS/5 U"SS /5 U"S![S":aS#S$/OS$/5 U"S%[S":aS#S&/OS&/5 U"S'S#/5 U"S(S)/5 U"S*S+S#/5 U"S,S-S./5 U"S/S0/5 U"S1/S2Q5 U"S'S#/5 U"S3S4/5 U"S5S4S6/5 U"S7S#/5 U"[S855 [S95nU"US:/5 U"USSS;2SQ5S?/S@S9 SAHanTRUSB9 TR!["SC[%U5R&35 TR)U5 SSS5 SSS5 Mc SSS5 GM g!,(df  N(=f!,(df  M=f!,(df  GM=f)ENrgzUc [U5nTRUTRU55 UcUR5/nTR TTU5 grF)rzrSr{decoderJ)rr}rxrGr$rars r%r{+TestAndroidOutput.test_bytes..writesN ($'F $$Y Q@}!" $$UC7r(r(asHellos Hello world s solés中文s😀rsarsbrsabrz\xffsaza\xffsbz\xffbsabza\xffbs xrrs a r sb rsc rsd errsxxrsf grshello rshello world rs s bytearrays memoryview memoryviewrmmrveH)rriiz)\xc0\x80\xc0\x80\xc0\x80\xfe\xff\xff\xff)rrNrrz+write\(\) argument must be bytes-like, not rF)rrsr:rjbufferrSrrrrrn api_level bytearrayrrrirrrrr{) r$rornr{mvrrGrars ` @@@r% test_bytesTestAndroidOutput.test_bytess*5+ &K$$[%8 k299 }-  #5cU"!=tF|L foo/6 foo/7  &98d88c2d hn%d e m$12)*g }-h/h/i-1gy)h +h +i)-f9r>r3iuEhY^S #GebT"fse$hb *gSz*edV$i0ebT"lWI.+gw-?@gt$i -. .b<.)b1gy)# "# #*3C#.!33%J $S 2 235 #LL- /.3A98+6F/.C98s<H>K'#-K K "K * K' KK  K$ K'' K7 )rrr&)rrrrmaxDiffrCrJr>r?rrbrsrrrrr(r%rrsI GB88=$"44(S&ji.r(rc\rSrSrSrSrg)TestAndroidRateLimitic "^^^^ ^ ^ ^ SnSnSn[X#5m SmTSSU- [U5- [TRS55- -S-- m[5m U U 4S jm U 4S jm S nS m[ S US-5 [ STS-5 [ ST 5 [ ST 5 T R S5 T "TU- 5 SmUUUU U 4SjnUR U"5US-5 U"5 URU"5UUS-S9 T "TU- 5 UR U"5US-5 SSS5 SSS5 SSS5 SSS5 g!,(df  N'=f!,(df  N0=f!,(df  N9=f!,(df  g=f)Nzpython.rate_limitz Line {:03d} .irrc>T"S5 T$)Ng-C6?r)mock_now mock_sleepsr% mock_time7TestAndroidRateLimit.test_rate_limit..mock_times v Or(c>TU- mgrFr)durationrs r%r8TestAndroidRateLimit.test_rate_limit..mock_sleeps  Hr(r z%_android_support.MAX_BYTES_PER_SECONDz_android_support.BUCKET_SIZEz_android_support.sleepz_android_support.timez)Initial message to reset _prev_write_timec>T"5nTT-nTU:a-TRTRT55 TS- mTU:aM-TT"5U- - $)Nr)r{format)r8 max_line_num BUCKET_KBline_numrBrras r%write_bucketful=TestAndroidRateLimit.test_rate_limit..write_bucketfulsX! ')3 -LL!9:MH-!IK%$788r(rg?)delta)rrzrr r r{ assertGreaterassertAlmostEqual) r$PER_MESSAGE_OVERHEADANDROID_LOG_DEBUGrMAX_KB_PER_SECONDrrrrBrrrras @@@@@@@r%test_rate_limit$TestAndroidRateLimit.test_rate_limits!"06!3 ' '#c( 2S9J5K K   6   !  9;Lt;S T 0)d2B C *J 7 )9 5 LLD E y#44 5H 9 9   02Ca2G H    " "!#4'#- #  y#44 5   02Ca2G HG 6 8 D U T 6 5 8 7 D C U TsU:F E/ E$BE ,E4E/<F E E E, (E// E= 9F FrN)rrrrrrrr(r%rrs KIr(r)rlplatformr6rQr3rjunittest_android_supportrr contextlibrr threadingr test.supportrr unittest.mockr SkipTest android_verrrskipIfmachineTestCaserrrr(r%rs   *0)<<9   . //  " , , "#56   N6x'')Y6:_.))_. _.D LI8,,LIr(