
    i(                     <   S SK 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rS SK
JrJr  S SKJs  Jr  S SKJr  S SKJr  S SKJr  \ R,                  S	4S
 jr " S S\5      r " S S\5      r\ " S S\5      5       r\S:X  a  \R8                  " 5         gg)    NCompletedProcess)TemporaryDirectory)mock)TestCase
linux_only)	needs_gdb)collect_gdbinfo)_GDBTestWrapper<   c                    [         R                  " U [         R                  [         R                  US9n[        R                  " X#R
                  5      n UR                  5         UR                  5       u  pVUR                  S:w  a,  [        SUR                  < SUR                  5       < S35      eUR                  5       UR                  5       4UR                  5         $ ! UR                  5         f = f)N)stdoutstderrenvr   zprocess failed with code z: stderr follows

)
subprocessPopenPIPE	threadingTimerkillstartcommunicate
returncodeAssertionErrordecodecancel)cmdliner   timeoutpopentimeout_timerouterrs          O/var/www/html/trading/venv/lib/python3.13/site-packages/numba/tests/test_cli.pyrun_cmdr%      s    W$.OO$.OO!$&E
 OOGZZ8M	$$&q  !!3::<12 2 zz|SZZ\)s   A=C# #C5c                   6    \ rS rSrS rS rS r\S 5       rSr	g)TestCLI)   c                     [         R                  SS/nU R                  [        5       n[	        U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)N-mnumbazprocess failed with code 1)sys
executableassertRaisesr   r%   assertInstr	exception)selfr   raisess      r$   test_as_module_exit_code TestCLI.test_as_module_exit_code+   sT    >>41~.&G / 	2C8H8H4IJ /.s   A##
A1c                 j    [         R                  SSS/n[        U5      u  p#U R                  SU5        g )Nr*   r+   z-szSystem infor,   r-   r%   r/   r2   r   o_s       r$   test_sysinfo_from_module TestCLI.test_sysinfo_from_module2   s.    >>4$7wmQ'    c                 .   [        5        n[        R                  R                  US5      n[        R
                  SSSU/n[        U5        U R                  U S3S9   U R                  [        R                  R                  U5      5        S S S 5        U R                  SS9   [        US5       n[        R                  " U5      nS S S 5        S S S 5        [        [        R                  4[         [        R"                  4[$        [        R&                  [        R(                  [        R*                  [        R,                  [        R.                  [        R0                  [        R2                  [        R4                  [        R6                  [        R8                  [        R:                  4[<        [        R>                  [        R@                  [        RB                  [        RD                  [        RF                  [        RH                  [        RJ                  [        RL                  4[N        [        RP                  [        RR                  4[T        [        RV                  40nURY                  5        H;  u  pxU H0  n	U R                  U	S	9   U R[                  WU	   U5        S S S 5        M2     M=     S S S 5        g ! , (       d  f       GN8= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       M  = f! , (       d  f       g = f)
Nztest_json_sysinfo.jsonr*   r+   z
--sys-jsonz exists)msgz	json loadr)k).r   ospathjoinr,   r-   r%   subTest
assertTrueexistsopenjsonloadintnsi
_cpu_countfloat_runtimer0   _start
_start_utc_machine	_cpu_name_platform_name_os_name_os_version_python_comp_python_impl_python_version_llvm_versionbool_cu_dev_init_svml_state_svml_loaded_svml_operational_llvm_svml_patched_tbb_thread_openmp_thread_wkq_threadlist_errors	_warningsdict_numba_env_varsitemsassertIsInstance)
r2   drC   r   finfosafe_contentstkeysrA   s
             r$   test_json_sysinfo_from_module%TestCLI.test_json_sysinfo_from_module7   s#   !Q77<<#;<D~~tWlDIGGTF'"23t 45 4+.$_99Q<D % / NN LL JJNNLLMM&&LLOO$$$$''%% $$OO$$))**OO&&OO	 KKMM ''E%ML )..0A*--d1gq9 +*  1_ "! 43 %_ /.V +*c "!sm   AL/J>L$K"1KK"F?LK4	%L>
K	L
KK""
K1	,L4
L>L
Lc                     [         R                  SSS/n[        U5      u  p#U R                  SU5        U R                  SU5        g )Nr*   r+   -gzGDB infoz Numba printing extension supportr7   r8   s       r$   test_gdb_status_from_module#TestCLI.test_gdb_status_from_modulel   sA     >>4$7wj!$ 	8!<r=    N)
__name__
__module____qualname____firstlineno__r4   r;   rq   r	   ru   __static_attributes__rw   r=   r$   r'   r'   )   s'    K(
3:j = =r=   r'   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestGDBCLIInfow   c                   ^  / T l         S nT R                   R                  [        R                  R	                  [
        SU5      5        SnT R                   R                  [        R                  " US5      5        U 4S jnS nU" SU5        S nU" S	U5        S
 nU" SU5        S nU" SU5        T R                    H  nUR                  5         M     g )Nc                     g Nrw   r2   s    r$   <lambda>&TestGDBCLIInfo.setUp.<locals>.<lambda>   s    r=   __init__z3numba.misc.numba_gdbinfo._GDBTestWrapper.gdb_binaryPATH_TO_GDBc                    > TR                   R                  [        R                  R	                  [
        U U5      5        g r   )_patchesappendr   patchobjectr   )fnstrfuncr2   s     r$   _patch$TestGDBCLIInfo.setUp.<locals>._patch   s-    MM  !2!2?E37"9 :r=   c                     [        SS5      $ )NCOMMAND STRINGr   r   r   s    r$   mock_check_launch/TestGDBCLIInfo.setUp.<locals>.mock_check_launch       #$4a88r=   check_launchc                     [        SSSSS9$ )Nr   r   z(3, 2) r   r   r   r   s    r$   mock_check_python/TestGDBCLIInfo.setUp.<locals>.mock_check_python   s    #$4a+3+-/ /r=   check_pythonc                     [        SSSSS9$ )Nr   r   Truer   r   r   r   s    r$   mock_check_numpy.TestGDBCLIInfo.setUp.<locals>.mock_check_numpy       #$4a+-/ /r=   check_numpyc                     [        SSSSS9$ )Nr   r   1.15r   r   r   r   s    r$   mock_check_numpy_version6TestGDBCLIInfo.setUp.<locals>.mock_check_numpy_version   r   r=   check_numpy_version)r   r   r   r   r   r   r   )	r2   	mock_initbpathr   r   r   r   r   ps	   `        r$   setUpTestGDBCLIInfo.setUpy   s     %	TZZ..
/8: 	; FTZZ}=>	:	9 	~01	/
 	~01	/ 	}./	/ 	$&>? AGGI r=   c                 J    U R                    H  nUR                  5         M     g r   )r   stop)r2   r   s     r$   tearDownTestGDBCLIInfo.tearDown   s    AFFH r=   c                    [        5       nU R                  UR                  S5        [        R                  R                  [        R                  R                  UR                  5      5      nU R                  U5        U R                  UR                  S5        U R                  UR                  S5        U R                  SUR                  5        g )Nr   3.2r   Full)r
   assertEqual
binary_locrB   rC   rG   abspathextension_locrF   py_vernp_verr/   	supported)r2   	collectedextps      r$   
test_validTestGDBCLIInfo.test_valid   s    #%	--}=ww~~bggooi.E.EFG))51))62fi112r=   c                    S n[         R                  R                  [        SU5         [	        5       nU R                  SUR                  5        U R                  SUR                  5        S S S 5        g ! , (       d  f       g = f)Nc                     [        SS5      $ )NINVALID_BINARY   r   r   s    r$   mock_fn3TestGDBCLIInfo.test_invalid_binary.<locals>.mock_fn   r   r=   r   zTesting gdb binary failed.z,gdb at 'PATH_TO_GDB' does not appear to work)r   r   r   r   r
   r/   r   )r2   r   rm   s      r$   test_invalid_binary"TestGDBCLIInfo.test_invalid_binary   s]    	9 ZZH"$DMM6HMMH//+ IHH   AA55
Bc                    S n[         R                  R                  [        SU5         [	        5       nU R                  UR                  S5        U R                  UR                  S5        S S S 5        g ! , (       d  f       g = f)Nc                     [        SS5      $ )N	NO PYTHONr   r   r   s    r$   r   .TestGDBCLIInfo.test_no_python.<locals>.mock_fn   s    #K33r=   r   No Python supportNone)r   r   r   r   r
   r   r   r   r2   r   r   s      r$   test_no_pythonTestGDBCLIInfo.test_no_python   sa    	4 ZZH')IY--/BCY00&9 IHHr   c                     S n[         R                  R                  [        SU5         [	        5       nU R                  UR                  S5        S S S 5        g ! , (       d  f       g = f)Nc                     [        SSSS9$ )Nr   r   (NOT A VERSION))r   r   r   s    r$   r   >TestGDBCLIInfo.test_unparsable_python_version.<locals>.mock_fn   s    #K;LMMr=   r   r   )r   r   r   r   r
   r   r   r   s      r$   test_unparsable_python_version-TestGDBCLIInfo.test_unparsable_python_version   sL    	N ZZH')IY--/BC IHH   'A
A'c                 D   S n[         R                  R                  [        SU5         [	        5       nU R                  UR                  S5        U R                  UR                  S5        U R                  SUR                  5        S S S 5        g ! , (       d  f       g = f)Nc                     [        SS5      $ )NzNO NUMPYr   r   r   s    r$   r   -TestGDBCLIInfo.test_no_numpy.<locals>.mock_fn   s    #J22r=   r   zNo NumPy supportr   Partial)
r   r   r   r   r
   r   r   r   r/   r   r   s      r$   test_no_numpyTestGDBCLIInfo.test_no_numpy   su    	3 ZZwG')IY--/ABY--u5MM)Y%8%89	 HGGs   AB
Bc                     S n[         R                  R                  [        SU5         [	        5       nU R                  UR                  S5        S S S 5        g ! , (       d  f       g = f)Nc                     [        SS5      $ )NNO NUMPY VERSIONr   r   r   s    r$   r   5TestGDBCLIInfo.test_no_numpy_version.<locals>.mock_fn   s    #$6::r=   r   Unknownr   r   r   r   r
   r   r   r   s      r$   test_no_numpy_version$TestGDBCLIInfo.test_no_numpy_version   sK    	; ZZ0EwO')IY--y9 POOr   c                     S n[         R                  R                  [        SU5         [	        5       nU R                  UR                  S5        S S S 5        g ! , (       d  f       g = f)Nc                     [        SSSSS9$ )Nr   r   r   	Tracebackr   r   r   s    r$   r   ?TestGDBCLIInfo.test_traceback_in_numpy_version.<locals>.mock_fn   s    #$6+<+68 8r=   r   r   r   r   s      r$   test_traceback_in_numpy_version.TestGDBCLIInfo.test_traceback_in_numpy_version   sK    	8
 ZZ0EwO')IY--y9 POOr   )r   N)rx   ry   rz   r{   r   r   r   r   r   r   r   r   r   r|   rw   r=   r$   r~   r~   w   s1    ,\
3	+:D:::r=   r~   c                   &    \ rS rSrS rS rS rSrg)TestGDBCLIInfoBrokenGdbs   c                     [         R                  R                  5       nSUS'   [        R                  SSS/n[        X!S9u  p4U R                  SU5        U R                  SU5        U R                  S	U5        g )
N#THIS_IS_NOT_A_VALID_GDB_BINARY_NAMENUMBA_GDB_BINARYr*   r+   rt   r   Testing gdb binary failedNo such file or directoryz%'THIS_IS_NOT_A_VALID_GDB_BINARY_NAME'rB   environcopyr,   r-   r%   r/   r2   r   r   r   r   s        r$   test_cannot_find_gdb_from_name7TestGDBCLIInfoBrokenGdbs.test_cannot_find_gdb_from_name   sh    jjoo"G>>4$7 216:16:=vFr=   c                 x   [         R                  R                  5       n[        5        n[         R                  R                  US5      nX1S'   [        R                  SSS/n[        XAS9u  pVU R                  SU5        U R                  SU5        U R                  X55        S S S 5        g ! , (       d  f       g = f)	NCANNOT_EXISTr   r*   r+   rt   r   r   r   )
rB   r   r   r   rC   rD   r,   r-   r%   r/   )r2   r   rk   rC   r   r   r   s          r$   test_cannot_find_gdb_from_path7TestGDBCLIInfoBrokenGdbs.test_cannot_find_gdb_from_path   s    jjoo!Q77<<>2D&*"#~~tWd;G$W6NFMM5v>MM5v>MM$' "!!s   A9B++
B9c                     [         R                  R                  5       nSUS'   [        R                  SSS/n[        X!S9u  p4U R                  SU5        U R                  SU5        g )	Npythonr   r*   r+   rt   r   r   zUnknown optionr   r   s        r$   test_nonsense_gdb_binary1TestGDBCLIInfoBrokenGdbs.test_nonsense_gdb_binary  s[    jjoo"*>>4$7 216: 	&/r=   rw   N)rx   ry   rz   r{   r   r   r  r|   rw   r=   r$   r   r      s    G(
0r=   r   __main__)rB   r   r,   r   rI   r   tempfiler   unittestr   numba.tests.supportr   r   numba.misc.numba_sysinfomiscnumba_sysinforL   numba.tests.gdb_supportr	   numba.misc.numba_gdbinfor
   r   r   r%   r'   r~   r   rx   mainrw   r=   r$   <module>r     s    
  
   ' '   4 & & - 4 4 R (K=h K=\t:X t:n &0x &0 &0R zMMO r=   