bg}BldZddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddlm Z ddlm Z ddlm Z ddlm Z ddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZerddlZddlZddlmZd#dZdZ dZ!dZ"dZ#ej$e dGddeZ%ej$e dGddeZ&ej$e dGdd eZ'e(d!krdd"l)m*Z*e*e+dSdS)$zPOSIX specific tests.N)AIX)BSD)LINUX)MACOS)OPENBSD)POSIX)SUNOS)HAS_NET_IO_COUNTERS) PYTHON_EXE)PsutilTestCase)mock)retry_on_failure)sh)skip_on_access_denied)spawn_testproc) terminate)which) getpagesizecdg}tr|d|%|dt|gn9tst r|dn|dtr%t d}|||}|d|gt|}tr| }n| d d}g}|D]L}| } t|}n#t$rYnwxYw||M||S|d S) z| Wrapper for calling the ps command with a little bit of cross-platform support for a narrow range of features. psz --no-headersNz-pz-Aax)commandcommstartstimez-or) rappendextendstrr rsetgetr splitlinesstripint ValueError)fmtpidcmdfmt_mapoutput all_outputlines j/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/psutil/tests/test_posix.pyrr-s &C # >"""  D#c((#$$$$  C  JJt     JJt    $;<<kk#s##JJc{ WWF )""$$""$$QRR(J  zz|| t99DD    D  $ {!}s%D55 EEchd}trd}t||dS)Nrrr)r rsplitr'fields r-ps_namer2ks3 E  eS>>   ! !! $$cd}tstrd}t||}tjdd|}|S)Nrargsz\(python.*?\)$)rr rresubr#)r'r1outs r-ps_argsr:rsJ E e UC..C &"B , ,C 99;;r3c8d}trd}t||S)Nrssrssizerrr0s r-ps_rssr?|s" E  eS>>r3c8d}trd}t||S)Nvszvsizer>r0s r-ps_vszrCs" E  eS>>r3z POSIX onlyceZdZdZedZedZdZdZdZ dZ dZ e e d Ze e d Zd Zd Zd ZdZejepeddZdZe dZejedejeddZdS) TestProcesszBCompare psutil results against 'ps' command line utility (mainly).c`ttddgtjj|_dS)Nz-Ez-O)stdin)rr subprocessPIPEr'clss r- setUpClasszTestProcess.setUpClasss0 *dD!9'18888; r3c.t|jdSN)rr'rJs r- tearDownClasszTestProcess.tearDownClasss#'r3ctd|j}tj|j}|||dS)Nppid)rr'psutilProcessrQ assertEqual)selfppid_ps ppid_psutils r- test_ppidzTestProcess.test_ppidsLVTX&&nTX..3355  +.....r3ctd|j}tj|jj}|||dS)Nuid)rr'rRrSuidsrealrT)rUuid_ps uid_psutils r-test_uidzTestProcess.test_uidsOE48$$^DH--22449  ,,,,,r3ctd|j}tj|jj}|||dS)Nrgid)rr'rRrSgidsr\rT)rUgid_ps gid_psutils r-test_gidzTestProcess.test_gidsOFDH%%^DH--22449  ,,,,,r3ctd|j}tj|j}|||dS)Nuser)rr'rRrSusernamerT)rU username_psusername_psutils r- test_usernamezTestProcess.test_usernamesL**  .22;;== o66666r3c@tj}tjdt5}||t|j |j sJ ddddS#1swxYwYdS)Nzpsutil.pwd.getpwuid side_effect) rRrSr patchKeyErrorrTrhrr[r\called)rUpfuns r-test_username_no_resolutionz'TestProcess.test_username_no_resolutions N   Z-8 D D D    QZZ\\3qvvxx}+=+= > > >:  :                   sABBBctjdt|j}t j|jddz }|||dS)N皙?r)timesleepr?r'rRrS memory_inforT)rUrss_ps rss_psutils r-test_rss_memoryzTestProcess.test_rss_memoryc 3!!^DH--99;;A>E  ,,,,,r3ctjdt|j}t j|jddz }|||dS)Nrvrrw)rxryrCr'rRrSrzrT)rUvsz_ps vsz_psutils r-test_vsz_memoryzTestProcess.test_vsz_memoryr~r3ct|j}tj|}t j|j}tj dd|}tj dd|}tj dd|}tj dd|}| ||dS)Nz\d.\dr6z\d) r2r'ospathbasenamelowerrRrSnamer7r8rT)rUname_ps name_psutils r- test_namezTestProcess.test_names$(##'""7++1133nTX..3355;;== &2w//fXr;77 &G,,fUB 44  +.....r3cBd}gd}tjd|5tjd|5tj}||ddddn #1swxYwYddddS#1swxYwYdS)Nlong-program-name)long-program-name-extendedfoobarpsutil._psplatform.Process.name return_value"psutil._psplatform.Process.cmdliner)r rorRrSrTr)rUrcmdlinerrs r-test_name_longzTestProcess.test_name_longsX#>>> Z9%)+++ I I@)0222 I IN$$  +GHHH I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I Is4B??? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s5*B# ? ? ? ? ? ? @sA7BBct|j}dtj|j}|||dS)N )r:r'joinrRrSrrT)rU ps_cmdlinepsutil_cmdlines r- test_cmdlinezTestProcess.test_cmdlinesVTX&& &.":":"B"B"D"DEE ^44444r3znot reliable on SUNOSznot reliable on AIXctd|j}tj}|||dS)Nnice)rr'rRrSrrT)rUps_nice psutil_nices r- test_nicezTestProcess.test_nice&sJVTX&&n&&++--  +.....r3N)__name__ __module__ __qualname____doc__ classmethodrLrOrXr_rerkrtrrr}rrrrrunittestskipIfrrrrrr rrr3r-rErEsLL<<[<[/// --- --- 777 ------ / / / I I I @ @ @ @ @ @X_U\c#>?? O O@? O @ @ @(555X_U344X_S/00//1054///r3rEceZdZdZedZejedeje d deje ddZ edZ ed Z d Zd Zd Zd ZejededZdS)TestSystemAPIszTest some system APIs.cttdtjts t rdvrddttz dkrBfdDfdDz}|dt|zdS)Nr'rrcg|]}|v| Srr).0xpids_pss r- z,TestSystemAPIs.test_pids..?s#EEEAW4D4D!4D4D4Dr3cg|]}|v| Srr)rr pids_psutils r-rz,TestSystemAPIs.test_pids..@s#EEE0D0D!0D0D0Dr3z difference: ) sortedrrRpidsrrinsertrfailr)rU differencerrs @@r- test_pidszTestSystemAPIs.test_pids2sE##kmm   !G ! 0 0 NN1a  w<<#k** *Q . .EEEE[EEEEEEEWEEEFJ))NS__<== = / .r3zunreliable on SUNOSifconfigzno ifconfig cmdz not supportedc td}tjdD]K}|D]}||rn|d|d|LdS)Nz ifconfig -aT)perniczcouldn't find z nic in 'ifconfig -a' output )rrRnet_io_counterskeysr/ startswithr)rUr*nicr,s r-test_nic_nameszTestSystemAPIs.test_nic_namesEsM"")666;;== & &C  & &??3''EiiiVV%&&& & &r3ctd}|s|d|d}d|D}d|D}|t |t t j|t j|5tt jD]g\}}||j ||||j |||j t j |j h ddddS#1swxYwYdS)Nwho -uno users on this system cBg|]}|dS)rr/rrs r-rz-TestSystemAPIs.test_users..Zs$---!1---r3cBg|]}|dS)rrrs r-rz-TestSystemAPIs.test_users..[s$111aQWWYYq\111r3rRwho)rr#skipTestr/rTrrRuserssubTest enumeraterterminalr'rS)rUr9linesr terminalsidxus r- test_userszTestSystemAPIs.test_usersTsllyy{{ ;-- 9:: : $--u---115111  US%8%8999 \\S\ 9 9 * *#FLNN33 * *Q  s444  Ys^<<<5$N15)))  * * * * * * * * * * * * * * * * * * *sB E&&E*-E*cxtd}|s|dtjd|}|rd}n,tjd|}|rd}nt d|z|tj|5ttjD]X\}}tj |j  |}||||Y ddddS#1swxYwYdS) Nrrz\d\d\d\d-\d\d-\d\d \d\d:\d\dz%Y-%m-%d %H:%Mz[A-Z][a-z][a-z] \d\d \d\d:\d\dz %b %d %H:%Mz(cannot interpret tstamp in who output %sr)rr#rr7findallr%rrRrrrrstartedrrT)rUr9rtstamprr psutil_values r-test_users_startedz!TestSystemAPIs.test_users_starteddsllyy{{ ;-- 9:: :*>I  'x//  ws|<<<< = = = = = = = = = = = = = = = = = = =s'A:D//D36D3c tjdttjd5}|tt jjtj |j sJ ddddS#1swxYwYdS)Nzpsutil._psposix.os.killr6rm) r roOSErrorerrnoEBADFrrR_psposix pid_existsrgetpidrqrUms r-test_pid_exists_let_raisez(TestSystemAPIs.test_pid_exists_let_raise{sZ1$+EK$<$<>>> AB   gv'A29;; O O O8OO8O                  ABB Bc tjdttjd5}|tt jjtj |j sJ ddddS#1swxYwYdS)Npsutil._psposix.os.waitpidr6rm) r rorrrrrRrwait_pidrrrqrs r-test_os_waitpid_let_raisez(TestSystemAPIs.test_os_waitpid_let_raisesZ4$+EK$<$<>>> AB   gv'? M M M8OO8O                  rc8tjdttjd5}|t jjt jj tj d|j sJ ddddS#1swxYwYdS)Nrr6rmg{Gz?)timeout) r rorrEINTRrrRrTimeoutExpiredrrrrqrs r-test_os_waitpid_eintrz$TestSystemAPIs.test_os_waitpid_eintrs Z4$+EK$<$<>>> AB   .(")++t  E E E8OO8O                   sABBBctjdd5}|ttjjtj|j sJ ddddS#1swxYwYdS)Nr)rr) r rorr%rRrrrrrqrs r-test_os_waitpid_bad_ret_statusz-TestSystemAPIs.test_os_waitpid_bad_ret_statuss Z4%,... 12   j$o6  E E E8OO8O                   sAA++A/2A/zunreliable on AIXcfd}d}tjdD]}tj|j} ||j\}}}}|j|||j|||j|||j |d#t$r8} t|  } d| vsd| vsd | vrYd} ~ d} ~ wwxYwdS) Nc2 td|z}nK#t$r>}dt|vr dd}~wwxYw|dd}|}t|ddz}t|ddz}t|ddz}t|d  d d }||||fS) Nzdf -k %sz device busyzdf returned EBUSYrrrw%r6) rr# RuntimeErrorrrrr/r$floatreplace) devicer9errr,fieldstotalusedfreepercentrUs r-dfz*TestSystemAPIs.test_disk_usage..dfs f,--3355    CHHNN$4$444--(;<<< 99T??1%DZZ\\Fq NNT)Evay>>D(Dvay>>D(DF1I--c26677G4w/ /s$( A09A++A0i@F)all)deltarzno such file or directoryzraw devices not supportedzpermission denied) rRdisk_partitions disk_usage mountpointrassertAlmostEqualrrrr rrr) rUr! tolerancepartusagerrrr rs ` r-test_disk_usagezTestSystemAPIs.test_disk_usages^ 0 0 0 0 0$ *u555 H HD%do66E H-/R __*tT7&&u{E&KKK&&uz4y&III&&uz4y&III&&u}gQ&GGGG   #hhnn&&.#553s::+s22HHHH   H HsC D-DDDN)rrrrrrrrr rr rrrrrr rrr+rr3r-rr.sv  >>>$X_U122X_z***,=>>X_,,o>> & &?>?>32 & * * *===,X_S-..#H#H/.#H#H#Hr3rceZdZdZdS)TestMiscct}||d||tj||tjdS)Nr)r assertGreaterrTresourcemmapPAGESIZE)rUpagesizes r-test_getpagesizezTestMisc.test_getpagesizes^== 8Q''' 8#7#9#9::: 4=11111r3N)rrrr4rr3r-r-r-s#22222r3r-__main__) run_from_namerN),rrrrr7rHrxrrRrrrrrrr psutil.testsr r r r rrrrrrr1r0psutil._psutil_posixrrr2r:r?rCrrErr-rpsutil.tests.runnerr6__file__rr3r-r;s5   ,,,,,,######''''''))))))......''''''"""""" 1KKKOOO0000000000|%%%UL))`/`/`/`/`/.`/`/*)`/FUL))THTHTHTHTH^THTH*)THnUL))22222~22*)2 z111111M(r3