bg9dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddl m Z ddl m Z ddlmZddlmZddlmZdd l mZdd l mZdd l mZdd l mZdd l mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl mZddl m Z ddl m!Z!ddl m"Z"ddl m#Z#ddl m$Z$ddl m%Z%ddl m&Z&ddl m'Z'ddl m(Z(dd l m)Z)dd!l m*Z*dd"l m+Z+dd#l m,Z,dd$l m-Z-Gd%d&eZ.Gd'd(eZ/Gd)d*eZ0Gd+d,eZ1Gd-d.eZ2e'Gd/d0eZ3Gd1d2eZ4Gd3d4eZ5e6d5krdd6l7m8Z8e8e9dSdS)7z3 Tests for testing utils (psutil.tests namespace). N)FREEBSD)NETBSD)POSIX) open_binary) open_text) supports_ipv6) CI_TESTING)COVERAGE)HAS_CONNECTIONS_UNIX) PYTHON_EXE)PYTHON_EXE_ENV)PsutilTestCase)TestMemoryLeak) bind_socket)bind_unix_socket) call_until)chdir)create_sockets) get_free_port) is_namedtuple)mock)process_namespace) reap_children)retry)retry_on_failure) safe_mkdir) safe_rmpath) serialrun)system_namespace)tcp_socketpair) terminate)unix_socketpair) wait_for_file) wait_for_pidc:eZdZejddZejddZejddZejddZejddZ ejddZ dS) TestRetryDecoratorz time.sleepctdddfd}ttd||d||jddS)NretriesintervallogfuncBrddz dSNr)rpopqueuesn/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/psutil/tests/test_testutils.pyfooz2TestRetryDecorator.test_retry_success..fooF2  A 1)rlistrange assertEqual call_countselfsleepr5r3s @r4test_retry_successz%TestRetryDecorator.test_retry_successBs q1T 2 2 2     3 2  U1XX """ )1-----r7ctdddfd}ttd|t|||jddS)Nr(r)r*cBrddz dSr/r0r2sr4r5z2TestRetryDecorator.test_retry_failure..fooTr6r7)rr9r: assertRaisesZeroDivisionErrorr;r<r=s @r4test_retry_failurez%TestRetryDecorator.test_retry_failureQs q1T 2 2 2     3 2  U1XX +S111 )1-----r7cttdd}|t|||jddS)Nr)) exceptionr,ctN) TypeErrorr7r4r5z2TestRetryDecorator.test_exception_arg..fooasOr7r)r ValueErrorrDrKr;r<r>r?r5s r4test_exception_argz%TestRetryDecorator.test_exception_arg_s` a 0 0 0   1 0  )S))) )1-----r7ctdddd}|t|||jddS)Nr(r*cddz dSr/rLrLr7r4r5z4TestRetryDecorator.test_no_interval_arg..fool EEEEr7rrrDrEr;r<rNs r4test_no_interval_argz'TestRetryDecorator.test_no_interval_arghse q4 5 5 5   6 5  +S111 )1-----r7ctdddd}|t|||jddS)Nr(r)r*cddz dSr/rLrLr7r4r5z0TestRetryDecorator.test_retries_arg..foovrRr7rSrNs r4test_retries_argz#TestRetryDecorator.test_retries_argsse q1T 2 2 2   3 2  +S111 )1-----r7cL|ttdddS)Nr(r))r+timeout)rDrMr)r>r?s r4test_retries_and_timeout_argsz0TestRetryDecorator.test_retries_and_timeout_args}s% *eQBBBBBr7N) __name__ __module__ __qualname__rpatchr@rFrOrTrWrZrLr7r4r&r&@sTZ  . . .TZ  . . .TZ ...TZ ...TZ ...TZ CCCCCr7r&c2eZdZdZdZdZdZdZdZdS)TestSyncTestUtilscRttjtt jdz}t jdtdg5| tj t|ddddS#1swxYwYdS)Nipsutil.tests.retry.__iter__r return_value) r$osgetpidmaxpsutilpidsrr^iterrD NoSuchProcess)r>nopids r4test_wait_for_pidz#TestSyncTestUtils.test_wait_for_pidsRY[[!!!FKMM""U* Z5D!II N N N I I   f2L% H H H I I I I I I I I I I I I I I I I I Is('BB #B c|}t|d5}|ddddn #1swxYwYt|tj|rJdS)Nwr5 get_testfnopenwriter#repathexistsr>testfnfs r4test_wait_for_filez$TestSyncTestUtils.test_wait_for_files"" &#   ! GGENNN               f7>>&)))))))AA A c|}t|d5 dddn #1swxYwYt|dtj|rJdS)NroT)empty)rqrrr#rertrur>rws r4test_wait_for_file_emptyz*TestSyncTestUtils.test_wait_for_file_emptys"" &#                    fD))))7>>&)))))))s 377c|}tjdtdg5|t t |ddddS#1swxYwYdS)Nrbrrc)rqrr^rjrDIOErrorr#r}s r4test_wait_for_file_no_filez,TestSyncTestUtils.test_wait_for_file_no_files"" Z5D!II N N N > >   g}f = = = > > > > > > > > > > > > > > > > > >s"A((A,/A,c |}t|d5}|ddddn #1swxYwYt|dtj|sJdS)Nror5F)deleterprvs r4test_wait_for_file_no_deletez.TestSyncTestUtils.test_wait_for_file_no_deletes"" &#   ! GGENNN               fU++++w~~f%%%%%%%rzcTtdd}||ddS)NcdS)Nr)rLrLr7r4z3TestSyncTestUtils.test_call_until..sr7zret == 1r))rr;)r>rets r4test_call_untilz!TestSyncTestUtils.test_call_untils/J// a     r7N) r[r\r]rmryr~rrrrLr7r4r`r`sqIII ******>>> &&&!!!!!r7r`c,eZdZdZdZdZdZdZdS)TestFSTestUtilsctt5}||jdddddS#1swxYwYdS)Nrt)r__file__r;moder>rxs r4test_open_textzTestFSTestUtils.test_open_texts x  +A   QVT * * * + + + + + + + + + + + + + + + + + +>AActt5}||jdddddS#1swxYwYdS)Nrb)rrr;rrs r4test_open_binaryz TestFSTestUtils.test_open_binarys  " " +a   QVT * * * + + + + + + + + + + + + + + + + + +rc|}t|tj|sJt|tj|sJdSrJ)rqrrertisdirr}s r4test_safe_mkdirzTestFSTestUtils.test_safe_mkdirsg""6w}}V$$$$$6w}}V$$$$$$$r7c|}t|dt|tj|rJt|t j|t|tj|rJtj dttj d5}| t5t|dddn #1swxYwY|jsJ ddddS#1swxYwYdS)Nrozpsutil.tests.os.stat) side_effect)rqrrcloserrertrumkdirrr^OSErrorerrnoEINVALrDcalled)r>rwms r4test_safe_rmpathz TestFSTestUtils.test_safe_rmpaths"" VS!!!F7>>&)))))F F7>>&))))) Z.$+EL"$=$=??? BC""7++ $ $F### $ $ $ $ $ $ $ $ $ $ $ $ $ $ $8OO8O                   s6(ED ED# #E&D# ' EEEc|}tj}tj|t |5|tjtj||dddn #1swxYwY|tj|dSrJ)rqregetcwdrrr;rtjoin)r>rwbases r4 test_chdirzTestFSTestUtils.test_chdirs""y{{  6]] F F   RY[["',,tV*D*D E E E F F F F F F F F F F F F F F F d+++++s ABB!$B!N)r[r\r]rrrrrrLr7r4rrs_++++++%%%&,,,,,r7rcVeZdZdZdZeje ddZdZ dS)TestProcessUtilsc |}tj|j}|sJt |rJtjjrJtjjrJdSrJ) spawn_testprocrhProcesspid is_runningrtests _pids_started_subprocesses_started)r>subpps r4test_reap_childrenz#TestProcessUtils.test_reap_childrens|""$$ N48 $ $||~~~<<>>!!!<----<555555r7c|\}}||j|j|sJ|sJt j}|||gt jd}|t|d| ||| |||| tj || |jt||rJ|sJt||rJdS)NT) recursive)spawn_children_pairassertNotEqualrrrhrchildrenr;lenassertInppidrerfr!)r>child grandchildrs r4test_spawn_children_pairz)TestProcessUtils.test_spawn_children_pairs 4466z EIz~666!!!!!$$&&&&&>##,,.. E7+++>##,,t,<< X*** eX&&& j(+++ ry{{333 **EI666%##%%%%%$$&&&&&*((*******r7 POSIX onlyc|\}}||tjdSrJ) spawn_zombier;statusrh STATUS_ZOMBIE)r>parentzombies r4test_spawn_zombiez"TestProcessUtils.test_spawn_zombies>**,, &*>?????r7c|}t|||t|tj|j}t|||t|t ddg}tj|tj tj t}t|||t||j}t|||t|tra| \}}t|t|||||dSdS)Nz-czimport time; time.sleep(60);)stdoutstderrenv) rr!assertProcessGonerhrrr Popen subprocessPIPEr rr)r>rcmdrrrs r4test_terminatezTestProcessUtils.test_terminates    ! !!  q!!!! N4..004 5 5!  q!!!! 4!?@ LZ_Z_+ - - -!  q!!!! !!##'# q!!!#  +!..00NFF f    f     " "6 * * *  " "6 * * * * *  + +r7N) r[r\r]rrunittestskipIfrrrrLr7r4rrsp666+++*X_Y --@@.-@+++++r7rceZdZdZeje ddZdZeje deje pe ddZ dZ dS) TestNetUtilsct}tjtd|f5}||d|ddddS#1swxYwYdS)Nraddrr))r contextlibclosingrr; getsockname)r>portss r4rzTestNetUtils.bind_sockets   "d < < < = = 7   Q]]__Q/ 6 6 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s/A//A36A3rc(|}t|}tj|5||jt j||jt j || |tj |sJtjtj|jsJ dddn #1swxYwY|}t|t j}tj|5||jt jddddS#1swxYwYdS)N)type)rqrrrr;familysocketAF_UNIXr SOCK_STREAMrrertrustatS_ISSOCKst_mode SOCK_DGRAM)r>namesocks r4test_bind_unix_socketz"TestNetUtils.test_bind_unix_socket"s  %%   % % 8 8   T[&. 9 9 9   TY(: ; ; ;   T--// 6 6 67>>$'' ' ''=!677 7 77 7  8 8 8 8 8 8 8 8 8 8 8 8 8 8 8  6+<===   % % ; ;   TY(9 : : : ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;s$CDD  D &FF F cdtf}ttj|\}}t j|5t j|5||||||| ||dddn #1swxYwYddddS#1swxYwYdS)Nz 127.0.0.1r) rr rAF_INETrrr;r getpeernamer)r>rserverclients r4tcp_tcp_socketpairzTestNetUtils.tcp_tcp_socketpair2s]__-'TBBB   ' ' @ @#F++ @ @  !3!3!5!5t<<<  !3!3!5!5t<<<##F$6$6$8$8$???  @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @s7C5A9C C5C! !C5$C! %C55C9<C9z*/var/run/log UNIX socket opened by defaultc|tj}|}|drJ|}t |\}} t j|sJtj t j |j sJ| ||z d| t|dd| ||| ||||dS#||wxYw)Nunix)kindr)rhrnum_fds connectionsrqr"rertrurrrr;rrrr)r>rrrrrs r4test_unix_socketpairz!TestNetUtils.test_unix_socketpair=sk N  ))++==f=-----  (.. 7>>$'' ' ''=!677 7 77   QYY[[72A 6 6 6   SF!;!;<socksfamstypesrs r4test_create_socketsz TestNetUtils.test_create_socketsQs    A*3//D+C00E L LQX!#all6#4fnEEFFF!KFFFF  # #D$8! < < < B''V_(=qAAA A- A''V^(.fungs JJJ!OJJJJJr7r r )times warmup_times)executer;)r>r r s @r4 test_timeszTestMemLeakClass.test_timeses]     aj S 444 UR(((((r7cn|t|jdd|t|jdd|t|jdd|t|jdd |t|jd d dS) NcdSNrrLrLr7r4rz1TestMemLeakClass.test_param_err..nAr7rrcdSrrLrLr7r4rz1TestMemLeakClass.test_param_err..orr7cdSrrLrLr7r4rz1TestMemLeakClass.test_param_err..prr7)rcdSrrLrLr7r4rz1TestMemLeakClass.test_param_err..qrr7) tolerancecdSrrLrLr7r4rz1TestMemLeakClass.test_param_err..rrr7)r+)rDrMrr>s r4test_param_errzTestMemLeakClass.test_param_errms *dlIIQGGG *dlIIRHHH *dlIIBOOO *dlIILLL *dlIIrJJJJJr7z skipped on CIzskipped during test coverageclg}|fd} |td|j|d~dS#~wxYw)Nc6|ddzdSNxxxxxxxxxxxxxxxxxxxxxxxxiappendlss r4r z+TestMemLeakClass.test_leak_mem..funzs IIho & & & & &r7z extra-mem2r)assertRaisesRegexAssertionErrorr)r>r'r s r4 test_leak_memzTestMemLeakClass.test_leak_memtsf ' ' ' '   " ">;#'<B # @ @ @FFFFs$03czfd}gtrdnd}td|zj|dS)Nctt}|j|dSrJ)rrr addCleanuprr%)rxboxr>s r4r z1TestMemLeakClass.test_unclosed_files..funs5XA OOAG $ $ $ JJqMMMMMr7fdhandlez unclosed )rr)r*r)r>r rr/s` @r4test_unclosed_filesz$TestMemLeakClass.test_unclosed_filessi       *tt( ~{T/A#|S 2 2 2 2 2r7cfd}gd}|||dd|t|dzdS)Nc8ddzdSr"r$r&sr4r z,TestMemLeakClass.test_tolerance..funs IIho & & & & &r7dri )rrrr))rr;r)r>r rr's @r4test_tolerancezTestMemLeakClass.test_tolerancesp ' ' ' ' '  SA0  2 2 2 R%!),,,,,r7c~d}|t||t5|t|dddn #1swxYwYd}|t5|t|ddddS#1swxYwYdS)Ncddz dSr/rLrLr7r4fun_1z2TestMemLeakClass.test_execute_w_exc..fun_1s EEEEr7cdSrJrLrLr7r4fun_2z2TestMemLeakClass.test_execute_w_exc..fun_2s Dr7) execute_w_excrErDrr*)r>r9r;s r4test_execute_w_excz#TestMemLeakClass.test_execute_w_excsF    ,e444   0 1 1 / /   w . . . / / / / / / / / / / / / / / /      ~ . . 9 9   0% 8 8 8 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9s#A!!A%(A% B22B69B6N)r[r\r]rrrrrr r r+r2r6r=rLr7r4rrbs)))KKKX_Z11X_X=>>  ?>21  2 2 2--- 9 9 9 9 9r7rceZdZdZdZdS)TestTestingUtilsc2tj}t|}|d||jDdd}|||dS)Nc*g|]}|ddk|S)r)rrL.0xs r4 z;TestTestingUtils.test_process_namespace..s!@@@Q1qr7r)rhrrtestrjgettersr;r)r>rnsr s r4test_process_namespacez'TestTestingUtils.test_process_namespaces~ N   q ! !  @@"''"*--@@@CAF )))))r7ct}d||jDdd}||t jdS)Nc*g|]}|ddk|S)r) net_if_addrsrLrBs r4rEz:TestTestingUtils.test_system_namespace..s&HHHQ11G1Gq1G1G1Gr7r)rrjrGr;rhrL)r>rHr s r4test_system_namespacez&TestTestingUtils.test_system_namespacesc   HH"''"*--HHHKAN  3 5 566666r7N)r[r\r]rIrMrLr7r4r?r?s2***77777r7r?ceZdZdZdS)TestOtherUtilscttjdddddsJttrJdS)Nr5za b cr)rr8)rr namedtupletuplers r4test_is_namedtuplez!TestOtherUtils.test_is_namedtuplesPC[3E7CCAq!LLMMMMM )))))))r7N)r[r\r]rSrLr7r4rOrOs#*****r7rO__main__) run_from_name):__doc__rrrrerrrrrh psutil.testsrrrpsutil._commonrrrr r r r r rrrrrrrrrrrrrrrrrrr r!r"r#r$r&r`rrrrr?rOr[psutil.tests.runnerrUrrLr7r4rZs  &&&&&&$$$$$$((((((######!!!!!!------######''''''''''''''''''$$$$$$))))))######''''''&&&&&&&&&&&&******&&&&&&))))))######$$$$$$""""""))))))''''''""""""((((((&&&&&&%%%%%%?C?C?C?C?C?C?C?CD$!$!$!$!$!$!$!$!N*,*,*,*,*,n*,*,*,ZB+B+B+B+B+~B+B+B+JDADADADADA>DADADAN ?9?9?9?9?9~?9?9 ?9D 7 7 7 7 7~ 7 7 7*****^*** z111111M(r7