403Webshell
Server IP : 192.158.238.246  /  Your IP : 18.117.246.69
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib64/python3.7/site-packages/psutil/tests/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib64/python3.7/site-packages/psutil/tests/__pycache__/test_linux.cpython-37.pyc
B

�=�_�^�@sdZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlmZddlmZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%ddlm&Z&ddlm'Z'ddlm(Z(ddlm)Z)ddlm*Z*ej+�,ej+�-e.��Z/dZ0dZ1dZ2dZ3d Z4e�r�d!Z5e�d"�Z6d#d$�Z7d%d&�Z8d'd(�Z9d)d*�Z:d+d,�Z;d-d.�Z<d/d0�Z=d1d2�Z>d3d4�Z?ej@d5d6��ZAej@d7d8��ZBe)�Ced9�Gd:d;�d;e��ZDe)�Ced9�Gd<d=�d=e��ZEe)�Ced9�Gd>d?�d?e��ZFe)�Ced9�Gd@dA�dAe��ZGe)�Ced9�GdBdC�dCe��ZHe)�Ced9�GdDdE�dEe��ZIe)�Ced9�GdFdG�dGe��ZJe)�Ced9�GdHdI�dIe��ZKe)�Ced9�GdJdK�dKe��ZLe)�Ced9�GdLdM�dMe��ZMe)�Ced9�GdNdO�dOe��ZNe)�Ced9�GdPdQ�dQe��ZOe)�Ced9�GdRdS�dSe��ZPe)�Ced9�GdTdU�dUe��ZQe)�Ced9�GdVdW�dWe��ZRe)�Ced9�e)�CedX�GdYdZ�dZe���ZSe)�Ced9�Gd[d\�d\e��ZTe)�Ced9�Gd]d^�d^e��ZUe)�Ced9�Gd_d`�d`e��ZVe)�Ced9�Gdadb�dbe��ZWe)�Ced9�Gdcdd�dde��ZXe)�Ced9�Gdedf�dfe��ZYeZdgk�rddhl[m\Z\e\e.�dS)izLinux specific tests.�)�divisionN)�LINUX)�
basestring)�FileNotFoundError)�PY3)�u)�
call_until)�GLOBAL_TIMEOUT)�HAS_BATTERY)�HAS_CPU_FREQ)�HAS_GETLOADAVG)�
HAS_RLIMIT)�mock)�PsutilTestCase)�PYPY)�
reload_module)�retry_on_failure)�safe_rmpath)�sh)�skip_on_not_implemented)�
ThreadTask)�TOLERANCE_DISK_USAGE)�TOLERANCE_SYS_MEM)�unittest)�whichi�i�i'�i�i�iz/sys/class/hwmon/hwmon*cCspddl}|dd�}tr"t|d�}t�tjtj�}t�|��*t�|�	|�
�tt�
d|��dd��SQRXdS)Nr��ascii�256s��)�fcntlr�bytes�socket�AF_INET�
SOCK_DGRAM�
contextlib�closing�	inet_ntoa�ioctl�fileno�SIOCGIFADDR�struct�pack)�ifnamer �s�r/�J/opt/alt/python37/lib64/python3.7/site-packages/psutil/tests/test_linux.py�get_ipv4_addressBs

r1cCspddl}|dd�}tr"t|d�}t�tjtj�}t�|��*t�|�	|�
�tt�
d|��dd��SQRXdS)Nrrrrrr)r rr!r"r#r$r%r&r'r(r)�SIOCGIFNETMASKr+r,)r-r r.r/r/r0�get_ipv4_netmaskOs

r3cCspddl}|dd�}tr"t|d�}t�tjtj�}t�|��*t�|�	|�
�tt�
d|��dd��SQRXdS)Nrrrrrr)r rr!r"r#r$r%r&r'r(r)�SIOCGIFBRDADDRr+r,)r-r r.r/r/r0�get_ipv4_broadcast\s

r5c		Cs�tdd��:}x2|��D]}|��}|d|krPqWtd|��WdQRX|d}g}x.tdt|�d�D]}|�|||d��qhWd�|�}t�	tj
|�}t�tj
|�S)Nz/proc/net/if_inet6�rt���zcould not find interface %rr��:)�open�	readlines�split�
ValueError�range�len�append�joinr"�	inet_pton�AF_INET6�	inet_ntop)	r-�f�line�fieldsZunformatted�groups�i�	formattedZpackedr/r/r0�get_ipv6_addressis
rKc	s�ddl}|dd�}tr"t|d�}t�tjtj�}t�|��`|�|�	�t
t�d|��}trfdd��nddl
}|j�d��fdd	�|d
d�D��dd�SQRXdS)
NrrrrcSs|S)Nr/)�xr/r/r0�ord�szget_mac_address.<locals>.ord�csg|]}d�|��qS)z%02x:r/)�.0�char)rMr/r0�
<listcomp>�sz#get_mac_address.<locals>.<listcomp>�rr7)r rr!r"r#r$r%r&r(r)�
SIOCGIFHWADDRr+r,�__builtin__rMrA)r-r r.�inforTr/)rMr0�get_mac_addresszs

rVcCs|tdddid�}|�d�}xJ|D]B}|�d�r |��\}}}}t�dd�}|t|�t|�t|��Sq Wtd	d�|���d
S)zQParse 'free' cmd and return swap memory's s total, used and free
    values.
    zfree -b�LANGzC.UTF-8)�env�
ZSwap�freeztotal used freez&can't find 'Swap' in 'free' output:
%sN)rr<�
startswith�collections�
namedtuple�intr=rA)�out�linesrF�_�total�usedrZ�ntr/r/r0�	free_swap�s


recCs�tdddid�}|�d�}xT|D]L}|�d�r dd�|��d	d
�D�\}}}}t�dd�}||||||�Sq Wtd
d�|���dS)zSParse 'free' cmd and return physical memory's total, used
    and free values.
    zfree -brWzC.UTF-8)rXrYZMemcSsg|]}t|��qSr/)r^)rOrLr/r/r0rQ�sz free_physmem.<locals>.<listcomp>��rZztotal used free shared outputz%can't find 'Mem' in 'free' output:
%sN)rr<r[r\r]r=rA)r_r`rFrbrcrZ�sharedrdr/r/r0�free_physmem�s


"ricCsVtdddid�}x4|�d�D]&}|��}||krt|�d�d�SqWtd|��dS)	Nz	vmstat -srWzC.UTF-8)rXrY� rz can't find %r in 'vmstat' output)rr<�stripr^r=)�statr_rFr/r/r0�vmstat�srmcCs:td���}d|krt�d��ttt|��d�d���S)Nzfree -V�UNKNOWNzcan't determine free versionr7�.)rrkr�SkipTest�tuple�mapr^r<)r_r/r/r0�get_free_version_info�s
rsc	#sF���fdd�}t�trdnd}tj|d|d��}|VWdQRXdS)zMock open() builtin and forces it to return a certain `content`
    on read() if the path being opened matches `for_path`.
    csL|�kr8tr,t�t�r t���St���SqHt���Sn�|f|�|�SdS)N)r�
isinstancer�io�StringIO�BytesIO)�name�args�kwargs)�content�for_path�	orig_openr/r0�	open_mock�s

z$mock_open_content.<locals>.open_mockz
builtins.openz__builtin__.openT)�create�side_effectN)r:rr�patch)r|r{r~�patch_point�mr/)r{r|r}r0�mock_open_content�s
r�c	#sF���fdd�}t�trdnd}tj|d|d��}|VWdQRXdS)zZMock open() builtin and raises `exc` if the path being opened
    matches `for_path`.
    cs"|�kr��n�|f|�|�SdS)Nr/)rxryrz)�excr|r}r/r0r~�sz&mock_open_exception.<locals>.open_mockz
builtins.openz__builtin__.openT)rr�N)r:rrr�)r|r�r~r�r�r/)r�r|r}r0�mock_open_exception�s
r�z
LINUX onlyc@s�eZdZdd�Ze�dd��Ze�dd��Ze�dd��Ze�d	d
��Ze�dd��Z	e�d
d��Z
e�dd��Zdd�Ze�dd��Z
dd�Zdd�Zdd�Zdd�ZdS)�TestSystemVirtualMemorycCs&td�d}t��j}|�||�dS)Nztotal memoryi)rm�psutil�virtual_memoryrb�assertAlmostEqual)�self�vmstat_value�psutil_valuer/r/r0�
test_total�s
z"TestSystemVirtualMemory.test_totalcCsLt�dkr|�d��t�}|j}t��j}|j||td|||jfd�dS)N)�r��zold free versionz	%s %s 
%s)�delta�msg)	rsZskipTestrircr�r�r�r�output)r�rZ�
free_valuer�r/r/r0�	test_used�s


z!TestSystemVirtualMemory.test_usedcCs*td�d}t��j}|j||td�dS)Nzfree memoryi)r�)rmr�r�rZr�r)r�r�r�r/r/r0�	test_frees
z!TestSystemVirtualMemory.test_freecCs*td�d}t��j}|j||td�dS)Nz
buffer memoryi)r�)rmr�r��buffersr�r)r�r�r�r/r/r0�test_bufferss
z$TestSystemVirtualMemory.test_bufferscCs*td�d}t��j}|j||td�dS)Nz
active memoryi)r�)rmr�r��activer�r)r�r�r�r/r/r0�test_actives
z#TestSystemVirtualMemory.test_activecCs*td�d}t��j}|j||td�dS)Nzinactive memoryi)r�)rmr�r��inactiver�r)r�r�r�r/r/r0�
test_inactives
z%TestSystemVirtualMemory.test_inactivecCsJt�}|j}|dkrt�d��t��j}|j||td|||jfd�dS)Nrz%free does not support 'shared' columnz	%s %s 
%s)r�r�)	rirhrrpr�r�r�rr�)r�rZr�r�r/r/r0�test_shared#s

z#TestSystemVirtualMemory.test_sharedcCshtd�}|�d�}d|dkr*t�d��n:t|d��d�}t��j}|j||t	d|||fd	�dS)
Nzfree -brY�	availablerz(free does not support 'available' columnrfr7z	%s %s 
%s)r�r�)
rr<rrpr^r�r�r�r�r)r�r_r`r�r�r/r/r0�test_available.s

z&TestSystemVirtualMemory.test_availablec
Csdtdt�d������D}tjdd���*}t�d�t��}|j	sDt
�|�t|�d�|d}|j
�d�slt
�|�d	t|j��|�d
t|j��|�dt|j��|�dt|j��|�d
t|j��|�dt|j��|�dt|j��|�|jd�|�|jd�|�|jd�|�|jd�|�|jd�|�|jd�|�|jd�WdQRXWdQRXdS)Nz
/proc/meminfoap                Active(anon):    6145416 kB
                Active(file):    2950064 kB
                Inactive(anon):   574764 kB
                Inactive(file):  1567648 kB
                MemAvailable:         -1 kB
                MemFree:         2057400 kB
                MemTotal:       16325648 kB
                SReclaimable:     346648 kB
                T)�record�alwaysrfrzpsutil/_pslinux.pyz#memory stats couldn't be determined�cachedrhr�r�r�r�)r��textwrap�dedent�encode�warnings�catch_warnings�simplefilterr�r��called�AssertionError�assertEqualr?�filename�endswith�assertIn�str�messager�r�r�rhr�r��slab)r�r��ws�ret�wr/r/r0�test_warnings_on_misses=s4	

z/TestSystemVirtualMemory.test_warnings_on_missesc
	Cs�ddlm}ddlm}i}|d��4}x,|D]$}|��}t|d�d||d<q,WWdQRX||�}d|kr�|d}t||�|d}	|�|	d	�dS)
Nr)�calculate_avail_vmem)�open_binaryz
/proc/meminforfis
MemAvailable:�dr)�psutil._pslinuxr�r�r<r^�absZ
assertLess)
r�r�r�ZmemsrErFrG�a�bZdiff_percentr/r/r0�test_avail_old_percentds

&z.TestSystemVirtualMemory.test_avail_old_percentc
Csvtdt�d�����X}tjdd��}t��}WdQRX|js@t	�|�
|jd�|d}|�dt
|j��WdQRXdS)Nz
/proc/meminfoaL                Active:          9444728 kB
                Active(anon):    6145416 kB
                Active(file):    2950064 kB
                Buffers:          287952 kB
                Cached:          4818144 kB
                Inactive(file):  1578132 kB
                Inactive(anon):   574764 kB
                Inactive(file):  1567648 kB
                MemAvailable:    6574984 kB
                MemFree:         2057400 kB
                MemTotal:       16325648 kB
                Shmem:            577588 kB
                SReclaimable:     346648 kB
                T)r�l �"rz,inactive memory stats couldn't be determined)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)r�r�r�r�r�r/r/r0� test_avail_old_comes_from_kernelws
z8TestSystemVirtualMemory.test_avail_old_comes_from_kernelc
Csvtdt�d�����X}tjdd��}t��}WdQRX|js@t	�|�
|jd�|d}|�dt
|j��WdQRXdS)Nz
/proc/meminfoa�                    Active:          9444728 kB
                    Active(anon):    6145416 kB
                    Buffers:          287952 kB
                    Cached:          4818144 kB
                    Inactive(file):  1578132 kB
                    Inactive(anon):   574764 kB
                    MemFree:         2057400 kB
                    MemTotal:       16325648 kB
                    Shmem:            577588 kB
                    T)r�l`LGrz,inactive memory stats couldn't be determined)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)r�r�r�r�r�r/r/r0�test_avail_old_missing_fields�s

z5TestSystemVirtualMemory.test_avail_old_missing_fieldscCs�tdt�d�����ltdttjd���Ntj	dd��6}t
��}|�|j
d�|d}|�d	t|j��WdQRXWdQRXWdQRXdS)
Nz
/proc/meminfoaT                    Active:          9444728 kB
                    Active(anon):    6145416 kB
                    Active(file):    2950064 kB
                    Buffers:          287952 kB
                    Cached:          4818144 kB
                    Inactive(file):  1578132 kB
                    Inactive(anon):   574764 kB
                    Inactive(file):  1567648 kB
                    MemFree:         2057400 kB
                    MemTotal:       16325648 kB
                    Shmem:            577588 kB
                    SReclaimable:     346648 kB
                    z/proc/zoneinfozno such file or directoryT)r�l`LGrz,inactive memory stats couldn't be determined)r�r�r�r�r��IOError�errno�ENOENTr�r�r�r�r�r�r�r�r�)r�r�r�r�r/r/r0�test_avail_old_missing_zoneinfo�s

z7TestSystemVirtualMemory.test_avail_old_missing_zoneinfoc	s��fdd�}t�trdnd}tj|d|d���}t��}|js@t�|�|j	d�|�|j
d�|�|jd	�|�|jd
�|�|j
d�|�|jd�|�|jd
�|�|jd�|�|jd�WdQRXdS)Ncs0|dkrt�t�d����S�|f|�|�SdS)Nz
/proc/meminfoa=	                    MemTotal:              100 kB
                    MemFree:               2 kB
                    MemAvailable:          3 kB
                    Buffers:               4 kB
                    Cached:                5 kB
                    SwapCached:            6 kB
                    Active:                7 kB
                    Inactive:              8 kB
                    Active(anon):          9 kB
                    Inactive(anon):        10 kB
                    Active(file):          11 kB
                    Inactive(file):        12 kB
                    Unevictable:           13 kB
                    Mlocked:               14 kB
                    SwapTotal:             15 kB
                    SwapFree:              16 kB
                    Dirty:                 17 kB
                    Writeback:             18 kB
                    AnonPages:             19 kB
                    Mapped:                20 kB
                    Shmem:                 21 kB
                    Slab:                  22 kB
                    SReclaimable:          23 kB
                    SUnreclaim:            24 kB
                    KernelStack:           25 kB
                    PageTables:            26 kB
                    NFS_Unstable:          27 kB
                    Bounce:                28 kB
                    WritebackTmp:          29 kB
                    CommitLimit:           30 kB
                    Committed_AS:          31 kB
                    VmallocTotal:          32 kB
                    VmallocUsed:           33 kB
                    VmallocChunk:          34 kB
                    HardwareCorrupted:     35 kB
                    AnonHugePages:         36 kB
                    ShmemHugePages:        37 kB
                    ShmemPmdMapped:        38 kB
                    CmaTotal:              39 kB
                    CmaFree:               40 kB
                    HugePages_Total:       41 kB
                    HugePages_Free:        42 kB
                    HugePages_Rsvd:        43 kB
                    HugePages_Surp:        44 kB
                    Hugepagesize:          45 kB
                    DirectMap46k:          46 kB
                    DirectMap47M:          47 kB
                    DirectMap48G:          48 kB
                    )rurwr�r�r�)rxryrz)r}r/r0r~�s1zETestSystemVirtualMemory.test_virtual_memory_mocked.<locals>.open_mockz
builtins.openz__builtin__.openT)rr�i�iiipiTii iXi)r:rrr�r�r�r�r�r�rbrZr�r�rhr�r�r�r�)r�r~r�r��memr/)r}r0�test_virtual_memory_mocked�s7
z2TestSystemVirtualMemory.test_virtual_memory_mockedN)�__name__�
__module__�__qualname__r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r/r/r/r0r��s'r�c@s\eZdZedd��Zdd�Ze�dd��Ze�dd��Zd	d
�Z	dd�Z
d
d�Zdd�ZdS)�TestSystemSwapMemoryc	Cs,td��}|��}WdQRXd|ko*d|kS)z3Return True if /proc/meminfo provides swap metrics.z
/proc/meminfoNz
SwapTotal:z	SwapFree:)r:�read)rE�datar/r/r0�meminfo_has_swap_infos
z*TestSystemSwapMemory.meminfo_has_swap_infocCs"t�j}t��j}|j||td�S)N)r�)rerbr��swap_memoryr�r)r�r�r�r/r/r0r�$s
zTestSystemSwapMemory.test_totalcCs"t�j}t��j}|j||td�S)N)r�)rercr�r�r�r)r�r�r�r/r/r0r�*s
zTestSystemSwapMemory.test_usedcCs"t�j}t��j}|j||td�S)N)r�)rerZr�r�r�r)r�r�r�r/r/r0r�1s
zTestSystemSwapMemory.test_freec
Cs�tjddd���}tjdd��x}t�d�t��}|js:t�|�	t
|�d�|d}|j�d�sbt�|�
d	t|j��|�	|jd�|�	|jd�WdQRXWdQRXdS)
Nzpsutil._common.openT)r)r�r�rfrzpsutil/_pslinux.pyz9'sin' and 'sout' swap memory stats couldn't be determined)rr�r�r�r�r�r�r�r�r�r?r�r�r�r�r��sin�sout)r�r�r�r�r�r/r/r0�test_missing_sin_sout8s

z*TestSystemSwapMemory.test_missing_sin_soutc
Cs�tdttjd����}tjdd��x}t�d�t��}|j	s>t
�|�t|�d�|d}|j
�d�sft
�|�d	t|j��|�|jd�|�|jd�WdQRXWdQRXdS)
Nz/proc/vmstatzno such file or directoryT)r�r�rfrzpsutil/_pslinux.pyzK'sin' and 'sout' swap memory stats couldn't be determined and were set to 0)r�r�r�r�r�r�r�r�r�r�r�r�r?r�r�r�r�r�r�r�)r�r�r�r�r�r/r/r0�test_no_vmstat_mockedGs

z*TestSystemSwapMemory.test_no_vmstat_mockedc	Cs�|��st�d�St�d��}t��}WdQRX|jr:t�ddl	m
}|��\}}}}}}}||9}||9}|�|j
|�|j|j|td�dS)Nz!/proc/meminfo has no swap metricsz"psutil._pslinux.cext.linux_sysinfor)r�)r�r�skiprr�r�r�r�r�Zpsutil._psutil_linuxZ
_psutil_linuxZ
linux_sysinfor�rbr�rZr)r�r��swapZcextrarbrZZunit_multiplierr/r/r0�test_meminfo_against_sysinfoZs

z1TestSystemSwapMemory.test_meminfo_against_sysinfoc	Cs,tdd��}t��|jst�WdQRXdS)Nz
/proc/meminfo�)r�r�r�r�r�)r�r�r/r/r0�#test_emulate_meminfo_has_no_metricsjsz8TestSystemSwapMemory.test_emulate_meminfo_has_no_metricsN)
r�r�r��staticmethodr�r�rr�r�r�r�r�r�r/r/r/r0r�sr�c@seZdZdd�ZdS)�TestSystemCPUTimescCs�t��j}t�dt��d�d}ttt	|�
d���}|dkrL|�d|�n|�d|�|dkrn|�d|�n|�d|�|d	kr�|�d
|�n|�d
|�dS)Nz
\d+\.\d+\.\d+�rro)r����steal)r�r�rZguest)r�r�rZ
guest_nice)
r��	cpu_times�_fields�re�findall�os�unamerqrrr^r<r��assertNotIn)r�rGZ
kernel_verZkernel_ver_infor/r/r0�test_fields{s
zTestSystemCPUTimes.test_fieldsN)r�r�r�r�r/r/r/r0r�xsr�c@s�eZdZe�ej�d�d�dd��Ze�ej�d�d�dd��Z	e�e
d	�d
�dd��Ze�e
d
�d�dd��Zdd�Z
dS)�TestSystemCPUCountLogicalz/sys/devices/system/cpu/onlinez-/sys/devices/system/cpu/online does not existc	CsVtd��}|����}WdQRXdt|�krRt|�d�d�d}|�t��|�dS)Nz/sys/devices/system/cpu/online�-rf)	r:r�rkr�r^r<r�r��	cpu_count)r�rE�valuer/r/r0�test_against_sysdev_cpu_online�s

z8TestSystemCPUCountLogical.test_against_sysdev_cpu_onlinez/sys/devices/system/cpuz&/sys/devices/system/cpu does not existcCs0t�d�}tdd�|D��}|�t��|�dS)Nz/sys/devices/system/cpucSs g|]}t�d|�dk	r|�qS)zcpu\d+$N)r��search)rOrLr/r/r0rQ�szITestSystemCPUCountLogical.test_against_sysdev_cpu_num.<locals>.<listcomp>)r��listdirr?r�r�r�)r�Zls�countr/r/r0�test_against_sysdev_cpu_num�s
z5TestSystemCPUCountLogical.test_against_sysdev_cpu_numZnprocznproc utility not availablecCs$ttd��}|�tjdd�|�dS)Nznproc --allT)�logical)r^rr�r�r�)r��numr/r/r0�test_against_nproc�sz,TestSystemCPUCountLogical.test_against_nproc�lscpuzlscpu utility not availablecCs8td�}tdd�|�d�D��}|�tjdd�|�dS)Nzlscpu -pcSsg|]}|�d�s|�qS)�#)r[)rOrLr/r/r0rQ�sz@TestSystemCPUCountLogical.test_against_lscpu.<locals>.<listcomp>rYT)r�)rr?r<r�r�r�)r�r_r�r/r/r0�test_against_lscpu�sz,TestSystemCPUCountLogical.test_against_lscpuc
Csddl}|j��}tjdtd���}|�|j��|�|js>t�tjddd��:}|�	|j���|�|j
d�|�|jddd�WdQRXtd	d
��}|�
�}WdQRXt�|�}tjd|dd��}|�|j��|�WdQRXtd	d��}|�|j��|�|jWdQRXWdQRXdS)
Nrzpsutil._pslinux.os.sysconf)r�zpsutil._common.openT)rr�z
/proc/statz
/proc/cpuinfo�rb)�return_valuerr�)r��_pslinuxZcpu_count_logicalrr�r=r�r�r��assertIsNoneZ
call_count�	call_argsr:r�rurwr�)r�r��originalr�rEZcpuinfo_data�	fake_filer/r/r0�test_emulate_fallbacks�s&

 
z0TestSystemCPUCountLogical.test_emulate_fallbacksN)r�r�r�r�skipIfr��path�existsr�r�rr�r�r�r/r/r/r0r��sr�c@s6eZdZe�ed�d�dd��Zdd�Zdd�Zd	S)
�TestSystemCPUCountPhysicalr�zlscpu utility not availablecCs`td�}t�}x4|�d�D]&}|�d�s|�d�}|�|d�qW|�tjdd�t|��dS)Nzlscpu -prYr��,rfF)r�)	r�setr<r[�addr�r�r�r?)r�r_Zcore_idsrFrGr/r/r0r��s

z-TestSystemCPUCountPhysical.test_against_lscpuc	CsPtj��}tjdgd��}tj��}|js.t�WdQRX|dk	rL|�||�dS)Nz	glob.glob)r�)r�r��cpu_count_physicalrr�r�r�r�)r�Zmeth_1r�Zmeth_2r/r/r0�
test_method_2�s

z(TestSystemCPUCountPhysical.test_method_2c
Cs\tjdgd��0}tjddd��}|�tj���WdQRXWdQRX|jsNt�|jsXt�dS)Nz	glob.glob)r�zpsutil._common.openT)r)rr�r�r�r�rr�r�)r��m1�m2r/r/r0�test_emulate_none�s
$
z,TestSystemCPUCountPhysical.test_emulate_noneN)	r�r�r�rr�rr�rrr/r/r/r0r��s
r�c@szeZdZe�ed�dd��Ze�ed�dd��Ze�ed�dd��Ze�ed�dd	��Z	e�ed�d
d��Z
dS)
�TestSystemCPUFrequencyz
not supportedc	s@�fdd�}tjj�tjd|dd��t��s2t�WdQRXdS)Ncs|�d�rdS�|�SdS)Nz&/sys/devices/system/cpu/cpufreq/policyF)r[)r�)�orig_existsr/r0�path_exists_mock�s
zMTestSystemCPUFrequency.test_emulate_use_second_file.<locals>.path_exists_mockzos.path.existsT)r�r)r�r�r�rr�r��cpu_freqr�)r�r
r/)r	r0�test_emulate_use_second_file�s

z3TestSystemCPUFrequency.test_emulate_use_second_filec	s���fdd�}g�tjj�z�tjd|d��vttj�t��}|sFt	��sNt	�|�
|jd�|�
|jd�x0tjdd�D] }|�
|jd�|�
|jd�qxWWdQRXWdttj�tt�XdS)Ncs,|�d�rdS|dkr ��d��|�SdS)Nz/sys/devices/system/cpu/Fz
/proc/cpuinfo)r[r@)r�)�flags�os_path_existsr/r0r
�s


zITestSystemCPUFrequency.test_emulate_use_cpuinfo.<locals>.path_exists_mockzos.path.exists)r�gT)�percpu)
r�r�r�rr�rr�r�rr�r��max�min)r�r
r��freqr/)r
rr0�test_emulate_use_cpuinfo�s 
 
z/TestSystemCPUFrequency.test_emulate_use_cpuinfoc
s��fdd�}t�trdnd}tj||d��ftjddd��Lt��}|�|jd	�|jd
krj|�|jd�|j	d
kr�|�|j	d�WdQRXWdQRXdS)
Ncs�|�d�r|�d�rt�d�S|�d�r<|�d�r<t�d�S|�d�rZ|�d�rZt�d�S|dkrlt�d	�S�|f|�|�SdS)
Nz/scaling_cur_freqz&/sys/devices/system/cpu/cpufreq/policys500000z/scaling_min_freqs600000z/scaling_max_freqs700000z
/proc/cpuinfoscpu MHz		: 500)r�r[rurw)rxryrz)r}r/r0r~s









z;TestSystemCPUFrequency.test_emulate_data.<locals>.open_mockz
builtins.openz__builtin__.open)r�zos.path.existsT)r�g@@gg��@g�@)
r:rrr�r�rr��currentrr)r�r~r�rr/)r}r0�test_emulate_datas

z(TestSystemCPUFrequency.test_emulate_datacs�fdd�}t�trdnd}tj||d���tjddd���tjd	d
d���tjdd�}|�|djd
�|djdkr�|�|djd�|dj	dkr�|�|dj	d�|�|djd�|djdkr�|�|djd�|dj	dkr�|�|dj	d�WdQRXWdQRXWdQRXdS)Ncs�|}|�d�r"|�d�r"t�d�S|�d�r@|�d�r@t�d�S|�d�r^|�d�r^t�d�S|�d�r||�d�r|t�d	�S|�d�r�|�d�r�t�d
�S|�d�r�|�d�r�t�d�S|dkr�t�d
�S�|f|�|�SdS)Nz/scaling_cur_freqz'/sys/devices/system/cpu/cpufreq/policy0s100000z/scaling_min_freqs200000z/scaling_max_freqs300000z'/sys/devices/system/cpu/cpufreq/policy1s400000s500000s600000z
/proc/cpuinfoscpu MHz		: 100
cpu MHz		: 400)r�r[rurw)rxryrz�n)r}r/r0r~9s,


















z@TestSystemCPUFrequency.test_emulate_multi_cpu.<locals>.open_mockz
builtins.openz__builtin__.open)r�zos.path.existsT)r�z!psutil._pslinux.cpu_count_logicalr�)rrgY@ggi@g�r@rfgy@g@@g��@)
r:rrr�r�rr�rrr)r�r~r�rr/)r}r0�test_emulate_multi_cpu7s$
z-TestSystemCPUFrequency.test_emulate_multi_cpucs��fdd�}t�trdnd}tj||d��Ptjddd��6tjd	d
d��t��}|�|jd�WdQRXWdQRXWdQRXdS)NcsR|�d�rttjd��n6|�d�r,t�d�S|dkr>t�d�S�|f|�|�SdS)Nz/scaling_cur_freqrNz/cpuinfo_cur_freqs200000z
/proc/cpuinfoscpu MHz		: 200)r�r�r�r�rurw)rxryrz)r}r/r0r~hs



zOTestSystemCPUFrequency.test_emulate_no_scaling_cur_freq_file.<locals>.open_mockz
builtins.openz__builtin__.open)r�zos.path.existsT)r�z!psutil._pslinux.cpu_count_logicalrf��)r:rrr�r�rr�r)r�r~r�rr/)r}r0�%test_emulate_no_scaling_cur_freq_filees

z<TestSystemCPUFrequency.test_emulate_no_scaling_cur_freq_fileN)r�r�r�rr�rrrrrrr/r/r/r0r�s
.rc@seZdZdd�Zdd�ZdS)�TestSystemCPUStatscCs&td�}t��j}|j||dd�dS)Nzcontext switchesi�)r�)rmr��	cpu_stats�ctx_switchesr�)r�r�r�r/r/r0�test_ctx_switchess
z$TestSystemCPUStats.test_ctx_switchescCs&td�}t��j}|j||dd�dS)N�
interruptsi�)r�)rmr�rrr�)r�r�r�r/r/r0�test_interrupts�s
z"TestSystemCPUStats.test_interruptsN)r�r�r�rrr/r/r/r0r|src@s"eZdZe�ed�dd��ZdS)�TestLoadAvgz
not supportedc	Cs�t��}tdd��}|����}WdQRX|jt|d�|ddd�|jt|d�|ddd�|jt|d�|ddd�dS)Nz
/proc/loadavg�rrrf)r�r�)r��
getloadavgr:r�r<r��float)r�r�rEZ
proc_valuer/r/r0�test_getloadavg�szTestLoadAvg.test_getloadavgN)r�r�r�rr�rr$r/r/r/r0r �sr c@seZdZdd�ZdS)�TestSystemNetIfAddrscCs�x�t����D]�\}}x�|D]�}|jtjkr@|�|jt|��q|jtj	kr�|�|jt
|��|�|jt|��|j
dk	r�|�|j
t|��q�|�t|�d�q|jtjkr|j�d�d}|�|t|��qWqWdS)Nz0.0.0.0�%r)r�Znet_if_addrs�items�familyZAF_LINKr��addressrVr"r#r1�netmaskr3�	broadcastr5rCr<rK)r�rx�addrs�addrr)r/r/r0�test_ips�s

zTestSystemNetIfAddrs.test_ipsN)r�r�r�r.r/r/r/r0r%�sr%c@seZdZdd�Zdd�ZdS)�TestSystemNetIfStatsc	Csxxrt����D]b\}}ytd|�}Wntk
r:YqX|j|jd|k|d�|�|jtt	�
d|�d��qWdS)Nzifconfig %s�RUNNING)r�z(?i)MTU[: ](\d+)r)r��net_if_statsr'r�RuntimeErrorr��isup�mtur^r�r�)r�rx�statsr_r/r/r0�test_against_ifconfig�sz*TestSystemNetIfStats.test_against_ifconfigc
CsRxLt����D]<\}}td|d�� }|�|jt|������WdQRXqWdS)Nz/sys/class/net/%s/mtur6)	r�r1r'r:r�r4r^r�rk)r�rxr5rEr/r/r0�test_mtu�szTestSystemNetIfStats.test_mtuN)r�r�r�r6r7r/r/r/r0r/�sr/c@seZdZe�dd��ZdS)�TestSystemNetIOCountersc	s�fdd�}tjddd�}x�|��D]�\�}y|��}Wntk
rNw$YnX|j|j|ddd�|j|j|d	dd�|j|j|d
dd�|j|j|ddd�|j|j	|d
dd�|j|j
|ddd�|j|j|ddd�|j|j|ddd�q$WdS)Ncs�i}td��}tt�d|�d�|d<tt�d|�d�|d<tt�d|�d�|d<tt�d|�d	�|d
<tt�d|�d�|d<tt�d|�d	�|d
<tt�d|�d�|d<tt�d|�d�|d<|S)Nzifconfig %szRX packets[: ](\d+)r�packets_recvzTX packets[: ](\d+)�packets_sentzerrors[: ](\d+)�errinrf�erroutzdropped[: ](\d+)�dropin�dropoutz#RX (?:packets \d+ +)?bytes[: ](\d+)�
bytes_recvz#TX (?:packets \d+ +)?bytes[: ](\d+)�
bytes_sent)rr^r�r�)Znicr�r_)rxr/r0�ifconfig�sz?TestSystemNetIOCounters.test_against_ifconfig.<locals>.ifconfigTF)Zpernic�nowrapr?i)r�r@r9ir:r;�
r<r=r>)
r��net_io_countersr'r2r�r?r@r9r:r;r<r=r>)r�rAZnior5Zifconfig_retr/)rxr0r6�s.z-TestSystemNetIOCounters.test_against_ifconfigN)r�r�r�rr6r/r/r/r0r8�sr8c@s8eZdZejded�ejddd�dd���Zdd	�Zd
S)�TestSystemNetConnectionsz psutil._pslinux.socket.inet_ntop)r�zpsutil._pslinux.supports_ipv6F)r�cCsRy*t�tjtj�}|�|j�|�d�Wntjk
r@YnXtjdd�dS)N)z::1r�inet6)�kind)	r"rC�SOCK_STREAMZ
addCleanup�close�bind�errorr��net_connections)r��
supports_ipv6rDr.r/r/r0�test_emulate_ipv6_unsupportedsz6TestSystemNetConnections.test_emulate_ipv6_unsupportedc	Cs6tdt�d���}tjdd�|js(t�WdQRXdS)Nz/proc/net/unixa.                0: 00000003 000 000 0001 03 462170 @/tmp/dbus-Qw2hMPIU3n
                0: 00000003 000 000 0001 03 35010 @/tmp/dbus-tB2X8h69BQ
                0: 00000003 000 000 0001 03 34424 @/tmp/dbus-cHy80Y8O
                000000000000000000000000000000000000000000000000000000
                �unix)rG)r�r�r�r�rLr�r�)r�r�r/r/r0�test_emulate_unixs
z*TestSystemNetConnections.test_emulate_unixN)r�r�r�rr�r=rNrPr/r/r/r0rE	srEc@s>eZdZe�eed�d�e�dd���Zdd�Z	dd�Z
d	S)
�TestSystemDiskPartitions�statvfszos.statvfs() not availablecCsrdd�}xdtjdd�D]T}t�|j�}||j�\}}}}|�|j|�|j|j|td�|j|j	|td�qWdS)NcSsztd|���}|�d�}|�d�|�d�}|��dd�\}}}}|dkrRd}t|�t|�t|�}}}||||fS)Nzdf -P -B 1 "%s"rYrr8ZnonerN)rrkr<�popr^)r�r_r`rF�devrbrcrZr/r/r0�df2s


z4TestSystemDiskPartitions.test_against_df.<locals>.dfF)�all)r�)
r��disk_partitions�
disk_usage�
mountpointr�rbr�rZrrc)r�rU�part�usagerTrbrcrZr/r/r0�test_against_df-s

z(TestSystemDiskPartitions.test_against_dfc
Cs�tdd��}|��}WdQRXd|krPx�t��D]}|jdkr0Pq0W|�d�n|t�td��}t	j
d|dd��X}t	j
d	d
gd��<}t��}|js�t�|js�t�|s�t�|�
|djd�WdQRXWdQRXdS)
Nz/proc/filesystemsr!�zfszcouldn't find any ZFS partitionz
nodev	zfs
zpsutil._common.openT)r�rz$psutil._pslinux.cext.disk_partitions)z	/dev/sdb3�/r]�rw)r�r)r:r�r�rW�fstypeZfailrurvrrr�r�r�r�)r�rEr�rZr�rrr�r/r/r0�test_zfs_fsFs$


z$TestSystemDiskPartitions.test_zfs_fsc
CsTzFtjddd��.}|�t��t��WdQRX|js:t�WdQRXWddt_XdS)Nzos.path.realpathz
/non/existent)r�z/proc)	rr��assertRaisesrr�rWr�r��PROCFS_PATH)r�r�r/r/r0�test_emulate_realpath_fail^s
z3TestSystemDiskPartitions.test_emulate_realpath_failN)r�r�r�rr��hasattrr�rr\rardr/r/r/r0rQ*srQc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�TestSystemDiskIoCountersc
Cs�tdd���tjddd���tjdd�}|�|jd�|�|jd	�|�|jd
t	�|�|j
d�|�|jd�|�|jd
�|�|j
dt	�|�|jd�|�|jd�WdQRXWdQRXdS)Nz/proc/diskstatsz+   3     0   1 hda 2 3 4 5 6 7 8 9 10 11 12z!psutil._pslinux.is_storage_deviceT)r�F)rBrfr�r�r8rgr���rC)r�rr�r��disk_io_countersr��
read_count�read_merged_count�
read_bytes�SECTOR_SIZE�	read_time�write_count�write_merged_count�write_bytes�
write_time�	busy_time)r�r�r/r/r0�test_emulate_kernel_2_4ms
z0TestSystemDiskIoCounters.test_emulate_kernel_2_4c
Cs�tdd���tjddd���tjdd�}|�|jd�|�|jd	�|�|jd
t	�|�|j
d�|�|jd�|�|jd
�|�|j
dt	�|�|jd�|�|jd�WdQRXWdQRXdS)Nz/proc/diskstatsz'   3    0   hda 1 2 3 4 5 6 7 8 9 10 11z!psutil._pslinux.is_storage_deviceT)r�F)rBrfr�r�r8rgr�rgrhrC)r�rr�r�rir�rjrkrlrmrnrorprqrrrs)r�r�r/r/r0�test_emulate_kernel_2_6_full�s
z5TestSystemDiskIoCounters.test_emulate_kernel_2_6_fullc
Cs�tdd���tjddd���tjdd�}|�|jd�|�|jd	t�|�|j	d
�|�|j
dt�|�|jd�|�|jd�|�|j
d�|�|jd�|�|jd�WdQRXWdQRXdS)
Nz/proc/diskstatsz   3    1   hda 1 2 3 4z!psutil._pslinux.is_storage_deviceT)r�F)rBrfr�r�r8r)r�rr�r�rir�rjrlrmrorqrkrnrprrrs)r�r�r/r/r0�test_emulate_kernel_2_6_limited�s
z8TestSystemDiskIoCounters.test_emulate_kernel_2_6_limitedc
Cs�tdt�d����tjddd��ltjddd�}|�t|�d�|�|d	j	d
�|�|dj	d
�|�|d	j
d�|�|dj
d�WdQRXWdQRXdS)
Nz/proc/diskstatsz�                    3    0   nvme0n1 1 2 3 4 5 6 7 8 9 10 11
                    3    0   nvme0n1p1 1 2 3 4 5 6 7 8 9 10 11
                    z!psutil._pslinux.is_storage_deviceF)r�T)�perdiskrBr��nvme0n1rfZ	nvme0n1p1rg)r�r�r�rr�r�rir�r?rjro)r�r�r/r/r0�test_emulate_include_partitions�s

z8TestSystemDiskIoCounters.test_emulate_include_partitionsc
Cs�tdt�d���8tjddd��tjddd�}|�|�WdQRXWdQRXdd�}tdt�d���Ltjdd	|d
��0tjddd�}|�|j	d�|�|j
d�WdQRXWdQRXdS)
Nz/proc/diskstatsz�                    3    0   nvme0n1 1 2 3 4 5 6 7 8 9 10 11
                    3    0   nvme0n1p1 1 2 3 4 5 6 7 8 9 10 11
                    z!psutil._pslinux.is_storage_deviceF)r�)rwrBcSs|dkS)Nrxr/)rxr/r/r0�is_storage_device�szSTestSystemDiskIoCounters.test_emulate_exclude_partitions.<locals>.is_storage_deviceT)rr�rfrg)r�r�r�rr�r�rir�r�rjro)r�r�rzr/r/r0�test_emulate_exclude_partitions�s$


z8TestSystemDiskIoCounters.test_emulate_exclude_partitionsc	CsTdd�}tjdd�}tjdd|d��tjdd�}WdQRX|�t|�t|��dS)NcSs|dkrdSdS)Nz/proc/diskstatsFTr/)r�r/r/r0r��sz?TestSystemDiskIoCounters.test_emulate_use_sysfs.<locals>.existsT)rwzpsutil._pslinux.os.path.exists)rr�)r�rirr�r�r?)r�r�ZwprocfsZwsysfsr/r/r0�test_emulate_use_sysfs�sz/TestSystemDiskIoCounters.test_emulate_use_sysfsc	Cs6dd�}tjdd|d��|�ttj�WdQRXdS)NcSsdS)NFr/)r�r/r/r0r��sz>TestSystemDiskIoCounters.test_emulate_not_impl.<locals>.existszpsutil._pslinux.os.path.existsT)rr�)rr�rb�NotImplementedErrorr�ri)r�r�r/r/r0�test_emulate_not_impl�sz.TestSystemDiskIoCounters.test_emulate_not_implN)
r�r�r�rtrurvryr{r|r~r/r/r/r0rfjsrfc@sReZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	�d
d��Z
dd�ZdS)�TestMisccCs(td�}t��}|�t|�t|��dS)Nz	boot time)rmr��	boot_timer�r^)r�r�r�r/r/r0�test_boot_time�szTestMisc.test_boot_timec
s|��}t�|�ttj�|d�d��$}|�d�|�d�|�d�WdQRX�z�t��fdd�}trldnd	}tj	||d
���nt
t�|�t
tj�|jt
tjdd�|�t
tj�|jt
tjdd�|�t
tj�|jt
tjdd�|t_|�t��d
�|�tt���d
�tjdd�}|�t|�d
�tjdd�}|�ttt|��d
�ttj�|d�d��$}|�d�|�d�|�d�WdQRX|�t��d
�|�ttjdd��d
�|�tt���d
�|�ttttjdd���d
�WdQRXWdt�|�t
t�X|�tjd�dS)Nrlr�zcpu   0 0 0 0 0 0 0 0 0 0
zcpu0  0 0 0 0 0 0 0 0 0 0
zcpu1  0 0 0 0 0 0 0 0 0 0
cs&|�d�rttjd���|f|�|�S)Nz/proczrejecting access for test)r[r�r�r�)rxryrz)r}r/r0r~s
z4TestMisc.test_no_procfs_on_import.<locals>.open_mockz
builtins.openz__builtin__.open)r�T)rrzcpu   1 0 0 0 0 0 0 0 0 0
zcpu0  1 0 0 0 0 0 0 0 0 0
zcpu1  1 0 0 0 0 0 0 0 0 0
z/proc)�
get_testfnr��mkdirr:r�rA�writerrr�rr�rbr�r��cpu_percent�cpu_times_percentrcr��sumrr�assertNotEqual�shutil�rmtree)r�Z	my_procfsrEr~r�Zper_cpu_percentZper_cpu_times_percentr/)r}r0�test_no_procfs_on_import�sN




(

z!TestMisc.test_no_procfs_on_importc	Cs,tdt�d�����8}t��|js(t�tjdd�t��tjdd�WdQRXtdt�d������}t��}|jszt�tjdd�}t��}tjdd�}|�	|d�|�	t
|�d�|�	t
|�d�|�	t
|�d�|�	t
tt
|��d�|�	t
tt
|��d�|�|j
d�|�	|jd�WdQRXdS)Nz
/proc/statz�                cpu   0 0 0 0 0 0 0 1 0 0
                cpu0  0 0 0 0 0 0 0 1 0 0
                cpu1  0 0 0 0 0 0 0 1 0 0
                T)rz�                cpu   1 0 0 0 0 0 0 0 0 0
                cpu0  1 0 0 0 0 0 0 0 0 0
                cpu1  1 0 0 0 0 0 0 0 0 0
                rgY@)r�r�r�r�r�r�r�r�r�r�r�rrr�r��user)r�r�r�Zcpu_percent_percpur�Zcpu_times_percent_percpur/r/r0�test_cpu_steal_decrease<s4

z TestMisc.test_cpu_steal_decreasec	Cs8tjddd�� }|�ttjj�|js*t�WdQRXdS)Nzpsutil._common.openT)r)	rr�rbr2r�r�r�r�r�)r�r�r/r/r0�test_boot_time_mockedes

zTestMisc.test_boot_time_mockedc	Cs�tjddgd��&}|�t��djd�|js2t�WdQRXtjddgd��&}|�t��djd�|jsnt�WdQRXtjddgd��&}|�t��djd�|js�t�WdQRXdS)	Nzpsutil._pslinux.cext.users)�	giampaolozpts/2z:0g�h�ATr�)r�rZ	localhost)r�zpts/2z:0.0g�h�ATr�)r�zpts/2�foog�h�ATr�r�)rr�r�r�Zusers�hostr�r�)r�r�r/r/r0�test_users_mockedls


zTestMisc.test_users_mockedcCs�|��}t�|�z�|t_|�ttj�|�ttj�|jttjdd�|�ttj	�|�ttj
�|�ttj�|�ttj�|�ttj
�|�tjtj�Wddt_XdS)NT)rz/proc)r�r�r�r�rcrbr�r�r�r�rLrDr1rW�
NoSuchProcess�Process)r�Ztdirr/r/r0�test_procfs_path�s
zTestMisc.test_procfs_pathcCs�t�}|��zjt��}|��}|�t|�d�t|dd�d�dj}|�	|j
|�t�|�}|��|�|t�
��Wd|��XdS)Nr�cSs|jS)N)�id)rLr/r/r0�<lambda>�r�z)TestMisc.test_issue_687.<locals>.<lambda>)�keyrf)r�startr�r��threadsr�r?�sortedr�r��pidZas_dictr�Zpids�stop)r��t�pr��tid�ptr/r/r0�test_issue_687�s
zTestMisc.test_issue_687c	Cs6tdd��"}t�t���st�|js(t�WdQRXdS)Nz/proc/%s/statusrN)r�r�Z
pid_existsr��getpidr�r�)r�r�r/r/r0�test_pid_exists_no_proc_status�sz'TestMisc.test_pid_exists_no_proc_statusN)r�r�r�r�r�r�r�r�r�rr�r�r/r/r/r0r�s=)rz
no batteryc@sfeZdZe�ed�d�dd��Zdd�Zdd�Zd	d
�Z	dd�Z
d
d�Zdd�Zdd�Z
dd�ZdS)�TestSensorsBatteryZacpizacpi utility not availablecCsDtd�}t|�d�d���dd��}t��j}|j||dd�dS)Nzacpi -brrfr&rN)r�)	rr^r<rk�replacer��sensors_battery�percentr�)r�r_Z
acpi_valuer�r/r/r0�test_percent�s
zTestSensorsBattery.test_percentc	sj�fdd�}t�trdnd}tj||d��6}|�t��jd�|�t��jtj	�|j
s\t�WdQRXdS)Ncs2|�d�s|�d�rt�d�S�|f|�|�SdS)Nz
AC0/onlinez	AC/online�1)r�rurw)rxryrz)r}r/r0r~�s
z@TestSensorsBattery.test_emulate_power_plugged.<locals>.open_mockz
builtins.openz__builtin__.open)r�T)r:rrr�r�r�r��
power_plugged�secsleft�POWER_TIME_UNLIMITEDr�r�)r�r~r�r�r/)r}r0�test_emulate_power_plugged�sz-TestSensorsBattery.test_emulate_power_pluggedc	sV�fdd�}t�trdnd}tj||d��"}|�t��jd�|jsHt	�WdQRXdS)NcsN|�d�s|�d�r"ttjd��n(|�d�r:t�td��S�|f|�|�SdS)Nz
AC0/onlinez	AC/onlinerNz/statusZcharging)r�r�r�r�rurvr)rxryrz)r}r/r0r~�s

zBTestSensorsBattery.test_emulate_power_plugged_2.<locals>.open_mockz
builtins.openz__builtin__.open)r�T)
r:rrr�r�r�r�r�r�r�)r�r~r�r�r/)r}r0�test_emulate_power_plugged_2�sz/TestSensorsBattery.test_emulate_power_plugged_2c	sV�fdd�}t�trdnd}tj||d��"}|�t��jd�|jsHt	�WdQRXdS)Ncs2|�d�s|�d�rt�d�S�|f|�|�SdS)Nz
AC0/onlinez	AC/online�0)r�rurw)rxryrz)r}r/r0r~�s
zDTestSensorsBattery.test_emulate_power_not_plugged.<locals>.open_mockz
builtins.openz__builtin__.open)r�F)
r:rrr�r�r�r�r�r�r�)r�r~r�r�r/)r}r0�test_emulate_power_not_plugged�sz1TestSensorsBattery.test_emulate_power_not_pluggedc	sV�fdd�}t�trdnd}tj||d��"}|�t��jd�|jsHt	�WdQRXdS)NcsN|�d�s|�d�r"ttjd��n(|�d�r:t�td��S�|f|�|�SdS)Nz
AC0/onlinez	AC/onlinerNz/statusZdischarging)r�r�r�r�rurvr)rxryrz)r}r/r0r~�s

zFTestSensorsBattery.test_emulate_power_not_plugged_2.<locals>.open_mockz
builtins.openz__builtin__.open)r�F)
r:rrr�r�r�r�r�r�r�)r�r~r�r�r/)r}r0� test_emulate_power_not_plugged_2�sz3TestSensorsBattery.test_emulate_power_not_plugged_2c	sT�fdd�}t�trdnd}tj||d�� }|�t��j�|jsFt	�WdQRXdS)NcsJ|�d�s|�d�r"ttjd��n$|�d�r6t�d�S�|f|�|�SdS)Nz"/sys/class/power_supply/AC0/onlinez!/sys/class/power_supply/AC/onlinerNz#/sys/class/power_supply/BAT0/statuss???)r[r�r�r�rurw)rxryrz)r}r/r0r~s



zETestSensorsBattery.test_emulate_power_undetermined.<locals>.open_mockz
builtins.openz__builtin__.open)r�)
r:rrr�r�r�r�r�r�r�)r�r~r�r�r/)r}r0�test_emulate_power_undetermineds	z2TestSensorsBattery.test_emulate_power_undeterminedc	Cs6tdd��"}|�t��jd�|js(t�WdQRXdS)Nz(/sys/class/power_supply/BAT0/energy_fullr�r)r�r�r�r�r�r�r�)r�r�r/r/r0�test_emulate_energy_full_0s
z-TestSensorsBattery.test_emulate_energy_full_0cCshtdttjd���Ltdttjd���.tdd��|�t��jd�WdQRXWdQRXWdQRXdS)Nz(/sys/class/power_supply/BAT0/energy_fullrNz(/sys/class/power_supply/BAT0/charge_fullz%/sys/class/power_supply/BAT0/capacitys88�X)	r�r�r�r�r�r�r�r�r�)r�r/r/r0�"test_emulate_energy_full_not_avails
z5TestSensorsBattery.test_emulate_energy_full_not_availcCsntdttjd���Rtdttjd���4tdttjd���|�t��j�WdQRXWdQRXWdQRXdS)Nz!/sys/class/power_supply/AC/onlinerNz"/sys/class/power_supply/AC0/onlinez#/sys/class/power_supply/BAT0/status)r�r�r�r�r�r�r�r�)r�r/r/r0�test_emulate_no_power'sz(TestSensorsBattery.test_emulate_no_powerN)r�r�r�rr�rr�r�r�r�r�r�r�r�r�r/r/r/r0r��s
r�c@seZdZdd�ZdS)�TestSensorsBatteryEmulatedc
sx�fdd�}t�trdnd}tjddgd��.}tj||d��}|�t���WdQRXWdQRX|jsjt�|jstt�dS)	Ncs\|�d�rt�td��S|�d�r0t�td��S|�d�rHt�td��S�|f|�|�SdS)Nz/energy_nowZ60000000z
/power_now�0z/energy_fullZ60000001)r�rurvr)rxryrz)r}r/r0r~9s


z5TestSensorsBatteryEmulated.test_it.<locals>.open_mockz
builtins.openz__builtin__.openz
os.listdirZBAT0)r�)r�)	r:rrr�ZassertIsNotNoner�r�r�r�)r�r~r�ZmlistdirZmopenr/)r}r0�test_it8s
"
z"TestSensorsBatteryEmulated.test_itN)r�r�r�r�r/r/r/r0r�5sr�c@seZdZdd�Zdd�ZdS)�TestSensorsTemperaturesc
s��fdd�}t�trdnd}tj||d��jtjddgd��Nt��d	d
}|�|jd�|�|jd�|�|j	d
�|�|j
d�WdQRXWdQRXdS)Ncs�|�d�rt�td��S|�d�r0t�td��S|�d�rDt�d�S|�d�rXt�d�S|�d	�rlt�d
�S�|f|�|�SdS)Nz/namerxz/temp1_label�labelz/temp1_inputs30000z
/temp1_maxs40000z/temp1_crits50000)r�rurvrrw)rxryrz)r}r/r0r~Ps







zCTestSensorsTemperatures.test_emulate_class_hwmon.<locals>.open_mockz
builtins.openz__builtin__.open)r�z	glob.globz/sys/class/hwmon/hwmon0/temp1)r�rxrr�g>@gD@gI@)r:rrr�r��sensors_temperaturesr�r�r�high�critical)r�r~r��tempr/)r}r0�test_emulate_class_hwmonOsz0TestSensorsTemperatures.test_emulate_class_hwmonc
s��fdd�}dd�}t�tr dnd}tj||d��jtjdd	|d
��Nt��dd}|�|jd
�|�|jd�|�|j	d�|�|j
d�WdQRXWdQRXdS)Ncsl|�d�rt�d�S|�d�r(t�d�S|�d�r@t�td��S|�d�rXt�td��S�|f|�|�SdS)	NZ0_temps50000r�s30000Z0_typer��typerx)r�rurwrvr)rxryrz)r}r/r0r~ks





zETestSensorsTemperatures.test_emulate_class_thermal.<locals>.open_mockcSs:|dkrgS|dkrgS|dkr&dgS|dkr6ddgSgS)Nz/sys/class/hwmon/hwmon*/temp*_*z&/sys/class/hwmon/hwmon*/device/temp*_*z /sys/class/thermal/thermal_zone*z /sys/class/thermal/thermal_zone0z,/sys/class/thermal/thermal_zone0/trip_point*z2/sys/class/thermal/thermal_zone1/trip_point_0_typez2/sys/class/thermal/thermal_zone1/trip_point_0_tempr/)r�r/r/r0�	glob_mockwszETestSensorsTemperatures.test_emulate_class_thermal.<locals>.glob_mockz
builtins.openz__builtin__.open)r�z	glob.globT)rr�rxrrNg>@gI@)r:rrr�r�r�r�r�rr�r�)r�r~r�r�r�r/)r}r0�test_emulate_class_thermaljsz2TestSensorsTemperatures.test_emulate_class_thermalN)r�r�r�r�r�r/r/r/r0r�Lsr�c@seZdZdd�ZdS)�TestSensorsFansc
s��fdd�}t�trdnd}tj||d��Ntjddgd��2t��d	d
}|�|jd�|�|jd�WdQRXWdQRXdS)
Ncs\|�d�rt�td��S|�d�r0t�td��S|�d�rHt�td��S�|f|�|�SdS)Nz/namerxz/fan1_labelr�z/fan1_input�2000)r�rurvr)rxryrz)r}r/r0r~�s


z4TestSensorsFans.test_emulate_data.<locals>.open_mockz
builtins.openz__builtin__.open)r�z	glob.globz/sys/class/hwmon/hwmon2/fan1)r�rxrr�i�)	r:rrr�r�Zsensors_fansr�r�r)r�r~r�Zfanr/)r}r0r�s
z!TestSensorsFans.test_emulate_dataN)r�r�r�rr/r/r/r0r��sr�c@s�eZdZe�dd��Zdd�Ze�ed�dd��Z	dd	�Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Ze�ed�dd��Zdd �Zd!d"�Zd#d$�Zd%S)&�TestProcesscCs�|��}t�d|�}|�|�}tdd�d|�t�|j�}t�	d�|�
�}|jdd�}|j|j
tdd	�|D��d
d�|j|jtdd	�|D��d
d�|j|jtd
d	�|D��d
d�dS)Nzk
            import time
            with open("%s", "w") as f:
                time.sleep(10)
            cSs
t�d�S)Nro)r�r�r/r/r/r0r��r�z3TestProcess.test_memory_full_info.<locals>.<lambda>z'%s' not in retg�������?F)ZgroupedcSsg|]}|j|j�qSr/)Z
private_dirtyZ
private_clean)rOrLr/r/r0rQ�sz5TestProcess.test_memory_full_info.<locals>.<listcomp>i)r�cSsg|]
}|j�qSr/)�pss)rOrLr/r/r0rQ�scSsg|]
}|j�qSr/)r�)rOrLr/r/r0rQ�s)r�r�r�Zpyrunrr�r�r��time�sleep�memory_full_info�memory_mapsr��ussr�r�r�)r��testfn�srcZsprocr�r��mapsr/r/r0�test_memory_full_info�s 


z!TestProcess.test_memory_full_infoc	Csptdt��t�d�����J}t��}|��}|j	s8t
�|�|jd�|�|j
d�|�|jd�WdQRXdS)Nz/proc/%s/smapsa�                fffff0 r-xp 00000000 00:00 0                  [vsyscall]
                Size:                  1 kB
                Rss:                   2 kB
                Pss:                   3 kB
                Shared_Clean:          4 kB
                Shared_Dirty:          5 kB
                Private_Clean:         6 kB
                Private_Dirty:         7 kB
                Referenced:            8 kB
                Anonymous:             9 kB
                LazyFree:              10 kB
                AnonHugePages:         11 kB
                ShmemPmdMapped:        12 kB
                Shared_Hugetlb:        13 kB
                Private_Hugetlb:       14 kB
                Swap:                  15 kB
                SwapPss:               16 kB
                KernelPageSize:        17 kB
                MMUPageSize:           18 kB
                Locked:                19 kB
                VmFlags: rd ex
                ilii<)r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�)r�r�r�r�r/r/r0�test_memory_full_info_mocked�s

z(TestProcess.test_memory_full_info_mockedzunreliable on PYPYc	Csjdd�}|��}t|d��|�||�jd�WdQRXt|d��|�||�jd�WdQRXt|d��|�||�jd�WdQRXt|d��|�||�jd�WdQRXt|d��|�||�jd�WdQRXt|d��|�||�jd�WdQRXt�rft|�t|d	��|�||�jd�WdQRXt|�t|d
��|�||�jd�WdQRXdS)NcSs\t��}t��t}x:x4|��D](}|jtj�|�kr:|St��|kr Pq WqWtd��dS)Nztimeout looking for test file)	r�r�r�r	�
open_filesr�r��abspathr2)�fnamer�Z	giveup_at�filer/r/r0�
get_test_file�s
z7TestProcess.test_open_files_mode.<locals>.get_test_filer�r!r�zr+zw+za+rLzx+)r�r:r��moderr)r�r�r�r/r/r0�test_open_files_mode�s*z TestProcess.test_open_files_modec
Cs�t��}|��}t|��d���t|jdt|��tjdt	t
jd�d�� }|��}|r\t�|j
sft�WdQRXtjdt	t
jd�d�� }|�|��g�|j
s�t�WdQRXWdQRXdS)Nr�zlen(ret) != %izpsutil._pslinux.os.readlinkrN)r�)r�r�r�r:r�rr?rr��OSErrorr�r�r�r��EINVALr�)r�r��filesr�r/r/r0�test_open_files_file_gonesz%TestProcess.test_open_files_file_gonec
Cs�t��}|��}t|��d��bt|jdt|��tr<dnd}tj	|t
tjd�d�� }|��}|rht
�|jsrt
�WdQRXWdQRXdS)Nr�zlen(ret) != %iz
builtins.openz__builtin__.openrN)r�)r�r�r�r:r�rr?rrr�r�r�r�r�r�)r�r�r�r�r�r/r/r0�test_open_files_fd_gone sz#TestProcess.test_open_files_fd_gonec	CsBtjdid��*}|�tj�t������|j	s4t
�WdQRXdS)Nz)psutil._pslinux._psposix.get_terminal_map)r�)rr�r�r�r�r�r�r��terminalr�r�)r�r�r/r/r0�test_terminal_mocked2s
z TestProcess.test_terminal_mockedc	Cs�t��}t�td��}tjd|dd��$}|�|��ddg�|j	sFt
�WdQRXt�td��}tjd|dd��&}|�|��dddg�|j	s�t
�WdQRXdS)	Nzfoobarzpsutil._common.openT)r�rr��barz	foobarrN)r�r�rurvrrr�r��cmdliner�r�)r�r�r�r�r/r/r0�test_cmdline_mocked@szTestProcess.test_cmdline_mockedc	Cs�t��}t�td��}tjd|dd��$}|�|��ddg�|j	sFt
�WdQRXt�td��}tjd|dd��&}|�|��dddg�|j	s�t
�WdQRXdS)	Nzfoo bar zpsutil._common.openT)r�rr�r�z	foo bar  rN)r�r�rurvrrr�r�r�r�r�)r�r�r�r�r/r/r0�test_cmdline_spaces_mockedNsz&TestProcess.test_cmdline_spaces_mockedc	CsTt��}t�td��}tjd|dd��$}|�|��ddg�|j	sFt
�WdQRXdS)Nzfoo barzpsutil._common.openT)r�rr�r�)r�r�rurvrrr�r�r�r�r�)r�r�r�r�r/r/r0�test_cmdline_mixed_separators\sz)TestProcess.test_cmdline_mixed_separatorsc	CsFtjddd��.|�t����d�|�t����d�WdQRXdS)Nzpsutil._pslinux.os.readlinkz/home/foo (deleted))r�z	/home/foo)rr�r�r�r��exe�cwd)r�r/r/r0�!test_readlink_path_deleted_mockedfs
z-TestProcess.test_readlink_path_deleted_mockedc	s��fdd�}t�trdnd}tj||d��(}t����}|jsBt�|�	|g�WdQRX�fdd�}tj||d��|�
tjt��j�WdQRXdS)Ncs4|�dt���r ttjd��n�|f|�|�SdS)Nz
/proc/%s/taskrN)r[r�r�r�r�r�)rxryrz)r}r/r0r~qsz2TestProcess.test_threads_mocked.<locals>.open_mockz
builtins.openz__builtin__.open)r�cs4|�dt���r ttjd��n�|f|�|�SdS)Nz
/proc/%s/taskrN)r[r�r�r�r��EPERM)rxryrz)r}r/r0r~�s)r:rrr�r�r�r�r�r�r�rb�AccessDenied)r�r~r�r�r�r/)r}r0�test_threads_mockedls
zTestProcess.test_threads_mockedcCs�tjdttjd�d���}tjdt�dd�d��`}t����}|j	sFt
�|j	sPt
�|�|d�tjddd��|�tj
t��j�WdQRXWdQRXWdQRXdS)	Nzpsutil._pslinux.readlinkrN)r�zpsutil.Process.cmdlinerzpsutil._pslinux.os.path.lexistsF)r�)rr�r�r�r�r�r�r�r�r�r�r�rb�
ZombieProcess)r�rrr�r/r/r0�test_exe_mocked�s


zTestProcess.test_exe_mockedc
CsZtdt��ttjd���6}t��}|�t	��|�
�WdQRX|jsLt�WdQRXdS)Nz/proc/%s/smapsrN)
r�r�r�r�r�r�r�r�rbrr�r�r�)r�r�r�r/r/r0�test_issue_1014�s
zTestProcess.test_issue_1014z
not supportedc
Cs�tjdttjd�d��D}t��}|��|�tj	��}|�
tj�WdQRX|jsVt
�WdQRX|�|jj|j�|�|jj|���dS)Nzpsutil._pslinux.prlimitrN)r�)rr�r�r�ZENOSYSr�r�rxrbr�ZrlimitZ
RLIMIT_NOFILEr�r�r��	exceptionr�)r�r�r�r�r/r/r0�test_rlimit_zombie�szTestProcess.test_rlimit_zombiec
Cs�tjdttjd�d��@}t��}|��|�tj	��}|�
�WdQRX|jsRt�WdQRX|�
|jj|j�|�
|jj|���dS)Nzpsutil._pslinux.os.readlinkrN)r�)rr�r�r�r�r�r�rxrbr�r�r�r�r�r�r�)r�r�r�r�r/r/r0�test_cwd_zombie�szTestProcess.test_cwd_zombiec*Cs\ddlm}dddddddddddddddd	d
dddddddddddddddddddddddddg*}d
�|���}tdt��|���t��}|�	|�
�d�|�	|��tj�|�	|�
�d�|�	|��d|t���|��}|�	|jd|�|�	|jd|�|�	|jd|�|�	|jd|�|�	|jd|�|�	|��d�WdQRXdS)Nr)�CLOCK_TICKSr�z(cat)�Z�1�2�3�4�5�6�7rjz
/proc/%s/stat�catrfr�r�r�r8rgrg)r�r�rAr�r�r�r�r�r�r�rx�status�
STATUS_ZOMBIE�ppidZcreate_timer�r�r��system�
children_user�children_systemZiowaitZcpu_num)r�r�ryr{r�Zcpur/r/r0�test_stat_file_parsing�stz"TestProcess.test_stat_file_parsingc	Cs�tdt��t�d������t��}|�|�	�j
d�|�|�	�jd�|�|��d�|�
�}|�|jd�|�|jd�|�|jd�|��}|�|jd	�|�|jd
�|�|jd�|�|j��ttdd
���WdQRXdS)Nz/proc/%s/statusa                Uid:	1000	1001	1002	1003
                Gid:	1004	1005	1006	1007
                Threads:	66
                Cpus_allowed:	f
                Cpus_allowed_list:	0-7
                voluntary_ctxt_switches:	12
                nonvoluntary_ctxt_switches:	13r��
�Bi�i�i�i�i�i�rrh)r�r�r�r�r�r�r�r�r��num_ctx_switches�	voluntary�involuntary�num_threads�uids�real�	effective�saved�gids�_proc�_get_eligible_cpus�listr>)r�r�r	r
r/r/r0�test_status_file_parsings"
z$TestProcess.test_status_file_parsingN)r�r�r�rr�r�rr�rr�r�r�r�r�r�r�r�r�r�r�r
r�r�rrr/r/r/r0r��s"#%
?r�c@sreZdZdZedd��Zdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Ze
�dd��Zdd�Zdd�ZdS)�TestProcessAgainstStatusa/proc/pid/stat and /proc/pid/status have many values in common.
    Whenever possible, psutil uses /proc/pid/stat (it's faster).
    For all those cases we check that the value found in
    /proc/pid/stat (by psutil) matches the one found in
    /proc/pid/status.
    cCst��|_dS)N)r�r��proc)�clsr/r/r0�
setUpClass%sz#TestProcessAgainstStatus.setUpClassc
Cs|tj�d|jj��^}xJ|D]B}|��}|�|�r|�d�d}yt|�St	k
r\|SXqWt	d|��WdQRXdS)Nz/proc/%s/status�	r�z
can't find %r)
r��_psplatform�	open_textrr�rkr[�	partitionr^r=)r�Z	linestartrErFr�r/r/r0�read_status_file)s


z)TestProcessAgainstStatus.read_status_filecCs |�d�}|�|j��|�dS)NzName:)rr�rrx)r�r�r/r/r0�	test_name6s
z"TestProcessAgainstStatus.test_namecCsH|�d�}||�d�d|�d��}|�dd�}|�|j��|�dS)NzState:�(rf�)rjr�)r�find�rfindr�r�rr�)r�r�r/r/r0�test_status:s
z$TestProcessAgainstStatus.test_statuscCs |�d�}|�|j��|�dS)NzPPid:)rr�rr�)r�r�r/r/r0�	test_ppid@s
z"TestProcessAgainstStatus.test_ppidcCs |�d�}|�|j��|�dS)NzThreads:)rr�rr)r�r�r/r/r0�test_num_threadsDs
z)TestProcessAgainstStatus.test_num_threadscCs:|�d�}ttt|��dd���}|�|j��|�dS)NzUid:rfr8)rrqrrr^r<r�rr	)r�r�r/r/r0�	test_uidsHs
z"TestProcessAgainstStatus.test_uidscCs:|�d�}ttt|��dd���}|�|j��|�dS)NzGid:rfr8)rrqrrr^r<r�rr
)r�r�r/r/r0�	test_gidsMs
z"TestProcessAgainstStatus.test_gidscCs@|�d�}|�|j��j|�|�d�}|�|j��j|�dS)Nzvoluntary_ctxt_switches:znonvoluntary_ctxt_switches:)rr�rrrr)r�r�r/r/r0�test_num_ctx_switchesRs

z.TestProcessAgainstStatus.test_num_ctx_switchescCsN|�d�}dt|�krJtt|�d��\}}|�|j��tt	||d���dS)NzCpus_allowed_list:r�rf)
rr�rrr^r<r�rZcpu_affinityrr>)r�r�Zmin_Zmax_r/r/r0�test_cpu_affinityYs

z*TestProcessAgainstStatus.test_cpu_affinityc	CsR|�d�}t�d��}|jj��WdQRXdt|�krD|jrNt�n
|jsNt�dS)NzCpus_allowed_list:zpsutil._pslinux.per_cpu_timesr�)	rrr�rrrr�r�r�)r�r�r�r/r/r0�test_cpu_affinity_eligible_cpus`s
z8TestProcessAgainstStatus.test_cpu_affinity_eligible_cpusN)r�r�r��__doc__�classmethodrrrr r!r"r#r$rr%r&r'r/r/r/r0rs
rc@seZdZdd�Zdd�ZdS)�	TestUtilsc	Cs<tjddd��$}|�tj�d�d�|js.t�WdQRXdS)Nzos.readlinkz
foo (deleted))r�r�r�)rr�r�r�r�readlinkr�r�)r�r�r/r/r0�
test_readlinkrszTestUtils.test_readlinkc	Csx|��}t|d��}|�d�WdQRX|�tjj|dd�d�|�tjj|dd�d�|�tjj|dd	d
�d	�dS)N�wtzfoo F)�binaryr�Tsfooz??r�)�fallback)r�r:r�r�r�rr�)r�r�rEr/r/r0�test_catwszTestUtils.test_catN)r�r�r�r,r0r/r/r/r0r*osr*�__main__)�
run_from_name)]r(�
__future__rr\r%r��globrur�r�r�r"r+r�r�r�r�rZpsutil._compatrrrrZpsutil.testsrr	r
rrr
rrrrrrrrrrrrrr�r��dirname�__file__�HEREr*ZSIOCGIFCONFrSr2r4rmZEMPTY_TEMPERATURESr1r3r5rKrVrerirmrs�contextmanagerr�r�r�r�r�r�r�r�rrr r%r/r8rErQrfrr�r�r�r�r�rr*r�Zpsutil.tests.runnerr2r/r/r/r0�<module>s�


	.]?
)- ?
?
}ArR


Youez - 2016 - github.com/yon3zu
LinuXploit