a
    xd                     @   s2   d dl Z d dlZG dd deZG dd dZdS )    Nc                   @   sd   e Zd ZdZedd Zdd Zg dddfdd	Zed
d Z	e	j
dd Z	dd Zedd ZdS )TestingConfigzC"
    TestingConfig - Information on the tests inside a suite.
    c                 C   s   t j| jt jddg dd}g d}tjdrD|dg7 }ntjdkrb|g d	7 }d|d
< |D ]}t j|d}|rf|||< qfg }| j	r|
d | jr|
d tddt d|g dddg |dddS )zv
        fromdefaults(litConfig) -> TestingConfig

        Create a TestingConfig object with default values.
        PATH 1)r   ZLLVM_DISABLE_CRASH_REPORT)'ZLIBRARY_PATHZLD_LIBRARY_PATHZ
SYSTEMROOTTERMZCLANGZLLDBZ
LD_PRELOADZLLVM_SYMBOLIZER_PATHZASAN_SYMBOLIZER_PATHZHWASAN_SYMBOLIZER_PATHZLSAN_SYMBOLIZER_PATHZMSAN_SYMBOLIZER_PATHZTSAN_SYMBOLIZER_PATHZUBSAN_SYMBOLIZER_PATHZASAN_OPTIONSZLSAN_OPTIONSZHWASAN_OPTIONSZMSAN_OPTIONSZTSAN_OPTIONSZUBSAN_OPTIONSZADBZANDROID_SERIALZSSH_AUTH_SOCKZSANITIZER_IGNORE_CVE_2016_2143TMPDIRTMPTEMPZTEMPDIRZAVRLIT_BOARDZAVRLIT_PORTZFILECHECK_OPTSZVCINSTALLDIRZVCToolsinstallDirZVSINSTALLDIRZWindowsSdkDirZWindowsSDKLibVersionSOURCE_DATE_EPOCHZGTEST_FILTERZDFLTCCaixZLIBPATHwin32)ZCOMSPECZINCLUDEZLIBPATHEXTUSERPROFILEZPYTHONBUFFEREDZvalgrindZvg_leakNz	<unnamed>FT)namesuffixestest_formatenvironmentsubstitutionsunsupportedtest_exec_roottest_source_rootexcludesavailable_featurespipefailstandalone_tests)ospathsepjoinpathenvirongetsysplatform
startswithZuseValgrindappendZvalgrindLeakCheckr   set)	litConfigr   Z	pass_varsvarvalr    r)   Z/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/lit/TestingConfig.pyfromdefaults
   sD    	
*



zTestingConfig.fromdefaultsc              	   C   s   d}t |}z| }W n   |d|f  Y n0 |  tt }| |d< ||d< ||d< z,tt||d|d |jr|	d|  W nN t
y   t d }|jr Y n*   d	dl}|d
|| f  Y n0 | | dS )z
        load_from_path(path, litConfig)

        Load the configuration module at the provided path into the given config
        object.
        Nzunable to load config file: %rconfigZ
lit_config__file__execz... loaded config %r   r   z-unable to parse config file %r, traceback: %s)openreadfatalclosedictglobalsr.   compiledebugZnote
SystemExitr!   exc_infoargs	traceback
format_excfinish)selfr   r&   datafZcfg_globalser;   r)   r)   r*   load_from_pathj   s6    	

zTestingConfig.load_from_pathFNc                 C   s   || _ t|| _t|| _|| _t|| _t|| _	|| _
|| _|	| _t|
| _t|| _|| _|| _t|| _|| _d | _d S N)parentstrr   r%   r   r   r4   r   listr   r   r   r   r   r   r   r   limit_to_featuresparallelism_group_recursiveExpansionLimit)r>   rD   r   r   r   r   r   r   r   r   r   r   r   rG   Zis_earlyrH   r   r)   r)   r*   __init__   s     






zTestingConfig.__init__c                 C   s   | j S rC   )rI   r>   r)   r)   r*   recursiveExpansionLimit   s    z%TestingConfig.recursiveExpansionLimitc                 C   sJ   |d ur t |ts td|t |tr@|dk r@td||| _d S )NzDrecursiveExpansionLimit must be either None or an integer (got <{}>)r   zArecursiveExpansionLimit must be a non-negative integer (got <{}>))
isinstanceint
ValueErrorformatrI   )r>   valuer)   r)   r*   rL      s
    c                 C   sl   t | j| _t| j| _t| j| _t| j| _| jdurFt | j| _| j	dur\t | j	| _	t| j
| _
dS )z@finish() - Finish this config object, after loading is complete.N)rE   r   r%   r   r4   r   rF   r   r   r   r   )r>   r&   r)   r)   r*   r=      s    

zTestingConfig.finishc                 C   s   | j du r| S | j jS dS )z;root attribute - The root configuration for the test suite.N)rD   rootrK   r)   r)   r*   rR      s    
zTestingConfig.root)__name__
__module____qualname____doc__staticmethodr+   rB   rJ   propertyrL   setterr=   rR   r)   r)   r)   r*   r      s   
_*


r   c                   @   s8   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d ZdS )SubstituteCapturesa
  
    Helper class to indicate that the substitutions contains backreferences.

    This can be used as the following in lit.cfg to mark subsitutions as having
    back-references::

        config.substutions.append(('[^ ]*.cpp', SubstituteCaptures(' .txt')))

    c                 C   s
   || _ d S rC   substitution)r>   r\   r)   r)   r*   rJ      s    zSubstituteCaptures.__init__c                 C   s   | j S rC   r[   )r>   patternreplacementr)   r)   r*   replace   s    zSubstituteCaptures.replacec                 C   s   | j S rC   r[   rK   r)   r)   r*   __str__   s    zSubstituteCaptures.__str__c                 C   s
   t | jS rC   )lenr\   rK   r)   r)   r*   __len__   s    zSubstituteCaptures.__len__c                 C   s   | j |S rC   )r\   __getitem__)r>   itemr)   r)   r*   rc      s    zSubstituteCaptures.__getitem__N)	rS   rT   rU   rV   rJ   r_   r`   rb   rc   r)   r)   r)   r*   rZ      s   	rZ   )r   r!   objectr   rZ   r)   r)   r)   r*   <module>   s    L