
    ;^h                        S r SSK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  \(       a  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)POSIX)
CI_TESTING)HAS_BATTERY)TOLERANCE_DISK_USAGE)TOLERANCE_SYS_MEM)PsutilTestCase)pytest)retry_on_failure)sh)spawn_testproc)	terminate)getpagesizec                 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      G/var/www/html/env/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      [        5       -  $ )z)Wrapper around 'vm_stat' cmdline utility.vm_stat
zline not foundz\d+r   )r   r   r   r   researchgroupr   )fieldr   lines      r   r   r   ,   s[    
Y-C		$=   )**ryy&,,Q/0;=@@    z
MACOS onlyreasonc                   :    \ rS rSr\S 5       r\S 5       rS rSrg)TestProcess7   c                 6    [        5       R                  U l        g N)r   pidclss    r   
setUpClassTestProcess.setUpClass9   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   psutilProcesscreate_timetimestrftime	localtime)selfoutputstart_pshhmmssyearstart_psutils         r   test_process_create_time$TestProcess.test_process_create_timeA   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__classmethodr-   r0   rF   __static_attributes__rH   r"   r   r&   r&   7   s.    ' '  	Ir"   r&   c                   $   \ rS rSr\" 5       S 5       rS rS r\R                  R                  \=(       a    \R                  " 5       S:H  SS9S 5       rS	 r\R                  R                  \=(       a    \=(       a    \R                  " 5       S:H  S
S9\" 5       S 5       5       r\" 5       S 5       r\" 5       S 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g)TestSystemAPIsM   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      noner4   i   )r   r9   r   popr   )pathr   linesr!   devtotalusedfrees           r   df%TestSystemAPIs.test_disks.<locals>.dfV   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\   )r@   r^   partusagerZ   r[   r\   r]   s           r   
test_disksTestSystemAPIs.test_disksR   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r@   nums     r   test_cpu_count_logical%TestSystemAPIs.test_cpu_count_logicalm   s&    +,f&&t4444r"   c                 N    [        S5      nU[        R                  " SS9:X  d   eg )Nzsysctl hw.physicalcpuFrk   rm   ro   s     r   test_cpu_count_cores#TestSystemAPIs.test_cpu_count_coresq   s&    ,-f&&u5555r"   arm64z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)r@   freqs     r   test_cpu_freqTestSystemAPIs.test_cpu_freqv   st      ||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[   )r@   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]   re   r   r@   
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   re   r   r   s      r   test_vmem_activeTestSystemAPIs.test_vmem_active   s7    X&
**,33
:*+.????r"   c                     [        S5      n[        R                  " 5       R                  n[	        X!-
  5      [
        :  d   eg )Ninactive)r   r:   r   r   re   r   r   s      r   test_vmem_inactive!TestSystemAPIs.test_vmem_inactive   s7    Z(
**,55
:*+.????r"   c                     [        S5      n[        R                  " 5       R                  n[	        X!-
  5      [
        :  d   eg )Nwired)r   r:   r   r   re   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sinre   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   soutre   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)r@   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   )r@   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"   rH   N)rI   rJ   rK   rL   r   rh   rq   rt   r
   markskipifr   platformmachiner}   r   r   r   r   r   r   r   r   r   r   r   rN   rH   r"   r   rP   rP   M   sp   
 A A456
 [[/(""$/8N  NN@ [[>u>!1!1!3w!>6   @ 	
@
 @ @
 @ @
 @ @ @ @
 @ @J [[K=5 >5r"   rP   )__doc__r   r   r=   r:   r   r   psutil.testsr   r   r   r   r	   r
   r   r   r   r   psutil._psutil_posixr   r   r   r   r   r&   rP   rH   r"   r   <module>r      s      	     # $ - * '  )  ' " 	0	A Il3I. I 4I* Il3w5^ w5 4w5r"   