§
    ±Ûgá.  ã                   óª  — 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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  G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d „ d!e¦  «        ZdS )"z±Contracts tests. These tests mainly check API sanity in terms of
returned types and APIs availability.
Some of these are duplicates of tests test_system.py and test_process.py.
é    N)ÚAIX)ÚFREEBSD)ÚLINUX)ÚMACOS)ÚNETBSD)ÚOPENBSD)ÚPOSIX)ÚSUNOS)ÚWINDOWS)ÚGITHUB_ACTIONS)ÚHAS_CPU_FREQ)ÚHAS_NET_IO_COUNTERS)ÚHAS_SENSORS_FANS)ÚHAS_SENSORS_TEMPERATURES)ÚSKIP_SYSCONS)ÚPsutilTestCase)Úcreate_sockets)Úenum)Úis_namedtuple)Úkernel_version)Úpytestc                   ót   — e Zd Zd„ Zd„ Zd„ Zd„ Zej         	                    e
oed¬¦  «        d„ ¦   «         ZdS )	ÚTestAvailConstantsAPIsc                 ób   — t          t          d¦  «        t          pt          pt          k    sJ ‚d S )NÚPROCFS_PATH)ÚhasattrÚpsutilr   r
   r   ©Úselfs    úQ/granary/edev/quantum/lib/python3.11/site-packages/psutil/tests/test_contracts.pyÚtest_PROCFS_PATHz'TestAvailConstantsAPIs.test_PROCFS_PATH0   s-   € Ý•v˜}Ñ-Ô-µ%Ð2G½5Ð2GÅCÒHÐHÐHÐHÐHÐHó    c                 óÄ  — | j         } |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «         d S )NÚABOVE_NORMAL_PRIORITY_CLASSÚBELOW_NORMAL_PRIORITY_CLASSÚHIGH_PRIORITY_CLASSÚIDLE_PRIORITY_CLASSÚNORMAL_PRIORITY_CLASSÚREALTIME_PRIORITY_CLASS©ÚassertEqualr   r   r   ©r   Úaes     r    Útest_win_priorityz(TestAvailConstantsAPIs.test_win_priority3   s¾   € ØÔˆØ
ˆ�7•6Ð8Ñ9Ô9½7ÑCÔCÐCØ
ˆ�7•6Ð8Ñ9Ô9½7ÑCÔCÐCØ
ˆ�7•6Ð0Ñ1Ô1µ7Ñ;Ô;Ð;Ø
ˆ�7•6Ð0Ñ1Ô1µ7Ñ;Ô;Ð;Ø
ˆ�7•6Ð2Ñ3Ô3µWÑ=Ô=Ð=Ø
ˆ�7•6Ð4Ñ5Ô5µwÑ?Ô?Ð?Ð?Ð?r"   c                 ó4  — | j         } |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «         d S )NÚIOPRIO_CLASS_NONEÚIOPRIO_CLASS_RTÚIOPRIO_CLASS_BEÚIOPRIO_CLASS_IDLE)r+   r   r   r   r,   s     r    Útest_linux_ioprio_linuxz.TestAvailConstantsAPIs.test_linux_ioprio_linux<   s„   € ØÔˆØ
ˆ�7•6Ð.Ñ/Ô/µÑ7Ô7Ð7Ø
ˆ�7•6Ð,Ñ-Ô-­uÑ5Ô5Ð5Ø
ˆ�7•6Ð,Ñ-Ô-­uÑ5Ô5Ð5Ø
ˆ�7•6Ð.Ñ/Ô/µÑ7Ô7Ð7Ð7Ð7r"   c                 ó4  — | j         } |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «         d S )NÚIOPRIO_HIGHÚIOPRIO_NORMALÚ
IOPRIO_LOWÚIOPRIO_VERYLOWr*   r,   s     r    Útest_linux_ioprio_windowsz0TestAvailConstantsAPIs.test_linux_ioprio_windowsC   s�   € ØÔˆØ
ˆ�7•6˜=Ñ)Ô)­7Ñ3Ô3Ð3Ø
ˆ�7•6˜?Ñ+Ô+­WÑ5Ô5Ð5Ø
ˆ�7•6˜<Ñ(Ô(­'Ñ2Ô2Ð2Ø
ˆ�7•6Ð+Ñ,Ô,­gÑ6Ô6Ð6Ð6Ð6r"   ú%unsupported on GITHUB_ACTIONS + LINUX©Úreasonc                 ó  — | j         } |t          t          d¦  «        t          pt          ¦  «          |t          t          d¦  «        t          pt          ¦  «          |t          t          d¦  «        t          pt          ¦  «          |t          t          d¦  «        t          pt          ¦  «          |t          t          d¦  «        t          pt          ¦  «          |t          t          d¦  «        t          pt          ¦  «          |t          t          d¦  «        t          pt          ¦  «          |t          t          d¦  «        t          pt          ¦  «          |t          t          d	¦  «        t          pt          ¦  «          |t          t          d
¦  «        t          pt          ¦  «          |t          t          d¦  «        t          pt          ¦  «          |t          t          d¦  «        t          ¦  «         t
          �rt          ¦   «         dk    r$ |t          t          d¦  «        t          ¦  «         t          ¦   «         dk    r$ |t          t          d¦  «        t          ¦  «         t          ¦   «         dk    r$ |t          t          d¦  «        t          ¦  «         t          ¦   «         dk    r$ |t          t          d¦  «        t          ¦  «         t          ¦   «         dk    r$ |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «          |t          t          d¦  «        t          ¦  «         d S )NÚRLIM_INFINITYÚ	RLIMIT_ASÚRLIMIT_COREÚ
RLIMIT_CPUÚRLIMIT_DATAÚRLIMIT_FSIZEÚRLIMIT_MEMLOCKÚRLIMIT_NOFILEÚRLIMIT_NPROCÚ
RLIMIT_RSSÚRLIMIT_STACKÚRLIMIT_LOCKS)é   é   é   ÚRLIMIT_MSGQUEUE)rK   rL   é   ÚRLIMIT_NICEÚRLIMIT_RTPRIO)rK   rL   é   ÚRLIMIT_RTTIMEÚRLIMIT_SIGPENDINGÚRLIMIT_SWAPÚRLIMIT_SBSIZEÚRLIMIT_NPTS)r+   r   r   r   r   r	   r   r,   s     r    Útest_rlimitz"TestAvailConstantsAPIs.test_rlimitJ   sÚ  € ð
 ÔˆØ
ˆ�7•6˜?Ñ+Ô+­UÐ-=µgÑ>Ô>Ð>Ø
ˆ�7•6˜;Ñ'Ô'­Ð)9µ'Ñ:Ô:Ð:Ø
ˆ�7•6˜=Ñ)Ô)­5Ð+;µGÑ<Ô<Ð<Ø
ˆ�7•6˜<Ñ(Ô(­%Ð*:µ7Ñ;Ô;Ð;Ø
ˆ�7•6˜=Ñ)Ô)­5Ð+;µGÑ<Ô<Ð<Ø
ˆ�7•6˜>Ñ*Ô*­EÐ,<µWÑ=Ô=Ð=Ø
ˆ�7•6Ð+Ñ,Ô,­eÐ.>µwÑ?Ô?Ð?Ø
ˆ�7•6˜?Ñ+Ô+­UÐ-=µgÑ>Ô>Ð>Ø
ˆ�7•6˜>Ñ*Ô*­EÐ,<µWÑ=Ô=Ð=Ø
ˆ�7•6˜<Ñ(Ô(­%Ð*:µ7Ñ;Ô;Ð;Ø
ˆ�7•6˜>Ñ*Ô*­EÐ,<µWÑ=Ô=Ð=à
ˆ�7•6˜>Ñ*Ô*­EÑ2Ô2Ð2Ýñ 
	@ÝÑÔ 9Ò,Ð,Ø�•7�6Ð#4Ñ5Ô5µuÑ=Ô=Ð=ÝÑÔ :Ò-Ð-Ø�•7�6 =Ñ1Ô1µ5Ñ9Ô9Ð9ÝÑÔ :Ò-Ð-Ø�•7�6 ?Ñ3Ô3µUÑ;Ô;Ð;ÝÑÔ :Ò-Ð-Ø�•7�6 ?Ñ3Ô3µUÑ;Ô;Ð;ÝÑÔ 9Ò,Ð,Ø�•7�6Ð#6Ñ7Ô7½Ñ?Ô?Ð?à
ˆ�7•6˜=Ñ)Ô)­7Ñ3Ô3Ð3Ø
ˆ�7•6˜?Ñ+Ô+­WÑ5Ô5Ð5Ø
ˆ�7•6˜=Ñ)Ô)­7Ñ3Ô3Ð3Ð3Ð3r"   N)Ú__name__Ú
__module__Ú__qualname__r!   r.   r4   r:   r   ÚmarkÚskipifr   r   rX   © r"   r    r   r   /   s–   € € € € € ðIð Ið Ið@ð @ð @ð8ð 8ð 8ð7ð 7ð 7ð „[×ÒØÐ ˜5Ø6ð ñ ô ð4ð 4ñ	ô ð4ð 4ð 4r"   r   c                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestAvailSystemAPIsc                 óF   — t          t          d¦  «        t          k    sJ ‚d S )NÚwin_service_iter©r   r   r   r   s    r    Útest_win_service_iterz)TestAvailSystemAPIs.test_win_service_itero   s$   € Ý•vÐ1Ñ2Ô2µgÒ=Ð=Ð=Ð=Ð=Ð=r"   c                 óF   — t          t          d¦  «        t          k    sJ ‚d S )NÚwin_service_getrc   r   s    r    Útest_win_service_getz(TestAvailSystemAPIs.test_win_service_getr   s$   € Ý•vÐ0Ñ1Ô1µWÒ<Ð<Ð<Ð<Ð<Ð<r"   c                 ó~   — t          t          d¦  «        t          pt          pt          pt
          pt          k    sJ ‚d S )NÚcpu_freq)r   r   r   r   r   r   r   r   s    r    Útest_cpu_freqz!TestAvailSystemAPIs.test_cpu_frequ   sD   € Ý•v˜zÑ*Ô*ÝÐ;•UÐ;�gÐ;­Ð;µGò
ð 
ð 
ð 
ð 
ð 
r"   c                 óT   — t          t          d¦  «        t          pt          k    sJ ‚d S )NÚsensors_temperatures)r   r   r   r   r   s    r    Útest_sensors_temperaturesz-TestAvailSystemAPIs.test_sensors_temperaturesz   s)   € Ý•vÐ5Ñ6Ô6½5Ð;KÅGÒLÐLÐLÐLÐLÐLr"   c                 óF   — t          t          d¦  «        t          k    sJ ‚d S )NÚsensors_fans)r   r   r   r   s    r    Útest_sensors_fansz%TestAvailSystemAPIs.test_sensors_fans}   s#   € Ý•v˜~Ñ.Ô.µ%Ò7Ð7Ð7Ð7Ð7Ð7r"   c                 óp   — t          t          d¦  «        t          pt          pt          pt
          k    sJ ‚d S )NÚsensors_battery)r   r   r   r   r   r   r   s    r    Útest_batteryz TestAvailSystemAPIs.test_battery€   s@   € Ý•vÐ0Ñ1Ô1ÝÐ0•WÐ0¥Ð0­5ò
ð 
ð 
ð 
ð 
ð 
r"   N)	rY   rZ   r[   rd   rg   rj   rm   rp   rs   r^   r"   r    r`   r`   n   sq   € € € € € ð>ð >ð >ð=ð =ð =ð
ð 
ð 
ð
Mð Mð Mð8ð 8ð 8ð
ð 
ð 
ð 
ð 
r"   r`   c                   óž   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zej	         
                    eoed¬¦  «        d„ ¦   «         Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestAvailProcessAPIsc                 ó²   — t          t          j        d¦  «        t          p0t          p)t
          p"t          pt          pt          pt          pt          k    sJ ‚d S )NÚenviron)r   r   ÚProcessr   r   r   r   r
   r   r   r   r   s    r    Útest_environz!TestAvailProcessAPIs.test_environ‡   st   € Ý•v”~ yÑ1Ô1Ýð Ýðåðõ ðõ ð	õ
 ðõ ðõ ò	
ð 	
ð 	
ð 	
ð 	
ð 	
r"   c                 óP   — t          t          j        d¦  «        t          k    sJ ‚d S ©NÚuids©r   r   rx   r	   r   s    r    Ú	test_uidszTestAvailProcessAPIs.test_uids“   ó%   € Ý•v”~ vÑ.Ô.µ%Ò7Ð7Ð7Ð7Ð7Ð7r"   c                 óP   — t          t          j        d¦  «        t          k    sJ ‚d S r{   r}   r   s    r    Ú	test_gidszTestAvailProcessAPIs.test_gids–   r   r"   c                 óP   — t          t          j        d¦  «        t          k    sJ ‚d S )NÚterminalr}   r   s    r    Útest_terminalz"TestAvailProcessAPIs.test_terminal™   s%   € Ý•v”~ zÑ2Ô2µeÒ;Ð;Ð;Ð;Ð;Ð;r"   c                 ó^   — t          t          j        d¦  «        t          pt          k    sJ ‚d S )NÚionice)r   r   rx   r   r   r   s    r    Útest_ionicez TestAvailProcessAPIs.test_ioniceœ   s*   € Ý•v”~ xÑ0Ô0µUÐ5E½gÒFÐFÐFÐFÐFÐFr"   r;   r<   c                 ó^   — t          t          j        d¦  «        t          pt          k    sJ ‚d S )NÚrlimit)r   r   rx   r   r   r   s    r    rX   z TestAvailProcessAPIs.test_rlimitŸ   s,   € õ
 •v”~ xÑ0Ô0µUÐ5E½gÒFÐFÐFÐFÐFÐFr"   c                 ód   — t          t          j        d¦  «        }|t          pt           k    sJ ‚d S )NÚio_counters)r   r   rx   r   r
   ©r   Úhasits     r    Útest_io_countersz%TestAvailProcessAPIs.test_io_counters¦   s1   € Ý�œ¨Ñ6Ô6ˆØ�e˜n¥uÐ-Ò.Ð.Ð.Ð.Ð.Ð.r"   c                 óP   — t          t          j        d¦  «        t          k    sJ ‚d S )NÚnum_fdsr}   r   s    r    Útest_num_fdsz!TestAvailProcessAPIs.test_num_fdsª   s%   € Ý•v”~ yÑ1Ô1µUÒ:Ð:Ð:Ð:Ð:Ð:r"   c                 óP   — t          t          j        d¦  «        t          k    sJ ‚d S )NÚnum_handles)r   r   rx   r   r   s    r    Útest_num_handlesz%TestAvailProcessAPIs.test_num_handles­   s%   € Ý•v”~ }Ñ5Ô5½Ò@Ð@Ð@Ð@Ð@Ð@r"   c                 ól   — t          t          j        d¦  «        t          pt          pt
          k    sJ ‚d S )NÚcpu_affinity)r   r   rx   r   r   r   r   s    r    Útest_cpu_affinityz&TestAvailProcessAPIs.test_cpu_affinity°   s<   € Ý•v”~ ~Ñ6Ô6ÝÐ'•WÐ'¥ò
ð 
ð 
ð 
ð 
ð 
r"   c                 ól   — t          t          j        d¦  «        t          pt          pt
          k    sJ ‚d S )NÚcpu_num)r   r   rx   r   r   r
   r   s    r    Útest_cpu_numz!TestAvailProcessAPIs.test_cpu_numµ   s<   € Ý•v”~ yÑ1Ô1ÝÐ%•WÐ%¥ò
ð 
ð 
ð 
ð 
ð 
r"   c                 ó€   — t          t          j        d¦  «        }|t          pt          pt
          pt           k    sJ ‚d S )NÚmemory_maps)r   r   rx   r   r   r   r   rŒ   s     r    Útest_memory_mapsz%TestAvailProcessAPIs.test_memory_mapsº   s<   € Ý�œ¨Ñ6Ô6ˆØ�gÐ?­Ð?µ3Ð?½%Ð@ÒAÐAÐAÐAÐAÐAr"   N)rY   rZ   r[   ry   r~   r�   r„   r‡   r   r\   r]   r   r   rX   rŽ   r‘   r”   r—   rš   r�   r^   r"   r    ru   ru   †   s  € € € € € ð

ð 

ð 

ð8ð 8ð 8ð8ð 8ð 8ð<ð <ð <ðGð Gð Gð „[×ÒØÐ ˜5Ø6ð ñ ô ðGð Gñ	ô ðGð/ð /ð /ð;ð ;ð ;ðAð Að Að
ð 
ð 
ð

ð 
ð 
ð
Bð Bð Bð Bð Br"   ru   c                   óT  — e Zd ZdZed„ ¦   «         Zedfd„Zd„ Zd„ Z	d„ Z
d„ Zej                             eo ej        ¦   «         d	k    d
¬¦  «        ej                             e d¬¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zej                             ed¬¦  «        d„ ¦   «         Zd„ Zd„ Zej                             e d¬¦  «        d„ ¦   «         Zej                             e d¬¦  «        d„ ¦   «         Zej                             e d¬¦  «        d„ ¦   «         Zd„ Z d„ Z!dS )ÚTestSystemAPITypeszhCheck the return types of system related APIs.
    https://github.com/giampaolo/psutil/issues/1039.
    c                 ó6   — t          j        ¦   «         | _        d S ©N)r   rx   Úproc)Úclss    r    Ú
setUpClasszTestSystemAPITypes.setUpClassÉ   s   € å”>Ñ#Ô#ˆŒˆˆr"   Tc                 ój   — t          |¦  «        sJ ‚|D ]}t          ||¦  «        sJ ‚|r|dk    sJ ‚Œd S )Nr   )r   Ú
isinstance)r   ÚntÚtype_ÚgezeroÚns        r    Úassert_ntuple_of_numsz(TestSystemAPITypes.assert_ntuple_of_numsÍ   s[   € Ý˜RÑ Ô Ð Ð Ð Øð 	ð 	ˆAÝ˜a Ñ'Ô'Ð'Ð'Ð'Øð Ø˜A’v�v�v�vøð	ð 	r"   c                 ó¬   — |                       t          j        ¦   «         ¦  «         t          j        d¬¦  «        D ]}|                       |¦  «         Œd S )NT)Úpercpu)r«   r   Ú	cpu_times)r   r§   s     r    Útest_cpu_timesz!TestSystemAPITypes.test_cpu_timesÔ   s]   € Ø×"Ò"¥6Ô#3Ñ#5Ô#5Ñ6Ô6Ð6ÝÔ"¨$Ð/Ñ/Ô/ð 	+ð 	+ˆBØ×&Ò& rÑ*Ô*Ð*Ð*ð	+ð 	+r"   c                 ó®   — t          t          j        d ¬¦  «        t          ¦  «        sJ ‚t          t          j        d¬¦  «        t          ¦  «        sJ ‚d S )N©Úintervalgñhãˆµøä>)r¦   r   Úcpu_percentÚfloatr   s    r    Útest_cpu_percentz#TestSystemAPITypes.test_cpu_percentÙ   sP   € Ý�&Ô,°dÐ;Ñ;Ô;½UÑCÔCÐCÐCÐCÝ�&Ô,°gÐ>Ñ>Ô>ÅÑFÔFÐFÐFÐFÐFÐFr"   c                 ó¦   — |                       t          j        d ¬¦  «        ¦  «         |                       t          j        d¬¦  «        ¦  «         d S )Nr±   g-Cëâ6?)r«   r   Úcpu_times_percentr   s    r    Útest_cpu_times_percentz)TestSystemAPITypes.test_cpu_times_percentÝ   sL   € Ø×"Ò"¥6Ô#;ÀTÐ#JÑ#JÔ#JÑKÔKÐKØ×"Ò"¥6Ô#;ÀVÐ#LÑ#LÔ#LÑMÔMÐMÐMÐMr"   c                 óV   — t          t          j        ¦   «         t          ¦  «        sJ ‚d S r¡   )r¦   r   Ú	cpu_countÚintr   s    r    Útest_cpu_countz!TestSystemAPITypes.test_cpu_countá   s'   € Ý�&Ô*Ñ,Ô,­cÑ2Ô2Ð2Ð2Ð2Ð2Ð2r"   Úarm64zskipped due to #1892r<   znot supportedc                 ó¼   — t          j        ¦   «         €t          j        d¦  «        ‚|                      t          j        ¦   «         t
          t          f¬¦  «         d S )Nzcpu_freq() returns None©r¨   )r   ri   r   Úskipr«   r´   r»   r   s    r    rj   z TestSystemAPITypes.test_cpu_freqå   sN   € õ
 Œ?ÑÔÐ$Ý”+Ð7Ñ8Ô8Ð8Ø×"Ò"¥6¤?Ñ#4Ô#4½UÅC¸LÐ"ÑIÔIÐIÐIÐIr"   c                 óÆ   — t          j        d¬¦  «                             ¦   «         D ]8\  }}t          |t          ¦  «        sJ ‚|                      |t          ¬¦  «         Œ9d S )NT)Úperdiskr¿   )r   Údisk_io_countersÚitemsr¦   Ústrr«   r»   )r   ÚkÚvs      r    Útest_disk_io_countersz(TestSystemAPITypes.test_disk_io_countersî   sk   € åÔ+°DÐ9Ñ9Ô9×?Ò?ÑAÔAð 	5ð 	5‰DˆAˆqÝ˜a¥Ñ%Ô%Ð%Ð%Ð%Ø×&Ò& qµÐ&Ñ4Ô4Ð4Ð4ð	5ð 	5r"   c                 ó  — t          j        ¦   «         D ]r}t          |j        t          ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚Œsd S r¡   )r   Údisk_partitionsr¦   ÚdevicerÅ   Ú
mountpointÚfstypeÚopts)r   Údisks     r    Útest_disk_partitionsz'TestSystemAPITypes.test_disk_partitionsô   s‡   € åÔ*Ñ,Ô,ð 	.ð 	.ˆDÝ˜dœk­3Ñ/Ô/Ð/Ð/Ð/Ý˜dœo­sÑ3Ô3Ð3Ð3Ð3Ý˜dœk­3Ñ/Ô/Ð/Ð/Ð/Ý˜dœi­Ñ-Ô-Ð-Ð-Ð-Ð-ð		.ð 	.r"   zrequires rootc                 ó  — t          ¦   «         5  t          j        d¦  «        }t          |¦  «        t          t	          |¦  «        ¦  «        k    sJ ‚|D ]}t          |¦  «        sJ ‚Œ	 d d d ¦  «         d S # 1 swxY w Y   d S )NÚall)r   r   Únet_connectionsÚlenÚsetr   )r   ÚretÚconns      r    Útest_net_connectionsz'TestSystemAPITypes.test_net_connectionsü   sÐ   € åÑÔð 	+ð 	+ÝÔ(¨Ñ/Ô/ˆCÝ�s‘8”8�s¥3 s¡8¤8™}œ}Ò,Ð,Ð,Ð,Øð +ð +�Ý$ TÑ*Ô*Ð*Ð*Ð*Ð*ð+ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+ð 	+ð 	+s   �AA7Á7A;Á>A;c           	      óº  — t          j        ¦   «                              ¦   «         D ]´\  }}t          |t          ¦  «        sJ ‚|D ]•}t          |j        t          j        ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚t          |j	        t          t          d ¦  «        f¦  «        sJ ‚t          |j        t          t          d ¦  «        f¦  «        sJ ‚Œ–Œµd S r¡   )r   Únet_if_addrsrÄ   r¦   rÅ   Úfamilyr   ÚIntEnumÚaddressÚnetmaskÚtypeÚ	broadcast)r   ÚifnameÚaddrsÚaddrs       r    Útest_net_if_addrsz$TestSystemAPITypes.test_net_if_addrs  sà   € å#Ô0Ñ2Ô2×8Ò8Ñ:Ô:ð 	Eð 	E‰MˆF�EÝ˜f¥cÑ*Ô*Ð*Ð*Ð*Øð Eð E�Ý! $¤+­t¬|Ñ<Ô<Ð<Ð<Ð<Ý! $¤,µÑ4Ô4Ð4Ð4Ð4Ý! $¤,µµd¸4±j´jÐ0AÑBÔBÐBÐBÐBÝ! $¤.µ3½¸T¹
¼
Ð2CÑDÔDÐDÐDÐDÐDð	Eð	Eð 	Er"   c                 ót  — t          j        ¦   «                              ¦   «         D ]‘\  }}t          |t          ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚t          |j        t          j	        ¦  «        sJ ‚t          |j
        t          ¦  «        sJ ‚t          |j        t          ¦  «        sJ ‚Œ’d S r¡   )r   Únet_if_statsrÄ   r¦   rÅ   ÚisupÚboolÚduplexr   rÜ   Úspeedr»   Úmtu)r   rá   Úinfos      r    Útest_net_if_statsz$TestSystemAPITypes.test_net_if_stats  s¯   € å"Ô/Ñ1Ô1×7Ò7Ñ9Ô9ð 	-ð 	-‰LˆF�DÝ˜f¥cÑ*Ô*Ð*Ð*Ð*Ý˜dœi­Ñ.Ô.Ð.Ð.Ð.Ý˜dœk­4¬<Ñ8Ô8Ð8Ð8Ð8Ý˜dœj­#Ñ.Ô.Ð.Ð.Ð.Ý˜dœh­Ñ,Ô,Ð,Ð,Ð,Ð,ð	-ð 	-r"   c                 ód   — t          j        d¬¦  «        D ]}t          |t          ¦  «        sJ ‚Œd S )NT)Úpernic)r   Únet_io_countersr¦   rÅ   )r   rá   s     r    Útest_net_io_countersz'TestSystemAPITypes.test_net_io_counters  sD   € õ Ô,°DÐ9Ñ9Ô9ð 	+ð 	+ˆFÝ˜f¥cÑ*Ô*Ð*Ð*Ð*Ð*ð	+ð 	+r"   c           
      ó.  — t          j        ¦   «                              ¦   «         D ]n\  }}t          |t          ¦  «        sJ ‚|D ]O}t          |j        t          ¦  «        sJ ‚t          |j        t          t          t          d ¦  «        f¦  «        sJ ‚ŒPŒod S r¡   )
r   ro   rÄ   r¦   rÅ   ÚlabelÚcurrentr´   r»   rß   ©r   ÚnameÚunitsÚunits       r    rp   z$TestSystemAPITypes.test_sensors_fans  s§   € õ "Ô.Ñ0Ô0×6Ò6Ñ8Ô8ð 	Jð 	J‰KˆD�%Ý˜d¥CÑ(Ô(Ð(Ð(Ð(Øð Jð J�Ý! $¤*­cÑ2Ô2Ð2Ð2Ð2Ý! $¤,µ½½TÀ$¹Z¼ZÐ0HÑIÔIÐIÐIÐIÐIðJð	Jð 	Jr"   c           
      óò  — t          j        ¦   «                              ¦   «         D ]Ð\  }}t          |t          ¦  «        sJ ‚|D ]±}t          |j        t          ¦  «        sJ ‚t          |j        t          t          t          d ¦  «        f¦  «        sJ ‚t          |j
        t          t          t          d ¦  «        f¦  «        sJ ‚t          |j        t          t          t          d ¦  «        f¦  «        sJ ‚Œ²ŒÑd S r¡   )r   rl   rÄ   r¦   rÅ   ró   rô   r´   r»   rß   ÚhighÚcriticalrõ   s       r    rm   z,TestSystemAPITypes.test_sensors_temperatures&  sñ   € õ "Ô6Ñ8Ô8×>Ò>Ñ@Ô@ð 	Kð 	K‰KˆD�%Ý˜d¥CÑ(Ô(Ð(Ð(Ð(Øð Kð K�Ý! $¤*­cÑ2Ô2Ð2Ð2Ð2Ý! $¤,µ½½TÀ$¹Z¼ZÐ0HÑIÔIÐIÐIÐIÝ! $¤)­eµS½$¸t¹*¼*Ð-EÑFÔFÐFÐFÐFÝ! $¤-µ%½½dÀ4¹j¼jÐ1IÑJÔJÐJÐJÐJÐJð	Kð	Kð 	Kr"   c                 óV   — t          t          j        ¦   «         t          ¦  «        sJ ‚d S r¡   )r¦   r   Ú	boot_timer´   r   s    r    Útest_boot_timez!TestSystemAPITypes.test_boot_time1  s'   € å�&Ô*Ñ,Ô,­eÑ4Ô4Ð4Ð4Ð4Ð4Ð4r"   c                 ól  — t          j        ¦   «         D ]Ÿ}t          |j        t          ¦  «        sJ ‚t          |j        t          t          d ¦  «        f¦  «        sJ ‚t          |j        t          t          d ¦  «        f¦  «        sJ ‚t          |j        t          t          d ¦  «        f¦  «        sJ ‚Œ d S r¡   )
r   Úusersr¦   rö   rÅ   rƒ   rß   ÚhostÚpidr»   )r   Úusers     r    Ú
test_userszTestSystemAPITypes.test_users5  s¥   € å”L‘N”Nð 	;ð 	;ˆDÝ˜dœi­Ñ-Ô-Ð-Ð-Ð-Ý˜dœm­cµ4¸±:´:Ð->Ñ?Ô?Ð?Ð?Ð?Ý˜dœi­#­t°D©z¬zÐ):Ñ;Ô;Ð;Ð;Ð;Ý˜dœh­­d°4©j¬jÐ(9Ñ:Ô:Ð:Ð:Ð:Ð:ð		;ð 	;r"   N)"rY   rZ   r[   Ú__doc__Úclassmethodr¤   r´   r«   r¯   rµ   r¸   r¼   r   r\   r]   r   ÚplatformÚmachiner   rj   rÈ   rÐ   r   rØ   rä   rí   r   rñ   r   rp   r   rm   rþ   r  r^   r"   r    rŸ   rŸ   Ä   sF  € € € € € ðð ð ð$ð $ñ „[ð$ð /4¸Dð ð ð ð ð+ð +ð +ð
Gð Gð GðNð Nð Nð3ð 3ð 3ð „[×ÒØÐ/Ð"�(Ô"Ñ$Ô$¨Ò/Ð8Nð ñ ô ð „[×Ò˜LÐ(°ÐÑAÔAðJð Jñ BÔAñô ðJð
5ð 5ð 5ð.ð .ð .ð „[×Ò˜¨_ÐÑ=Ô=ð+ð +ñ >Ô=ð+ðEð Eð Eð-ð -ð -ð „[×ÒÐ/Ð/¸ÐÑHÔHð+ð +ñ IÔHð+ð
 „[×ÒÐ,Ð,°_ÐÑEÔEðJð Jñ FÔEðJð „[×ÒÐ4Ð4¸_ÐÑMÔMðKð Kñ NÔMðKð5ð 5ð 5ð;ð ;ð ;ð ;ð ;r"   rŸ   c                   óZ   — e Zd Zej                             e d¬¦  «        d„ ¦   «         ZdS )ÚTestProcessWaitTypez	not POSIXr<   c                 ó
  — t          j        |                      ¦   «         j        ¦  «        }|                     ¦   «          |                     ¦   «         }|t          j         k    sJ ‚t          |t          j
        ¦  «        sJ ‚d S r¡   )r   rx   Úspawn_testprocr  Ú	terminateÚwaitÚsignalÚSIGTERMr¦   r   rÜ   )r   ÚpÚcodes      r    Útest_negative_signalz(TestProcessWaitType.test_negative_signal?  sm   € åŒN˜4×.Ò.Ñ0Ô0Ô4Ñ5Ô5ˆØ	�Š‰ŒˆØ�vŠv‰xŒxˆØ�œ�Ò&Ð&Ð&Ð&Ý˜$¥¤Ñ-Ô-Ð-Ð-Ð-Ð-Ð-r"   N)rY   rZ   r[   r   r\   r]   r	   r  r^   r"   r    r
  r
  >  sE   € € € € € Ø„[×Ò˜E˜	¨+ÐÑ6Ô6ð.ð .ñ 7Ô6ð.ð .ð .r"   r
  )r  r  r  r   r   r   r   r   r   r   r	   r
   r   Úpsutil.testsr   r   r   r   r   r   r   r   r   r   r   r   r   r`   ru   rŸ   r
  r^   r"   r    ú<module>r     s•  ððð ð
 €€€Ø €€€à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø %Ð %Ð %Ð %Ð %Ð %Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø )Ð )Ð )Ð )Ð )Ð )Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø %Ð %Ð %Ð %Ð %Ð %Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð ð<4ð <4ð <4ð <4ð <4˜^ñ <4ô <4ð <4ð~
ð 
ð 
ð 
ð 
˜.ñ 
ô 
ð 
ð06Bð 6Bð 6Bð 6Bð 6B˜>ñ 6Bô 6Bð 6Bð|w;ð w;ð w;ð w;ð w;˜ñ w;ô w;ð w;ðt.ð .ð .ð .ð .˜.ñ .ô .ð .ð .ð .r"   