
    = /i                     l   d Z ddlZddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ d Zd Zej&                  j)                  e d       G d de             Zej&                  j)                  e d       G d de             Zy)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                 x    t        |       }|j                         d   }	 t        |      S # t        $ r |cY S w xY w)zmExpects a sysctl command with an argument and parse the result
    returning only the value of interest.
       )r   splitint
ValueError)cmdlineoutresults      K/srv/sistema/bot/venv/lib/python3.12/site-packages/psutil/tests/test_osx.pysysctlr      s?     W+CYY[^F6{ s   
+ 99c                    t        d      }|j                  d      D ]  }| |v s n t        d      t        t	        j
                  d|      j                  d            t        j                  j                  j                         z  S )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   '   sz    
Y-C		$ +D=+ )**BIIfd#))!,-



!
!
-
-
/	0    z
MACOS onlyreasonc                   2    e Zd Zed        Zed        Zd Zy)TestProcessc                 6    t               j                  | _        y N)r   pidclss    r   
setUpClasszTestProcess.setUpClass7   s    /%%r%   c                 .    t        | j                         y r+   )r   r,   r-   s    r   tearDownClasszTestProcess.tearDownClass;   s    #''r%   c                    t        d| j                         }|j                  dd      j                         }|j	                  d      d   }|j	                  d      d   }t        j                  | j                        j                         }|t        j                  dt        j                  |            k(  sJ |t        j                  dt        j                  |            k(  sJ y )	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_timez$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__classmethodr/   r1   rE    r%   r   r)   r)   5   s.    & &  	Ir%   r)   c                   V   e Zd Z e       d        Zd Zd Zej                  j                  e
xr ed      d        Zd Zej                  j                  exr e
xr ed       e       d	               Zej                  j                  exr e
xr ed       e       d
               Zej                  j                  ed       e       d               Z e       d        Z e       d        Z e       d        Zd Zej                  j                  e d      d        Zd Zy)TestSystemAPIsc                 t   d }t        j                  d      D ]  }t        j                  |j                        } ||j                        \  }}}}|j                  |k(  sJ |j
                  |k(  sJ t        |j                  |z
        t        k  sJ t        |j                  |z
        t        k  rJ  y )Nc                 @   t        d|  d      j                         }|j                  d      }|j                  d       |j                  d      }|j                         d d \  }}}}|dk(  rd}t	        |      dz  }t	        |      dz  }t	        |      dz  }||||fS )	Nzdf -k ""r   r      noner4   i   )r   r9   r   popr   )pathr   linesr$   devtotalusedfrees           r   dfz%TestSystemAPIs.test_disks.<locals>.dfT   s    wtfA&'--/CIIdOEIIaL99Q<D%)ZZ\"1%5"Cdf}J%Et9t#Dt9t#DtT))r%   F)all)
r   disk_partitions
disk_usage
mountpointdevicerV   absrX   r   rW   )r?   rY   partusagerU   rV   rW   rX   s           r   
test_diskszTestSystemAPIs.test_disksP   s    	* **u5 	AD%%doo6E%'%8"Cd;;#%%%;;%'''uzzD(),@@@@uzzD(),@@@@	Ar%   c                 P    t        d      }|t        j                  d      k(  sJ y )Nzsysctl hw.logicalcpuTlogicalr   r   	cpu_countr?   nums     r   test_cpu_count_logicalz%TestSystemAPIs.test_cpu_count_logicalk   s&    +,f&&t4444r%   c                 P    t        d      }|t        j                  d      k(  sJ y )Nzsysctl hw.physicalcpuFrd   rf   rh   s     r   test_cpu_count_coresz#TestSystemAPIs.test_cpu_count_coreso   s&    ,-f&&u5555r%   zskipped due to #1892r&   c                     t        j                         }|j                  dz  dz  t        d      k(  sJ |j                  dz  dz  t        d      k(  sJ |j
                  dz  dz  t        d      k(  sJ y )Ni  zsysctl hw.cpufrequencyzsysctl hw.cpufrequency_minzsysctl hw.cpufrequency_max)r   cpu_freqcurrentr   minmax)r?   freqs     r   test_cpu_freqz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                 `    t        d      }|t        j                         j                  k(  sJ y )Nzsysctl hw.memsize)r   r   virtual_memoryrV   )r?   sysctl_hwphymems     r   test_vmem_totalzTestSystemAPIs.test_vmem_total}   s*     !45&"7"7"9"?"????r%   z%skipped on MACOS + ARM64 + CI_TESTINGc                     t        d      }t        j                         j                  }t	        ||z
        t
        k  sJ y )NrX   )r   r   ru   rX   r_   r   r?   
vmstat_val
psutil_vals      r   test_vmem_freezTestSystemAPIs.test_vmem_free   s:     V_
**,11
:
*+.????r%   c                     t        d      }t        j                         j                  }t	        ||z
        t
        k  sJ y )Nactive)r   r   ru   r~   r_   r   ry   s      r   test_vmem_activezTestSystemAPIs.test_vmem_active   s;     X&
**,33
:
*+.????r%   zskipped on CI_TESTINGc                     t        d      }t        j                         j                  }t	        ||z
        t
        k  sJ y )Ninactive)r   r   ru   r   r_   r   ry   s      r   test_vmem_inactivez!TestSystemAPIs.test_vmem_inactive   s;     Z(
**,55
:
*+.????r%   c                     t        d      }t        j                         j                  }t	        ||z
        t
        k  sJ y )Nwired)r   r   ru   r   r_   r   ry   s      r   test_vmem_wiredzTestSystemAPIs.test_vmem_wired   s9    W%
**,22
:
*+.????r%   c                     t        d      }t        j                         j                  }t	        ||z
        t
        k  sJ y )NPageins)r   r   swap_memorysinr_   r   ry   s      r   test_swapmem_sinzTestSystemAPIs.test_swapmem_sin   s9    Y'
'')--
:
*+.????r%   c                     t        d      }t        j                         j                  }t	        ||z
        t
        k  sJ y )NPageout)r   r   r   soutr_   r   ry   s      r   test_swapmem_soutz TestSystemAPIs.test_swapmem_sout   s9    Y'
'')..
:
*+.????r%   c                 &   t        j                         j                         D ]]  \  }}	 t        d|       }|j                  d|v k(  sJ |       |j
                  t        t        j                  d|      d         k(  r]J  y # t        $ r Y lw xY w)Nz	ifconfig RUNNINGz	mtu (\d+)r   )
r   net_if_statsitemsr   isupmtur   r   findallRuntimeError)r?   namestatsr   s       r   test_net_if_statsz TestSystemAPIs.test_net_if_stats   s    !..0668 	JKD%J9TF+, zzi3&67<<7yyC

<(Ea(H$IIII	J   s   B	BBz
no batteryc                 6   t        d      }t        j                  d|      j                  d      }t        j                  d|      j                  d      }|dk(  }t	        j
                         }|j                  |k(  sJ |j                  t        |      k(  sJ y )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_batteryz#TestSystemAPIs.test_sensors_battery   s    !))Is+11!4yy!>DJJ1M$
2..0**m;;;$$G444r%   c                     t        d      }t        t        j                  d|      j	                  d      d         }t        j                         }||k(  sJ y )Nzsysctl kern.boottimezsec\s*=\s*(\d+)r   )r   floatr   r   groupsr   	boot_time)r?   r   abs       r   test_boot_timezTestSystemAPIs.test_boot_time   sL    '(")).4;;A>qABAvvr%   N)rF   rG   rH   r   rb   rj   rl   r
   markskipifr   r   rs   rw   r   r|   r   r   r   r   r   r   r   r   r   rJ   r%   r   rL   rL   K   s   
 A A456
 [[)'2HIN JN@ [[(u(6   @ 	
@
 [[(u(6   @ 	
@ [[
+BC@  D@
 @ @ @ @
 @ @J [[K=5 >5r%   rL   )__doc__r   r<   r   r   psutil.testsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r)   rL   rJ   r%   r   <module>r      s     	      # $ - * '  )  & "	 Il3I. I 4I* Il3C^ C 4Cr%   