
    [Th                         S 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rSSKrSSK	J
r
  SSKJrJrJrJr  SSKJrJrJr  \R*                  " \5      rSS\\\\S	4   4   S
S4S jjr " S S\5      rg)a  Testing utilities for Dynamo, providing a specialized TestCase class and test running functionality.

This module extends PyTorch's testing framework with Dynamo-specific testing capabilities.
It includes:
- A custom TestCase class that handles Dynamo-specific setup/teardown
- Test running utilities with dependency checking
- Automatic reset of Dynamo state between tests
- Proper handling of gradient mode state
    N)Union)	trace_log)
IS_WINDOWSTEST_WITH_CROSSREFTEST_WITH_TORCHDYNAMOTestCase   )configresetutilsneeds.returnc                    SSK Jn  [        (       d  [        (       a  g [        R
                  R                  5       (       d0  [        (       a%  [        R                  R                  SS5      S:X  a  g [        U [        5      (       a  U 4n U  HG  nUS:X  a'  [        R                  R                  5       (       d    g M0   [        R                  " U5        MI     U" 5         g ! [          a       g f = f)Nr   )	run_testsTORCHINDUCTOR_WINDOWS_TESTS0cuda)$torch.testing._internal.common_utilsr   r   r   torchxpuis_availabler   osenvironget
isinstancestrr   	importlibimport_moduleImportError)r   r   needs      O/var/www/auris/envauris/lib/python3.13/site-packages/torch/_dynamo/test_case.pyr   r   !   s    > 2 2 II""$$JJJNN8#>#E%6>::**,, -''-  K  s   <C
C,+C,c                      ^  \ rS rSr% \R
                  \S'   \SU 4S jj5       r\SU 4S jj5       r	SU 4S jjr
SU 4S jjrSrU =r$ )	r   <   _exit_stackc                 V   > U R                   R                  5         [        TU ]  5         g N)r$   closesupertearDownClasscls	__class__s    r!   r)   TestCase.tearDownClass?   s        c                    > [         TU ]  5         [        R                  " 5       U l        U R                  R                  [        R                  " SSSS95        g )NTF)raise_on_ctx_manager_usagesuppress_errorslog_compilation_metrics)r(   
setUpClass
contextlib	ExitStackr$   enter_contextr
   patchr*   s    r!   r3   TestCase.setUpClassD   sE    $..0%%LL+/ %(-	
r.   c                   > [         R                  " 5       U l        [        TU ]  5         [        5         [        R                  R                  5         [        R                  " 5       U l        [        R                  " U R                  5        g r&   )r   is_grad_enabled_prior_is_grad_enabledr(   setUpr   r   countersclearloggingNullHandlerhandlerr   
addHandler)selfr,   s    r!   r<   TestCase.setUpP   sT    &+&;&;&=#**,T\\*r.   c                   > [         R                  " U R                  5        [        R                  R                  5        H  u  p[        XR                  5       5        M      [        5         [        R                  R                  5         [        TU ]-  5         U R                  [        R                  " 5       La6  [        R!                  S5        [        R"                  " U R                  5        g g )NzRunning test changed grad mode)r   removeHandlerrA   r   r=   itemsprintmost_commonr   r>   r(   tearDownr;   r   r:   logwarningset_grad_enabled)rC   kvr,   s      r!   rJ   TestCase.tearDownX   s    -NN((*DA!]]_% +&&e.C.C.EEKK89""4#>#>? Fr.   )r;   rA   )r   N)__name__
__module____qualname____firstlineno__r4   r5   __annotations__classmethodr)   r3   r<   rJ   __static_attributes____classcell__)r,   s   @r!   r   r   <   sF    %%%    	
 	
+	@ 	@r.   r   ) )__doc__r4   r   r?   r   typingr   r   torch.testingtorch._logging._internalr   r   r   r   r   r   TorchTestCase r
   r   r   	getLoggerrQ   rK   r   tupler   rY   r.   r!   <module>rb      s{       	    .  # " !U3c3h/0 $ 6%@} %@r.   