wb l d Z ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddlm Z ddlmZ ddlmZ ddlm Z ddlmZ dd lmZ dd lmZ ddlmZ ddlmZ dd lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ erddlZddlZddlmZ d#dZd Z d Z!d Z"d Z# ej$ e d G d de Z% ej$ e d G d de Z& ej$ e d G d d e Z'e(d!k rdd"l)m*Z* e*e+ dS dS )$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)getpagesizec dg}t r| d |%| dt | g n9t st r| d n| d t r%t d }| | | } | d| g t | }t r| }n| d d }g }|D ]L}| } t | }n# t $ r Y nw xY w| | 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-o r ) r appendextendstrr r setgetr splitlinesstripint ValueError)fmtpidcmdfmt_mapoutput all_outputlines k/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib64/python3.11/site-packages/psutil/tests/test_posix.pyr r - s &C # >""" D#c((#$$$$ C JJtJJt $ ;<<kk#s##JJc{ WWF )""$$""$$QRR(J zz|| t99DD D $ {!}s %D55 EEc h d}t rd}t || d S )Nr r r )r r splitr' fields r- ps_namer2 k s3 E eS>>!!!$$ c d}t st rd}t || }t j dd| }| S )Nr argsz\(python.*?\)$ )r r r resubr# )r' r1 outs r- ps_argsr: r sJ E e UC..C &"B , ,C99;;r3 c 8 d}t rd}t || S )Nrssrssizer r r0 s r- ps_rssr? | s" E eS>>r3 c 8 d}t rd}t || S )Nvszvsizer> r0 s r- ps_vszrC s" E eS>>r3 z POSIX onlyc e Zd ZdZed Zed Zd Zd Zd Z d Z d Z e e d Z e e d Zd Zd Zd Zd Z ej eped d Zd Z e d Z ej ed ej ed d ZdS )TestProcesszBCompare psutil results against 'ps' command line utility (mainly).c ` t t ddgt j j | _ d S )Nz-Ez-O)stdin)r r subprocessPIPEr' clss r- setUpClasszTestProcess.setUpClass s0 *dD!9'18 8 88; r3 c . t | j d S N)r r' rJ s r- tearDownClasszTestProcess.tearDownClass s #'r3 c t d| j }t j | j }| || d S )Nppid)r r' psutilProcessrQ assertEqual)selfppid_psppid_psutils r- test_ppidzTestProcess.test_ppid sL VTX&&nTX..3355+.....r3 c t d| j }t j | j j }| || d S )Nuid)r r' rR rS uidsrealrT )rU uid_ps uid_psutils r- test_uidzTestProcess.test_uid sO E48$$^DH--22449 ,,,,,r3 c t d| j }t j | j j }| || d S )Nrgid)r r' rR rS gidsr\ rT )rU gid_ps gid_psutils r- test_gidzTestProcess.test_gid sO FDH%%^DH--22449 ,,,,,r3 c t d| j }t j | j }| || d S )Nuser)r r' rR rS usernamerT )rU username_psusername_psutils r- test_usernamezTestProcess.test_username sL ** .22;;==o66666r3 c @ t j }t j dt 5 }| | t | j |j sJ d d d d S # 1 swxY w Y d S )Nzpsutil.pwd.getpwuidside_effect)rR rS r patchKeyErrorrT rh r r[ r\ called)rU pfuns r- test_username_no_resolutionz'TestProcess.test_username_no_resolution s N Z-8 D D D QZZ\\3qvvxx}+=+=>>>:: s ABBBc t j d t | j }t j | j d dz }| || d S )N皙?r )timesleepr? r' rR rS memory_inforT )rU rss_ps rss_psutils r- test_rss_memoryzTestProcess.test_rss_memory c 3!!^DH--99;;A>E ,,,,,r3 c t j d t | j }t j | j d dz }| || d S )Nrv r rw )rx ry rC r' rR rS rz rT )rU vsz_ps vsz_psutils r- test_vsz_memoryzTestProcess.test_vsz_memory r~ r3 c t | j }t j | }t j | j }t j dd| }t j dd| }t j dd| }t j dd| }| || d S )Nz\d.\dr6 z\d)r2 r' ospathbasenamelowerrR rS namer7 r8 rT )rU name_psname_psutils r- test_namezTestProcess.test_name s $(##'""7++1133nTX..3355;;== &2w//fXr;77&G,,fUB44+.....r3 c B d}g d}t j d| 5 t j d| 5 t j }| | d d d d n# 1 swxY w Y d d d d S # 1 swxY w Y d S )Nlong-program-name)long-program-name-extendedfoobarpsutil._psplatform.Process.namereturn_value"psutil._psplatform.Process.cmdliner )r ro rR rS rT r )rU r cmdlinerr s r- test_name_longzTestProcess.test_name_long sX #>>> Z9%)+ + + I I@)02 2 2 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 Is4 B