
    J/Ph                         d dl Zd dlZd dlZd dlZd dlmZ ddlm	Z	 e G d de	                      Z
e G d de	                      ZdS )	    N)skip_parfors_unsupported   )DispatcherCacheUsecasesTestc                       e Zd Zej                            e          Zej                            ed          Z	dZ
d	dZd Zd Zd ZdS )
TestParforsCacheparfors_cache_usecases.pyparfors_caching_test_fodderr   c                    |                                  }|                     d           t          ||          }t          j        d          }t          j                             ||          |                    |                     d |j        	                                D             }|j        	                                \  }| 
                    |dg           |                     |dz             |                                  d S )Nr   
   c                 &    g | ]}|j         j        S  )libraryhas_dynamic_globals).0cress     `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_parfors_caching.py
<listcomp>z-TestParforsCache.run_test.<locals>.<listcomp>   s-     = = =#  <; = = =    F   )import_modulecheck_pycachegetattrnponestestingassert_allclosepy_func	overloadsvaluesassertEqualrun_in_separate_process)selffname	num_funcsmodfarydynamic_globalsr   s           r   run_testzTestParforsCache.run_test   s      ""1Cgbkk 	
""11S66199S>>:::= ='({'9'9';';= = =##%%5'2229q=)))$$&&&&&r   c                 4    d}|                      |           d S )Narrayexprs_caser)   r"   r&   s     r   test_arrayexprsz TestParforsCache.test_arrayexprs#   s    ar   c                 4    d}|                      |           d S )Nprange_caser,   r-   s     r   test_prangezTestParforsCache.test_prange'   s    ar   c                 8    d}|                      |d           d S )Ncaller_case   )r$   r,   r-   s     r   test_callerzTestParforsCache.test_caller+   s%     	a1%%%%%r   N)r   )__name__
__module____qualname__ospathdirname__file__herejoinusecases_filemodnamer)   r.   r1   r5   r   r   r   r   r      s        7??8$$DGLL'BCCM+G' ' ' '$    & & & & &r   r   c                       e Zd Zej                            e          Zej                            ed          Z	dZ
d Zd ZdS )TestParforsCacheChangingThreadsr   r	   c                    dt          | j        | j                  z  }i t          j        dt          |          i}t          j        t          j	        d|gt          j
        t          j
        |          }|                                \  }}|j        dk    r-t          d|j         d|                                 d	          d S )
Nzif 1:
            import sys

            sys.path.insert(0, %(tempdir)r)
            mod = __import__(%(modname)r)
            mod.self_run()
            )tempdirr@   NUMBA_NUM_THREADSz-c)stdoutstderrenvr   zprocess failed with code z:stderr follows

)dictrD   r@   r9   environstr
subprocessPopensys
executablePIPEcommunicate
returncodeAssertionErrordecode)r"   thread_countcodenew_envpopenouterrs          r   r!   z7TestParforsCacheChangingThreads.run_in_separate_process;   s     t|T\BBBC JRZI!4s<7H7HII #.$!=(2
%,. . . $$&&Sq    "EU=M "E "E47JJLL"E "E "E F F F ! r   c                     |                      d           |                     d           |                      d           |                     d           |                      d           d S )Nr   r      r   )r   r!   )r"   s    r   test_cachingz,TestParforsCacheChangingThreads.test_cachingN   sl    1$$Q'''5!!!$$Q'''5!!!!!r   N)r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   r!   r^   r   r   r   rB   rB   2   se        
 7??8$$DGLL'BCCM+GF F F&" " " " "r   rB   )os.pathr9   rM   rO   numpyr   numba.tests.supportr   r^   r   r   rB   r   r   r   <module>rb      s         



     8 8 8 8 8 8 5 5 5 5 5 5 #& #& #& #& #&2 #& #& #&L  "  "  "  "  "&A  "  "  "  "  "r   