
    9i                     p   S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJr  SSKJr  SSKJ	r	  SSKJ
r
  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  SSKJr  S rS r\R&                  R)                  \(       + SS9 " S S\5      5       r\R&                  R)                  \(       + SS9 " S S\5      5       rg)zmacOS specific tests.    N)MACOS)AARCH64)
CI_TESTING)HAS_BATTERY)TOLERANCE_DISK_USAGE)TOLERANCE_SYS_MEM)PsutilTestCase)pytest)retry_on_failure)sh)spawn_subproc)	terminatec                 z    [        U 5      nUR                  5       S   n [        U5      $ ! [         a    Us $ f = f)zeExpects a sysctl command with an argument and parse the result
returning only the value of interest.
   )r   splitint
ValueError)cmdlineoutresults      U/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/psutil/tests/test_osx.pysysctlr      s?     W+CYY[^F6{ s   
+ ::c                    [        S5      nUR                  S5       H
  nX;   d  M
    O   [        S5      e[        [        R
                  " SU5      R                  S5      5      [        R                  R                  R                  5       -  $ )z)Wrapper around 'vm_stat' cmdline utility.vm_stat
zline not foundz\d+r   )r   r   r   r   researchgrouppsutil_psplatformcextgetpagesize)fieldr   lines      r   r   r   '   ss    
Y-C		$=   )**BIIfd#))!,-



!
!
-
-
/	0    z
MACOS onlyreasonc                   :    \ rS rSr\S 5       r\S 5       rS rSrg)TestProcess5   c                 6    [        5       R                  U l        g N)r   pidclss    r   
setUpClassTestProcess.setUpClass7   s    /%%r%   c                 .    [        U R                  5        g r,   )r   r-   r.   s    r   tearDownClassTestProcess.tearDownClass;   s    #''r%   c                    [        SU R                   35      nUR                  SS5      R                  5       nUR	                  S5      S   nUR	                  S5      S   n[
        R                  " U R                  5      R                  5       nU[        R                  " S[        R                  " U5      5      :X  d   eU[        R                  " S[        R                  " U5      5      :X  d   eg )	Nzps -o lstart -p STARTED  z%H:%M:%Sz%Y)r   r-   replacestripr   r   Processcreate_timetimestrftime	localtime)selfoutputstart_pshhmmssyearstart_psutils         r   test_process_create_time$TestProcess.test_process_create_time?   s    &txxj12>>)R0668$R(~~c"2&~~dhh/;;=|4
 
 	
 
 t}}T4>>,+GHHHHr%    N)	__name__
__module____qualname____firstlineno__classmethodr0   r3   rH   __static_attributes__rJ   r%   r   r)   r)   5   s.    & &  	Ir%   r)   c                   z   \ rS rSr\" 5       S 5       rS rS r\R                  R                  \=(       a    \SS9S 5       rS r\R                  R                  \=(       a    \=(       a    \S	S9\" 5       S
 5       5       r\R                  R                  \=(       a    \=(       a    \S	S9\" 5       S 5       5       r\R                  R                  \SS9\" 5       S 5       5       r\" 5       S 5       r\" 5       S 5       r\" 5       S 5       rS r\R                  R                  \(       + SS9S 5       rS rSrg)TestSystemAPIsK   c                 z   S n[         R                  " SS9 H  n[         R                  " UR                  5      nU" UR                  5      u  pEpgUR                  U:X  d   eUR
                  U:X  d   e[        UR                  U-
  5      [        :  d   e[        UR                  U-
  5      [        :  a  M   e   g )Nc                 :   [        SU  S35      R                  5       nUR                  S5      nUR                  S5        UR                  S5      nUR                  5       S S u  pEpgUS:X  a  Sn[	        U5      S-  n[	        U5      S-  n[	        U5      S-  nXEXg4$ )	Nzdf -k ""r   r      noner7   i   )r   r<   r   popr   )pathr   linesr$   devtotalusedfrees           r   df%TestSystemAPIs.test_disks.<locals>.dfT   s    wtfA&'--/CIIdOEIIaL99Q<D%)ZZ\"1%5"Cf}J%Et9t#Dt9t#Dt))r%   F)all)
r   disk_partitions
disk_usage
mountpointdevicer]   absr_   r   r^   )rB   r`   partusager\   r]   r^   r_   s           r   
test_disksTestSystemAPIs.test_disksP   s    	* **u5D%%doo6E%'%8"C;;#%%%;;%'''uzzD(),@@@@uzzD(),@@@@ 6r%   c                 N    [        S5      nU[        R                  " SS9:X  d   eg )Nzsysctl hw.logicalcpuTlogicalr   r   	cpu_countrB   nums     r   test_cpu_count_logical%TestSystemAPIs.test_cpu_count_logicalk   s&    +,f&&t4444r%   c                 N    [        S5      nU[        R                  " SS9:X  d   eg )Nzsysctl hw.physicalcpuFrm   ro   rq   s     r   test_cpu_count_cores#TestSystemAPIs.test_cpu_count_coreso   s&    ,-f&&u5555r%   zskipped due to #1892r&   c                     [         R                  " 5       nUR                  S-  S-  [        S5      :X  d   eUR                  S-  S-  [        S5      :X  d   eUR
                  S-  S-  [        S5      :X  d   eg )Ni  zsysctl hw.cpufrequencyzsysctl hw.cpufrequency_minzsysctl hw.cpufrequency_max)r   cpu_freqcurrentr   minmax)rB   freqs     r   test_cpu_freqTestSystemAPIs.test_cpu_freqt   sr     ||d"T)V4L-MMMMxx$%0L)MMMMxx$%0L)MMMMr%   c                 d    [        S5      nU[        R                  " 5       R                  :X  d   eg )Nzsysctl hw.memsize)r   r   virtual_memoryr]   )rB   sysctl_hwphymems     r   test_vmem_totalTestSystemAPIs.test_vmem_total}   s*     !45&"7"7"9"?"????r%   z%skipped on MACOS + ARM64 + CI_TESTINGc                     [        S5      n[        R                  " 5       R                  n[	        X!-
  5      [
        :  d   eg )Nr_   )r   r   r   r_   rg   r   rB   
vmstat_val
psutil_vals      r   test_vmem_freeTestSystemAPIs.test_vmem_free   s8     V_
**,11
:*+.????r%   c                     [        S5      n[        R                  " 5       R                  n[	        X!-
  5      [
        :  d   eg )Nactive)r   r   r   r   rg   r   r   s      r   test_vmem_activeTestSystemAPIs.test_vmem_active   s9     X&
**,33
:*+.????r%   zskipped on CI_TESTINGc                     [        S5      n[        R                  " 5       R                  n[	        X!-
  5      [
        :  d   eg )Ninactive)r   r   r   r   rg   r   r   s      r   test_vmem_inactive!TestSystemAPIs.test_vmem_inactive   s9     Z(
**,55
:*+.????r%   c                     [        S5      n[        R                  " 5       R                  n[	        X!-
  5      [
        :  d   eg )Nwired)r   r   r   r   rg   r   r   s      r   test_vmem_wiredTestSystemAPIs.test_vmem_wired   s7    W%
**,22
:*+.????r%   c                     [        S5      n[        R                  " 5       R                  n[	        X!-
  5      [
        :  d   eg )NPageins)r   r   swap_memorysinrg   r   r   s      r   test_swapmem_sinTestSystemAPIs.test_swapmem_sin   s7    Y'
'')--
:*+.????r%   c                     [        S5      n[        R                  " 5       R                  n[	        X!-
  5      [
        :  d   eg )NPageout)r   r   r   soutrg   r   r   s      r   test_swapmem_sout TestSystemAPIs.test_swapmem_sout   s7    Y'
'')..
:*+.????r%   c                 6   [         R                  " 5       R                  5        Ha  u  p [        SU 35      nUR                  SU;   :X  d   U5       eUR
                  [        [        R                  " SU5      S   5      :X  d   eMc     g ! [         a     Ms  f = f)Nz	ifconfig RUNNINGz	mtu (\d+)r   )
r   net_if_statsitemsr   isupmtur   r   findallRuntimeError)rB   namestatsr   s       r   test_net_if_stats TestSystemAPIs.test_net_if_stats   s    !..0668KDJ9TF+, zzi3&67<<7yyC

<(Ea(H$IIII 9   s   B


BBz
no batteryc                 @   [        S5      n[        R                  " SU5      R                  S5      n[        R                  " SU5      R                  S5      nUS:H  n[        R
                  " 5       nUR                  U:X  d   eUR                  [        U5      :X  d   eg )Nzpmset -g battz(\d+)%r   zNow drawing from '([^']+)'zAC Power)	r   r   r   r   r   sensors_batterypower_pluggedpercentr   )rB   r   r   drawing_fromr   psutil_results         r   test_sensors_battery#TestSystemAPIs.test_sensors_battery   s    !))Is+11!4yy!>DJJ1M$
2..0**m;;;$$G444r%   c                     [        S5      n[        [        R                  " SU5      R	                  S5      S   5      n[
        R                  " 5       nX#:X  d   eg )Nzsysctl kern.boottimezsec\s*=\s*(\d+)r   )r   floatr   r   groupsr   	boot_time)rB   r   abs       r   test_boot_timeTestSystemAPIs.test_boot_time   sJ    '(")).4;;A>qABvvr%   rJ   N)rK   rL   rM   rN   r   rj   rs   rv   r
   markskipifr   r   r~   r   r   r   r   r   r   r   r   r   r   r   r   rP   rJ   r%   r   rR   rR   K   s   
 A A456
 [[)'2HIN JN@ [[(u(6   @ 	
@
 [[(u(6   @ 	
@ [[
+BC@  D@
 @ @ @ @
 @ @J [[K=5 >5r%   rR   )__doc__r   r?   r   r   psutil.testsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r)   rR   rJ   r%   r   <module>r      s     	      # $ - * '  )  & "	 Il3I. I 4I* Il3C^ C 4Cr%   