o
    GXhU                     @   s   d dl Z d dlmZ d dlmZ d dlZd dlZejdddr$e dG dd de	Z
G d	d
 d
e	ZG dd de jZedkrGe   dS dS )    N)support)warnings_helperT)addressZmemoryz>workaround ASAN build issues on loading tests like tk or cryptc                   @      e Zd ZdS )NoAllN__name__
__module____qualname__ r   r   ;/opt/python-3.10.19/usr/lib/python3.10/test/test___all__.pyr          r   c                   @   r   )FailedImportNr   r   r   r   r   r      r   r   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )AllTestc                 C   s  i }t jdtfdtfdtfdd z	td| | W n   t|W d    n1 s-w   Y  ttj	| ds>t
|i }| j|d t jdtfdtfddg z	td| | W n ty{ } z| d	||jj| W Y d }~nd }~ww d
|v r|d
= d|v r|d= d|v r|d= t|}tj	| j}t|}| ||d| | ||d| W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nz.* (module|package) T)quietz	import %s__all__)modulezfrom %s import *z__all__ failure in {}: {}: {}__builtins____annotations__Z__warningregistry__zin module {})r   Zcheck_warningsDeprecationWarningPendingDeprecationWarningResourceWarningexecr   hasattrsysmodulesr   ZsubTest	ExceptionZfailformat	__class__r   setr   ZassertCountEqualZassertEqual)selfmodnamenamesekeysZall_listZall_setr   r   r   	check_all   sZ   
"zAllTest.check_allc                 c   s    |dkrd S t t|D ]M}tj||}tj|rFtj|d}tj|rE||| fV  | ||| d D ]	\}}||fV  q;q|drO|dkrPq|||d d  fV  qd S )Nz
distutils.z__init__.py.z.py)	sortedoslistdirpathjoinisdirexistswalk_modulesendswith)r!   Zbasedirmodpathfnr,   Zpkg_initpmr   r   r   r0   @   s    zAllTest.walk_modulesc              	   C   s4  t dg}tjdsdd l}g }g }tjtjt}| 	|dD ]e\}}|}d}	|r=||v r4d}	n	|
dd }|s-|	r@q#tjrGt| z&t|d}
d	|
 vrXt|| | W d    n1 sgw   Y  W q# ty{   || Y q# ty   || Y q#w tjrtd
| td| d S d S )NZ
__future__javar   r   FTr'   rbs   __all__z8Following modules have no __all__ and have been ignored:z(Following modules failed to be imported:)r    r   platform
startswith_socketr*   r,   dirname__file__r0   
rpartitionr   verboseprintopenreadr   r&   appendr   )r!   Zdenylistr:   ZignoredZfailed_importsZlib_dirr,   r"   r5   Zdeniedfr   r   r   test_allT   sN   zAllTest.test_allN)r   r	   r
   r&   r0   rD   r   r   r   r   r      s    (r   __main__)Zunittesttestr   Ztest.supportr   r*   r   Zcheck_sanitizerZSkipTestRuntimeErrorr   r   ZTestCaser   r   mainr   r   r   r   <module>   s    
k