§ x<ˆj´:ãó¨—dZddlmZddlZddlZddlZddlZddlZddlZddlm Z ddlm Z ddlm Z ddlm Z ddlm Z dd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddlm$Z$ddlm%Z%ddlm&Z&ej'j(Z(ej)¦«Z*d Z+d!„Z,Gd"„d#e¦«Z-Gd$„d%e-¦«Z.ej/e d&¦«Gd'„d(e¦«¦«Z0Gd)„d*e¦«Z1e2d+krdd,l3m4Z4e4e5¦«dSdS)-aª Tests for detecting function memory leaks (typically the ones implemented in C). It does so by calling a function many times and checking whether process memory usage keeps increasing between calls or over time. Note that this may produce false positives (especially on Windows for some reason). PyPy appears to be completely unstable for this framework, probably because of how its JIT handles memory, so tests are skipped. é)Úprint_functionN)ÚLINUX)ÚMACOS)ÚOPENBSD)ÚPOSIX)ÚSUNOS)ÚWINDOWS)ÚProcessLookupError)Úsuper)ÚHAS_CPU_AFFINITY)Ú HAS_CPU_FREQ)Ú HAS_ENVIRON)Ú HAS_IONICE)ÚHAS_MEMORY_MAPS)ÚHAS_NET_IO_COUNTERS)ÚHAS_PROC_CPU_NUM)ÚHAS_PROC_IO_COUNTERS)Ú HAS_RLIMIT)ÚHAS_SENSORS_BATTERY)ÚHAS_SENSORS_FANS)ÚHAS_SENSORS_TEMPERATURES)ÚTestMemoryLeak)Úcreate_sockets)Ú get_testfn)Úprocess_namespace)Úskip_on_access_denied)Úspawn_testproc)Úsystem_namespace)Ú terminateécó —d„}|S)zsDecorator for those Linux functions which are implemented in pure Python, and which we want to run faster. cóF‡—tj‰¦«ˆfd„¦«}|S)Nc󸕗trG|jj} t|j_‰|g|¢Ri|¤Ž||j_S#||j_wxYw‰|g|¢Ri|¤ŽS©N)rÚ __class__ÚtimesÚ FEW_TIMES)ÚselfÚargsÚkwargsÚbeforeÚfuns €ún/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib64/python3.11/site-packages/psutil/tests/test_memleaks.pyÚwrapperz5fewtimes_if_linux..decorator..wrapperCs„ø€åð 2ØœÔ-�ð2Ý+4�D”NÔ(ؘ3˜tÐ5 dÐ5Ð5Ð5¨fÐ5Ð5à+1�D”NÔ(Ð(ø¨6�D”NÔ(Ð1Ð1Ð1Ð1à�s˜4Ð1 $Ð1Ð1Ð1¨&Ð1Ð1Ð1s –?¿A )Ú functoolsÚwraps)r,r.s` r-Ú decoratorz$fewtimes_if_linux..decoratorBs8ø€Ý Œ˜Ñ Ô ð 2ð 2ð 2ð 2ñ Ô ð 2ðˆó©)r1s r-Úfewtimes_if_linuxr4>s€ð ð ð ð Ðr2có²—eZdZdZeZd„Ze¦«d„¦«Ze¦«d„¦«Z e¦«d„¦«Z e¦«d„¦«Z e j e d¦«e¦«d„¦«¦«Ze j e d¦«e¦«d „¦«¦«Ze¦«d „¦«Zd „Zd „Ze j e d ¦«d„¦«Ze j e d ¦«d„¦«Ze j e d ¦«e¦«d„¦«¦«Ze j ed¦«d„¦«Ze¦«d„¦«Ze¦«ee¬¦«d„¦«¦«Ze j e d¦«d„¦«Ze j e d¦«e¦«d„¦«¦«Z e¦«d„¦«Z!e¦«ee¬¦«d„¦«¦«Z"e¦«d„¦«Z#e¦«e j e$ d ¦«d„¦«¦«Z%e¦«d„¦«Z&e¦«d„¦«Z'e j e d¦«e¦«d„¦«¦«Z(d „Z)e¦«d!„¦«Z*e j e+ d ¦«d"„¦«Z,e j e+ d ¦«d#„¦«Z-e¦«d$„¦«Z.e j e/ d ¦«e¦«d%„¦«¦«Z0e j e1 d&¦«e j e2 d ¦«d'„¦«¦«Z3e j e1 d&¦«e j e2 d ¦«d(„¦«¦«Z4e¦«e j ed)¦«d*„¦«¦«Z5e j e6 d ¦«d+„¦«Z7e j e d¦«d,„¦«Z8d-S).ÚTestProcessObjectLeaksz$Test leaks of Process class methods.cój—td¦«}| ||j|jz¦«dSr$)rÚtest_class_coverageÚgettersÚsetters©r(Únss r-Ú test_coveragez$TestProcessObjectLeaks.test_coverage\s4€Ý ˜tÑ $Ô $ˆØ ×Ò˜t R¤Z°"´*Ñ%<Ñ=Ô=Ð=Ð=Ð=r2cóD—| |jj¦«dSr$)ÚexecuteÚprocÚname©r(s r-Ú test_namez TestProcessObjectLeaks.test_name`ó€à � Š �T”Y”^Ñ$Ô$Ð$Ð$Ð$r2cóD—| |jj¦«dSr$)r?r@ÚcmdlinerBs r-Ú test_cmdlinez#TestProcessObjectLeaks.test_cmdlinedó€à � Š �T”YÔ&Ñ'Ô'Ð'Ð'Ð'r2cóD—| |jj¦«dSr$)r?r@ÚexerBs r-Útest_exezTestProcessObjectLeaks.test_exehó€à � Š �T”Y”]Ñ#Ô#Ð#Ð#Ð#r2cóD—| |jj¦«dSr$)r?r@ÚppidrBs r-Ú test_ppidz TestProcessObjectLeaks.test_ppidlrDr2z POSIX onlycóD—| |jj¦«dSr$)r?r@ÚuidsrBs r-Ú test_uidsz TestProcessObjectLeaks.test_uidspó €ð � Š �T”Y”^Ñ$Ô$Ð$Ð$Ð$r2cóD—| |jj¦«dSr$)r?r@ÚgidsrBs r-Ú test_gidsz TestProcessObjectLeaks.test_gidsurSr2cóD—| |jj¦«dSr$)r?r@ÚstatusrBs r-Ú test_statusz"TestProcessObjectLeaks.test_statuszó€à � Š �T”YÔ%Ñ&Ô&Ð&Ð&Ð&r2cóD—| |jj¦«dSr$)r?r@ÚnicerBs r-Ú test_nicez TestProcessObjectLeaks.test_nice~s€Ø � Š �T”Y”^Ñ$Ô$Ð$Ð$Ð$r2cón‡‡—t ¦«Š‰ ˆˆfd„¦«dS)Ncó8•—‰j ‰¦«Sr$)r@r\)Únicenessr(s€€r-úz6TestProcessObjectLeaks.test_nice_set..ƒsø€˜TœYŸ^š^¨HÑ5Ô5€r2)Úthisprocr\r?)r(r`s`@r-Ú test_nice_setz$TestProcessObjectLeaks.test_nice_set�s6øø€Ý—=’=‘?”?ˆØ � Š Ð5Ð5Ð5Ð5Ð5Ñ6Ô6Ð6Ð6Ð6r2ú not supportedcóD—| |jj¦«dSr$)r?r@ÚionicerBs r-Ú test_ionicez"TestProcessObjectLeaks.test_ionice…rZr2cóJ‡‡—tr4t ¦«Š‰ ˆˆfd„¦«dS‰ ˆfd„¦«t jt jtj ¦«dd¦«}‰  t|¦«dS)Ncó8•—‰j ‰¦«Sr$)r@rf)r(Úvalues€€r-raz8TestProcessObjectLeaks.test_ionice_set..�sø€ ¤×!1Ò!1°%Ñ!8Ô!8€r2cóL•—‰j tj¦«Sr$)r@rfÚpsutilÚIOPRIO_CLASS_NONErBs€r-raz8TestProcessObjectLeaks.test_ionice_set..�sø€ ¤×!1Ò!1µ&Ô2JÑ!KÔ!K€r2éÿÿÿÿr) r rbrfr?r/ÚpartialÚcextÚproc_ioprio_setÚosÚgetpidÚ execute_w_excÚOSError)r(r,rjs` @r-Útest_ionice_setz&TestProcessObjectLeaks.test_ionice_set‰s—øø€å ð -Ý—O’OÑ%Ô%ˆEØ �LŠLÐ8Ð8Ð8Ð8Ð8Ñ 9Ô 9Ð 9Ð 9Ð 9à �LŠLÐKÐKÐKÐKÑ LÔ LÐ LÝÔ#¥DÔ$8½"¼)¹+¼+ÀrÈ1ÑMÔMˆCØ × Ò �w¨Ñ ,Ô ,Ð ,Ð ,Ð ,r2cóD—| |jj¦«dSr$)r?r@Ú io_countersrBs r-Útest_io_countersz'TestProcessObjectLeaks.test_io_counters“ó!€ð � Š �T”YÔ*Ñ+Ô+Ð+Ð+Ð+r2zworthless on POSIXcóŽ—tj¦« ¦«| |jj¦«dSr$)rlÚProcessÚusernamer?r@rBs r-Ú test_usernamez$TestProcessObjectLeaks.test_username˜s;€õ ŒÑÔ×!Ò!Ñ#Ô#Ð#Ø � Š �T”YÔ'Ñ(Ô(Ð(Ð(Ð(r2cóD—| |jj¦«dSr$)r?r@Ú create_timerBs r-Útest_create_timez'TestProcessObjectLeaks.test_create_timežó€à � Š �T”YÔ*Ñ+Ô+Ð+Ð+Ð+r2)Úonly_ifcóD—| |jj¦«dSr$)r?r@Ú num_threadsrBs r-Útest_num_threadsz'TestProcessObjectLeaks.test_num_threads¢rzr2ú WINDOWS onlycóD—| |jj¦«dSr$)r?r@Ú num_handlesrBs r-Útest_num_handlesz'TestProcessObjectLeaks.test_num_handles§r‚r2cóD—| |jj¦«dSr$)r?r@Únum_fdsrBs r-Ú test_num_fdsz#TestProcessObjectLeaks.test_num_fds«ó!€ð � Š �T”YÔ&Ñ'Ô'Ð'Ð'Ð'r2cóD—| |jj¦«dSr$)r?r@Únum_ctx_switchesrBs r-Útest_num_ctx_switchesz,TestProcessObjectLeaks.test_num_ctx_switches°ó€à � Š �T”YÔ/Ñ0Ô0Ð0Ð0Ð0r2cóD—| |jj¦«dSr$)r?r@ÚthreadsrBs r-Ú test_threadsz#TestProcessObjectLeaks.test_threads´rŽr2cóD—| |jj¦«dSr$)r?r@Ú cpu_timesrBs r-Útest_cpu_timesz%TestProcessObjectLeaks.test_cpu_times¹s€à � Š �T”YÔ(Ñ)Ô)Ð)Ð)Ð)r2cóD—| |jj¦«dSr$)r?r@Úcpu_numrBs r-Ú test_cpu_numz#TestProcessObjectLeaks.test_cpu_num½rŽr2cóD—| |jj¦«dSr$)r?r@Ú memory_inforBs r-Útest_memory_infoz'TestProcessObjectLeaks.test_memory_infoÂr‚r2cóD—| |jj¦«dSr$)r?r@Úmemory_full_inforBs r-Útest_memory_full_infoz,TestProcessObjectLeaks.test_memory_full_infoÆr’r2cóD—| |jj¦«dSr$)r?r@ÚterminalrBs r-Ú test_terminalz$TestProcessObjectLeaks.test_terminalÊs!€ð � Š �T”YÔ'Ñ(Ô(Ð(Ð(Ð(r2cór—trtn|j}| |jj|¬¦«dS)N©r&)rr'r&r?r@Úresume©r(r&s r-Ú test_resumez"TestProcessObjectLeaks.test_resumeÏs3€Ý"Ð2• � ¨¬ ˆØ � Š �T”YÔ%¨Uˆ Ñ3Ô3Ð3Ð3Ð3r2cóD—| |jj¦«dSr$)r?r@ÚcwdrBs r-Útest_cwdzTestProcessObjectLeaks.test_cwdÓrLr2cóD—| |jj¦«dSr$)r?r@Ú cpu_affinityrBs r-Útest_cpu_affinityz(TestProcessObjectLeaks.test_cpu_affinity×s€à � Š �T”YÔ+Ñ,Ô,Ð,Ð,Ð,r2c󪇇—t ¦«Š‰ ˆˆfd„¦«‰ tˆfd„¦«dS)Ncó8•—‰j ‰¦«Sr$©r@r®)Úaffinityr(s€€r-raz>TestProcessObjectLeaks.test_cpu_affinity_set..Þsø€˜TœY×3Ò3°HÑ=Ô=€r2có:•—‰j dg¦«S©Nrnr²rBs€r-raz>TestProcessObjectLeaks.test_cpu_affinity_set..àsø€ ¤ × 6Ò 6¸°tÑ <Ô <€r2)rbr®r?rtÚ ValueError)r(r³s`@r-Útest_cpu_affinity_setz,TestProcessObjectLeaks.test_cpu_affinity_setÛseøø€å×(Ò(Ñ*Ô*ˆØ � Š Ð=Ð=Ð=Ð=Ð=Ñ>Ô>Ð>Ø ×ÒÝ Ð<Ð<Ð<Ð<ñ >ô >ð >ð >ð >r2có®—tt¦«d¦«5| |jj¦«ddd¦«dS#1swxYwYdS)NÚw)Úopenrr?r@Ú open_filesrBs r-Útest_open_filesz&TestProcessObjectLeaks.test_open_filesâs‘€å •*‘,”, Ñ $Ô $ð /ð /Ø �LŠL˜œÔ-Ñ .Ô .Ð .ð /ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /s� A Á AÁAcóD—| |jj¦«dSr$)r?r@Ú memory_mapsrBs r-Útest_memory_mapsz'TestProcessObjectLeaks.test_memory_mapsçrzr2z LINUX onlycó8‡—‰ ˆfd„¦«dS)NcóL•—‰j tj¦«Sr$©r@ÚrlimitrlÚ RLIMIT_NOFILErBs€r-raz4TestProcessObjectLeaks.test_rlimit..ïsø€˜TœY×-Ò-­fÔ.BÑCÔC€r2©r?rBs`r-Ú test_rlimitz"TestProcessObjectLeaks.test_rlimitìs'ø€ð � Š ÐCÐCÐCÐCÑDÔDÐDÐDÐDr2có·‡—t tj¦«Š‰ ˆˆfd„¦«‰ t tfˆfd„¦«dS)NcóN•—‰j tj‰¦«Sr$rÂ)Úlimitr(s€€r-raz8TestProcessObjectLeaks.test_rlimit_set..õsø€˜TœY×-Ò-­fÔ.BÀEÑJÔJ€r2có8•—‰j d¦«Srµ)r@rÃrBs€r-raz8TestProcessObjectLeaks.test_rlimit_set..ösø€¸$¼)×:JÒ:JÈ2Ñ:NÔ:N€r2)rbrÃrlrÄr?rtrur¶)r(rÉs`@r-Útest_rlimit_setz&TestProcessObjectLeaks.test_rlimit_setñsdøø€õ—’¥Ô 4Ñ5Ô5ˆØ � Š ÐJÐJÐJÐJÐJÑKÔKÐKØ ×Ò�G¥ZÐ0Ð2NÐ2NÐ2NÐ2NÑOÔOÐOÐOÐOr2zworthless on WINDOWSc󠇇—t¦«5trdndЉ ˆˆfd„¦«ddd¦«dS#1swxYwYdS)NÚinetÚallcó8•—‰j ‰¦«Sr$)r@Ú connections)Úkindr(s€€r-raz9TestProcessObjectLeaks.test_connections..sø€ ¤×!6Ò!6°tÑ!<Ô!<€r2)rrr?)r(rÑs`@r-Útest_connectionsz'TestProcessObjectLeaks.test_connectionsøs£øø€õÑ Ô ð >ð >Ý"Ð-�6�6¨ˆDØ �LŠLÐ<Ð<Ð<Ð<Ð<Ñ =Ô =Ð =ð >ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >s‘%AÁAÁ AcóD—| |jj¦«dSr$)r?r@ÚenvironrBs r-Ú test_environz#TestProcessObjectLeaks.test_environrHr2có2—| d„¦«dS)NcóX—t tj¦«¦«Sr$)rpÚ proc_inforrrsr3r2r-raz7TestProcessObjectLeaks.test_proc_info.. s€�TŸ^š^­B¬I©K¬KÑ8Ô8€r2rÅrBs r-Útest_proc_infoz%TestProcessObjectLeaks.test_proc_infos€à � Š Ð8Ð8Ñ9Ô9Ð9Ð9Ð9r2N)9Ú__name__Ú __module__Ú __qualname__Ú__doc__rbr@r=r4rCrGrKrOÚunittestÚskipIfrrRrVrYr]rcrrgrvrryr~r�rrr†r rŠr�r‘r•r˜rr›ržr¡r¤r©r¬r r¯r·r¼rr¿rrrÆrËrÒrrÕrÙr3r2r-r6r6Ws‘€€€€€Ø.Ð.à €Dð>ð>ð>ðÐÑÔð%ð%ñÔð%ðÐÑÔð(ð(ñÔð(ðÐÑÔð$ð$ñÔð$ðÐÑÔð%ð%ñÔð%ð€X„_˜�Y  Ñ-Ô-ØÐÑÔð%ð%ñÔñ.Ô-ð%ð€X„_˜�Y  Ñ-Ô-ØÐÑÔð%ð%ñÔñ.Ô-ð%ðÐÑÔð'ð'ñÔð'ð%ð%ð%ð7ð7ð7ð€X„_˜�^ _Ñ5Ô5ð'ð'ñ6Ô5ð'ð€X„_˜�^ _Ñ5Ô5ð-ð-ñ6Ô5ð-ð€X„_Ð-Ð-¨Ñ?Ô?ØÐÑÔð,ð,ñÔñ@Ô?ð,ð€X„_�UÐ0Ñ1Ô1ð)ð)ñ2Ô1ð)ð ÐÑÔð,ð,ñÔð,ðÐÑÔØÐ 7Ð+Ñ+Ô+ð,ð,ñ,Ô+ñÔð,ð€X„_˜�[ .Ñ1Ô1ð,ð,ñ2Ô1ð,ð€X„_˜�Y  Ñ-Ô-ØÐÑÔð(ð(ñÔñ.Ô-ð(ðÐÑÔð1ð1ñÔð1ðÐÑÔØÐ 7Ð+Ñ+Ô+ð(ð(ñ,Ô+ñÔð(ðÐÑÔð*ð*ñÔð*ðÐÑÔØ€X„_Ð)Ð)¨?Ñ;Ô;ð(ð(ñ<Ô;ñÔð(ðÐÑÔð,ð,ñÔð,ðÐÑÔð1ð1ñÔð1ð€X„_˜�Y  Ñ-Ô-ØÐÑÔð)ð)ñÔñ.Ô-ð)ð4ð4ð4ðÐÑÔð$ð$ñÔð$ð€X„_Ð)Ð)¨?Ñ;Ô;ð-ð-ñ<Ô;ð-ð€X„_Ð)Ð)¨?Ñ;Ô;ð>ð>ñ<Ô;ð>ð ÐÑÔð/ð/ñÔð/ð€X„_˜Ð(¨/Ñ:Ô:ØÐÑÔð,ð,ñÔñ;Ô:ð,ð€X„_˜�Y  Ñ-Ô-Ø€X„_˜�^ _Ñ5Ô5ðEðEñ6Ô5ñ.Ô-ðEð€X„_˜�Y  Ñ-Ô-Ø€X„_˜�^ _Ñ5Ô5ðPðPñ6Ô5ñ.Ô-ðPð ÐÑÔð€X„_�WÐ4Ñ5Ô5ð>ð>ñ6Ô5ñÔð>ð€X„_˜�_ oÑ6Ô6ð(ð(ñ7Ô6ð(ð€X„_˜�[ .Ñ1Ô1ð:ð:ñ2Ô1ð:ð:ð:r2r6c󂇗eZdZdZeˆfd„¦«Zeˆfd„¦«Zd„Zerd„Z d„Z d„Z d„Z d „Z d „ZˆxZSˆxZS) ÚTestTerminatedProcessLeakszñRepeat the tests above looking for leaks occurring when dealing with terminated processes raising NoSuchProcess exception. The C functions are still invoked but will follow different code paths. We'll check those code paths. có•—t¦« ¦«t¦«|_t j|jj¦«|_|j ¦«|j  ¦«dSr$) r Ú setUpClassrÚsubprlr|Úpidr@ÚkillÚwait©Úclsr%s €r-rãz%TestTerminatedProcessLeaks.setUpClasss]ø€å ‰Œ×ÒÑÔÐÝ!Ñ#Ô#ˆŒÝ”> #¤(¤,Ñ/Ô/ˆŒØ Œ� Š ‰ŒˆØ Œ� Š ‰Œˆˆˆr2cóp•—t¦« ¦«t|j¦«dSr$)r Ú tearDownClassrrärès €r-rëz(TestTerminatedProcessLeaks.tearDownClasss/ø€å ‰Œ×ÒÑÔÐÝ�#”(ÑÔÐÐÐr2cóH— |¦«dS#tj$rYdSwxYwr$)rlÚ NoSuchProcess)r(r,s r-ÚcallzTestTerminatedProcessLeaks.call!s;€ð Ø ˆC‰EŒEˆEˆEˆEøÝÔ#ð ð ð Ø ˆDˆDð øøøs ‚ Ž! !cóD—| |jj¦«dSr$)r?r@rærBs r-Ú test_killz$TestTerminatedProcessLeaks.test_kill)ó€Ø �LŠL˜œœÑ (Ô (Ð (Ð (Ð (r2cóD—| |jj¦«dSr$)r?r@rrBs r-Útest_terminatez)TestTerminatedProcessLeaks.test_terminate,s€Ø �LŠL˜œÔ,Ñ -Ô -Ð -Ð -Ð -r2cóD—| |jj¦«dSr$)r?r@ÚsuspendrBs r-Ú test_suspendz'TestTerminatedProcessLeaks.test_suspend/s€Ø �LŠL˜œÔ*Ñ +Ô +Ð +Ð +Ð +r2cóD—| |jj¦«dSr$)r?r@r§rBs r-r©z&TestTerminatedProcessLeaks.test_resume2s€Ø �LŠL˜œÔ)Ñ *Ô *Ð *Ð *Ð *r2cóD—| |jj¦«dSr$)r?r@rçrBs r-Ú test_waitz$TestTerminatedProcessLeaks.test_wait5rñr2có<‡—ˆfd„}‰ |¦«dS)Ncóp•— t ‰jj¦«S#t$rYdSwxYwr$)rprØr@rår rBs€r-rîz7TestTerminatedProcessLeaks.test_proc_info..call:s@ø€ðÝŸ>š>¨$¬)¬-Ñ8Ô8Ð8øÝ)ðððØ�D�Dðøøøs ƒ#'§ 5´5rÅ)r(rîs` r-rÙz)TestTerminatedProcessLeaks.test_proc_info8s6ø€ð ð ð ð ð ð �LŠL˜Ñ Ô Ð Ð Ð r2)rÚrÛrÜrÝÚ classmethodrãrërîr rðrórör©rùrÙÚ __classcell__)r%s@r-rárá súø€€€€€ððð ððððñ„[ððððððñ„[ððððð ðð )ð )ð )ð .ð .ð .ð ,ð ,ð ,ð +ð +ð +ð )ð )ð )ð ð ð ð ð ð ð ð#ðððr2rár‡có—eZdZd„Zd„ZdS)ÚTestProcessDualImplementationcó2—| d„¦«dS)Ncó\—t tj¦«d¬¦«S)NT©Úuse_peb©rpÚ proc_cmdlinerrrsr3r2r-razETestProcessDualImplementation.test_cmdline_peb_true..Gs€�T×.Ò.­r¬y©{¬{ÀDÐ.ÑIÔI€r2rÅrBs r-Útest_cmdline_peb_truez3TestProcessDualImplementation.test_cmdline_peb_trueFs€Ø � Š ÐIÐIÑJÔJÐJÐJÐJr2có2—| d„¦«dS)Ncó\—t tj¦«d¬¦«S)NFrrr3r2r-razFTestProcessDualImplementation.test_cmdline_peb_false..Js€�T×.Ò.­r¬y©{¬{ÀEÐ.ÑJÔJ€r2rÅrBs r-Útest_cmdline_peb_falsez4TestProcessDualImplementation.test_cmdline_peb_falseIs€Ø � Š ÐJÐJÑKÔKÐKÐKÐKr2N)rÚrÛrÜrr r3r2r-rÿrÿCs:€€€€€ðKðKðKðLðLðLðLðLr2rÿcóè—eZdZdZd„Ze¦«d„¦«Ze¦«d„¦«Ze¦«d„¦«Ze¦«d„¦«Z e¦«d„¦«Z e¦«e j e oej¦«dkd ¦«e j e d ¦«d „¦«¦«¦«Ze j e d ¦«d „¦«Zd„Ze j ed¦«d„¦«Zd„Zd„Zd„Ze j eoej d¦« d¦«e¦«d„¦«¦«Ze¦«d„¦«Ze¦«e j e d ¦«d„¦«¦«Z!e¦«e j e oej"¦«dkd¦«d„¦«¦«Z#d„Z$d„Z%e¦«e j e& d ¦«d„¦«¦«Z'e¦«e j e( d ¦«d„¦«¦«Z)e¦«e j e* d ¦«d „¦«¦«Z+e¦«d!„¦«Z,d"„Z-d#„Z.erd$„Z/d%„Z0d&„Z1d'„Z2d(„Z3d)Sd)S)*ÚTestModuleFunctionsLeaksz&Test leaks of psutil module functions.cóX—t¦«}| ||j¦«dSr$)rr8rÎr;s r-r=z&TestModuleFunctionsLeaks.test_coverageUs+€Ý Ñ Ô ˆØ ×Ò˜t R¤VÑ,Ô,Ð,Ð,Ð,r2có2—| d„¦«dS)Ncó,—tjd¬¦«S)NT©Úlogical©rlÚ cpu_countr3r2r-raz9TestModuleFunctionsLeaks.test_cpu_count..]s€�VÔ-°dÐ;Ñ;Ô;€r2rÅrBs r-Útest_cpu_countz'TestModuleFunctionsLeaks.test_cpu_count[s€à � Š Ð;Ð;Ñ<Ô<Ð<Ð<Ð.as€�VÔ-°eÐ<Ñ<Ô<€r2rÅrBs r-Útest_cpu_count_coresz-TestModuleFunctionsLeaks.test_cpu_count_cores_s€à � Š Ð<Ð<Ñ=Ô=Ð=Ð=Ð=r2cóD—| tj¦«dSr$)r?rlr—rBs r-r˜z'TestModuleFunctionsLeaks.test_cpu_timescó€à � Š •VÔ%Ñ&Ô&Ð&Ð&Ð&r2có2—| d„¦«dS)Ncó,—tjd¬¦«S)NT)Úpercpu)rlr—r3r2r-raz=TestModuleFunctionsLeaks.test_per_cpu_times..is€�VÔ-°TÐ:Ñ:Ô:€r2rÅrBs r-Útest_per_cpu_timesz+TestModuleFunctionsLeaks.test_per_cpu_timesgs€à � Š Ð:Ð:Ñ;Ô;Ð;Ð;Ð;r2cóD—| tj¦«dSr$)r?rlÚ cpu_statsrBs r-Útest_cpu_statsz'TestModuleFunctionsLeaks.test_cpu_statskrr2Úarm64zskipped due to #1892rdcóD—| tj¦«dSr$)r?rlÚcpu_freqrBs r-Ú test_cpu_freqz&TestModuleFunctionsLeaks.test_cpu_freqos€ð � Š •V”_Ñ%Ô%Ð%Ð%Ð%r2r‡cój—tj¦«| tj¦«dSr$)rlÚ getloadavgr?rBs r-Útest_getloadavgz(TestModuleFunctionsLeaks.test_getloadavgws,€åÔÑÔÐØ � Š •VÔ&Ñ'Ô'Ð'Ð'Ð'r2cóD—| tj¦«dSr$)r?rlÚvirtual_memoryrBs r-Útest_virtual_memoryz,TestModuleFunctionsLeaks.test_virtual_memory~s€Ø � Š •VÔ*Ñ+Ô+Ð+Ð+Ð+r2z&worthless on SUNOS (uses a subprocess)cóD—| tj¦«dSr$)r?rlÚ swap_memoryrBs r-Útest_swap_memoryz)TestModuleFunctionsLeaks.test_swap_memory‚s€à � Š •VÔ'Ñ(Ô(Ð(Ð(Ð(r2có`—trtn|j}| d„|¬¦«dS)NcóL—tjtj¦«¦«Sr$)rlÚ pid_existsrrrsr3r2r-raz:TestModuleFunctionsLeaks.test_pid_exists..ˆs€�VÔ.­r¬y©{¬{Ñ;Ô;€r2r¦©rr'r&r?r¨s r-Útest_pid_existsz(TestModuleFunctionsLeaks.test_pid_exists†s2€Ý"Ð2• � ¨¬ ˆØ � Š Ð;Ð;À5ˆ ÑIÔIÐIÐIÐIr2có`—trtn|j}| d„|¬¦«dS)Ncó*—tjd¦«S)Nú.)rlÚ disk_usager3r2r-raz:TestModuleFunctionsLeaks.test_disk_usage..Žs€�VÔ.¨sÑ3Ô3€r2r¦r0r¨s r-Útest_disk_usagez(TestModuleFunctionsLeaks.test_disk_usageŒs2€Ý"Ð2• � ¨¬ ˆØ � Š Ð3Ð3¸5ˆ ÑAÔAÐAÐAÐAr2cóD—| tj¦«dSr$)r?rlÚdisk_partitionsrBs r-Útest_disk_partitionsz-TestModuleFunctionsLeaks.test_disk_partitions�s€Ø � Š •VÔ+Ñ,Ô,Ð,Ð,Ð,r2z/proc/diskstatsz3/proc/diskstats not available on this Linux versioncó2—| d„¦«dS)Ncó,—tjd¬¦«S©NF)Únowrap)rlÚdisk_io_countersr3r2r-raz@TestModuleFunctionsLeaks.test_disk_io_counters..—s€�VÔ4¸EÐBÑBÔB€r2rÅrBs r-Útest_disk_io_countersz.TestModuleFunctionsLeaks.test_disk_io_counters“s €ð � Š ÐBÐBÑCÔCÐCÐCÐCr2cóD—| tj¦«dSr$)r?rlÚpidsrBs r-Ú test_pidsz"TestModuleFunctionsLeaks.test_pids›s€à � Š •V”[Ñ!Ô!Ð!Ð!Ð!r2có2—| d„¦«dS)Ncó,—tjd¬¦«Sr<)rlÚnet_io_countersr3r2r-raz?TestModuleFunctionsLeaks.test_net_io_counters..¤s€�VÔ3¸5ÐAÑAÔA€r2rÅrBs r-Útest_net_io_countersz-TestModuleFunctionsLeaks.test_net_io_counters¡s €ð � Š ÐAÐAÑBÔBÐBÐBÐBr2rzneed root accesscóª—tjd¬¦«t¦«5| d„¦«ddd¦«dS#1swxYwYdS)NrΩrÑcó,—tjd¬¦«S)NrÎrH)rlÚnet_connectionsr3r2r-raz?TestModuleFunctionsLeaks.test_net_connections..¬s€¥Ô!7¸UÐ!CÑ!CÔ!C€r2)rlrJrr?rBs r-Útest_net_connectionsz-TestModuleFunctionsLeaks.test_net_connections¦s²€õ Ô EÐ*Ñ*Ô*Ð*Ý Ñ Ô ð Eð EØ �LŠLÐCÐCÑ DÔ DÐ Dð Eð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eð Eð Es¤AÁA ÁA cóh—trdn|j}| tj|¬¦«dS)Ni@)Ú tolerance)r rMr?rlÚ net_if_addrs)r(rMs r-Útest_net_if_addrsz*TestModuleFunctionsLeaks.test_net_if_addrs®s1€å!(Ð<�I�I¨d¬nˆ Ø � Š •VÔ(°Iˆ Ñ>Ô>Ð>Ð>Ð>r2cóD—| tj¦«dSr$)r?rlÚ net_if_statsrBs r-Útest_net_if_statsz*TestModuleFunctionsLeaks.test_net_if_stats³s€Ø � Š •VÔ(Ñ)Ô)Ð)Ð)Ð)r2cóD—| tj¦«dSr$)r?rlÚsensors_batteryrBs r-Útest_sensors_batteryz-TestModuleFunctionsLeaks.test_sensors_battery¸s€ð � Š •VÔ+Ñ,Ô,Ð,Ð,Ð,r2cóD—| tj¦«dSr$)r?rlÚsensors_temperaturesrBs r-Útest_sensors_temperaturesz2TestModuleFunctionsLeaks.test_sensors_temperatures½s€ð � Š •VÔ0Ñ1Ô1Ð1Ð1Ð1r2cóD—| tj¦«dSr$)r?rlÚ sensors_fansrBs r-Útest_sensors_fansz*TestModuleFunctionsLeaks.test_sensors_fansÂs€ð � Š •VÔ(Ñ)Ô)Ð)Ð)Ð)r2cóD—| tj¦«dSr$)r?rlÚ boot_timerBs r-Útest_boot_timez'TestModuleFunctionsLeaks.test_boot_timeÉrr2cóD—| tj¦«dSr$)r?rlÚusersrBs r-Ú test_usersz#TestModuleFunctionsLeaks.test_usersÍs€Ø � Š •V”\Ñ"Ô"Ð"Ð"Ð"r2có2—| d„¦«dS)Ncó*—tjd¦«S)NF)rlÚ _set_debugr3r2r-raz9TestModuleFunctionsLeaks.test_set_debug..Ñs€�VÔ.¨uÑ5Ô5€r2rÅrBs r-Útest_set_debugz'TestModuleFunctionsLeaks.test_set_debugÐs€Ø � Š Ð5Ð5Ñ6Ô6Ð6Ð6Ð6r2cóD—| tj¦«dSr$)r?rpÚwinservice_enumeraterBs r-Útest_win_service_iterz.TestModuleFunctionsLeaks.test_win_service_iter×s€Ø �LŠL�Ô2Ñ 3Ô 3Ð 3Ð 3Ð 3r2có—dSr$r3rBs r-Útest_win_service_getz-TestModuleFunctionsLeaks.test_win_service_getÚs€Ø ˆDr2c󜇗ttj¦«¦« ¦«Š| ˆfd„¦«dS)Ncó8•—t ‰¦«Sr$)rpÚwinservice_query_config©rAs€r-razFTestModuleFunctionsLeaks.test_win_service_get_config..ßóø€¥×!=Ò!=¸dÑ!CÔ!C€r2©ÚnextrlÚwin_service_iterrAr?©r(rAs @r-Útest_win_service_get_configz4TestModuleFunctionsLeaks.test_win_service_get_configÝóGø€Ý�Ô/Ñ1Ô1Ñ2Ô2×7Ò7Ñ9Ô9ˆDØ �LŠLÐCÐCÐCÐCÑ DÔ DÐ DÐ DÐ Dr2c󜇗ttj¦«¦« ¦«Š| ˆfd„¦«dS)Ncó8•—t ‰¦«Sr$)rpÚwinservice_query_statusrns€r-razFTestModuleFunctionsLeaks.test_win_service_get_status..ãror2rprss @r-Útest_win_service_get_statusz4TestModuleFunctionsLeaks.test_win_service_get_statusárur2c󜇗ttj¦«¦« ¦«Š| ˆfd„¦«dS)Ncó8•—t ‰¦«Sr$)rpÚwinservice_query_descrrns€r-razKTestModuleFunctionsLeaks.test_win_service_get_description..çsø€¥×!<Ò!<¸TÑ!BÔ!B€r2rprss @r-Ú test_win_service_get_descriptionz9TestModuleFunctionsLeaks.test_win_service_get_descriptionåsGø€Ý�Ô/Ñ1Ô1Ñ2Ô2×7Ò7Ñ9Ô9ˆDØ �LŠLÐBÐBÐBÐBÑ CÔ CÐ CÐ CÐ Cr2N)4rÚrÛrÜrÝr=r4rrr˜rrrÞrßrÚplatformÚmachiner r#r r&r)rr,r1r6r9rrrÚpathÚexistsr?rBrrFÚgetuidrKrOrRrrUrrXrr[r^rarerhrjrtryr}r3r2r-r r Rsª€€€€€Ø0Ð0ð-ð-ð-ð ÐÑÔð=ð=ñÔð=ðÐÑÔð>ð>ñÔð>ðÐÑÔð'ð'ñÔð'ðÐÑÔð<ð<ñÔð<ðÐÑÔð'ð'ñÔð'ðÐÑÔà€X„_�UÐ<Ð/˜xÔ/Ñ1Ô1°WÒ<Ø+ñ-ô-à€X„_˜Ð% Ñ7Ô7ð&ð&ñ8Ô7ñ-ô-ñÔð &ð€X„_˜�[ .Ñ1Ô1ð(ð(ñ2Ô1ð(ð ,ð,ð,ð€X„_�UÐDÑEÔEð)ð)ñFÔEð)ðJðJðJð BðBðBð-ð-ð-ð€X„_�UÐD 2¤7§>¢>Ð2CÑ#DÔ#DÐDØJñLôLàÐÑÔðDðDñÔñLôLðDð ÐÑÔð"ð"ñÔð"ð ÐÑÔØ€X„_Ð,Ð,¨oÑ>Ô>ðCðCñ?Ô>ñÔðCðÐÑÔØ€X„_�UÐ/˜y˜rœy™{œ{¨aÒ/Ð1CÑDÔDðEðEñEÔDñÔðEð ?ð?ð?ð *ð*ð*ð ÐÑÔØ€X„_Ð,Ð,¨oÑ>Ô>ð-ð-ñ?Ô>ñÔð-ðÐÑÔØ€X„_Ð1Ð1°?ÑCÔCð2ð2ñDÔCñÔð2ðÐÑÔØ€X„_Ð)Ð)¨?Ñ;Ô;ð*ð*ñ<Ô;ñÔð*ð ÐÑÔð'ð'ñÔð'ð#ð#ð#ð7ð7ð7ððDð 4ð 4ð 4ð ð ð ð Eð Eð Eð Eð Eð Eð Dð Dð Dð Dð Dð%DðDr2r Ú__main__)Ú run_from_name)6rÝÚ __future__rr/rrr~rÞrlÚpsutil._commonrrrrrr Úpsutil._compatr r Ú psutil.testsr r rrrrrrrrrrrrrrrrrrÚ _psplatformrpr|rbr'r4r6rárßrÿr rÚÚpsutil.tests.runnerr„Ú__file__r3r2r-úrŒs­ðð ð ð&Ð%Ð%Ð%Ð%Ð%àÐÐÐØ € € € Ø€€€Ø€€€à € € € ØÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØ-Ð-Ð-Ð-Ð-Ð-Ø Ð Ð Ð Ð Ð Ø)Ð)Ð)Ð)Ð)Ð)Ø%Ð%Ð%Ð%Ð%Ð%Ø$Ð$Ð$Ð$Ð$Ð$Ø#Ð#Ð#Ð#Ð#Ð#Ø(Ð(Ð(Ð(Ð(Ð(Ø,Ð,Ð,Ð,Ð,Ð,Ø)Ð)Ð)Ð)Ð)Ð)Ø-Ð-Ð-Ð-Ð-Ð-Ø#Ð#Ð#Ð#Ð#Ð#Ø,Ð,Ð,Ð,Ð,Ð,Ø)Ð)Ð)Ð)Ð)Ð)Ø1Ð1Ð1Ð1Ð1Ð1Ø'Ð'Ð'Ð'Ð'Ð'Ø'Ð'Ð'Ð'Ð'Ð'Ø#Ð#Ð#Ð#Ð#Ð#Ø*Ð*Ð*Ð*Ð*Ð*Ø.Ð.Ð.Ð.Ð.Ð.Ø'Ð'Ð'Ð'Ð'Ð'Ø)Ð)Ð)Ð)Ð)Ð)Ø"Ð"Ð"Ð"Ð"Ð"ðÔÔ€Ø ˆ6Œ>Ñ Ô €Ø € ðððð2s:ðs:ðs:ðs:ðs:˜^ñs:ôs:ðs:ðl3ð3ð3ð3ð3Ð!7ñ3ô3ð3ðl€„�W�˜nÑ-Ô-ðLðLðLðLðL NñLôLñ.Ô-ðLðUDðUDðUDðUDðUD˜~ñUDôUDðUDðp ˆzÒÐØ1Ð1Ð1Ð1Ð1Ð1Ø€M�(ÑÔÐÐÐðÐr2