HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/libregrtest/__pycache__/utils.cpython-312.opt-2.pyc
�

�h�e�R���ddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlmZmZddlmZddlmZddlmZdZeZedzZdZd	Zed
zZeZeZeZ e!edfZ"e#eZ$e#e!ee%fZ&e!edfZ'e(ee'fZ)d�Z*d
e#edzddfd�Z+d8d�Z,d�Z-d9d�Z.d�Z/da0d�Z1d�Z2da3d�Z4d�Z5d�Z6d�Z7d8dedzdefd�Z8d�Z9d:dede%defd �Z:ejvd!��Z<d"ed#e=ddfd$�Z>d"ed%edzdefd&�Z?e@d'�ZAdd(�d)�ZBd*�ZCd+�ZDd,�ZEd-eefd.�ZFd/�ZGd-e!edfd0e!edfdzfd1�ZHdefd2�ZId3d4d5d6�ZJd7�ZKy);�N)�Callable�Iterable)�support)�	os_helper)�threading_helper�test_python_�worker_g^@)
�audio�curses�	largefile�network�decimal�cpu�
subprocess�urlfetch�gui�walltime)�extralargefile�tzdata.c��tj|dz�}t|d�\}}t|d�\}}t|d�\}}g}|r|jd|z�|r|jd|z�|r1|r|jd|z�n|jd||dzzz�|sd|zS|dd	}d
j	|�S)Ng@�@i��<z%s hourz%s minz%s secz%.1f secz%s ms�� )�math�ceil�divmod�append�join)�seconds�ms�minutes�hours�partss     �=/opt/alt/python312/lib64/python3.12/test/libregrtest/utils.py�format_durationr%<s���	
���7�S�=�	!�B���T�"�K�G�R��g�r�*��G�W��G�R�(�N�E�7��E��
���Y��&�'��
���X��'�(����L�L��G�+�,�
�L�L��w��d��':�;�<����|���"�1�I�E��8�8�E�?���names�returnc��|syt|�D]2\}}tjj|�\}}|dk(s�.|||<�4y)Nz.py)�	enumerate�os�path�splitext)r'�idx�name�basename�exts     r$�strip_py_suffixr2UsH�����u�%�"�	��T����(�(��.�
��#��%�<�!�E�#�J�"r&c�"�|dk(r|S|�|S|dzS)N��s�)�n�singular�plurals   r$r9r9^s#���A�v���	�	��
��#�~�r&c�*�|dk(r|�d|��S|�d|�d�S)Nr4rr5r6)r7�words  r$�countr<gs+���A�v���A�d�V�}����A�d�V�1�~�r&c
��	d|z}ttjdjd�t	|�D��|||��|��y)Nrc3�2K�|]}t|����y�w�N)�str)�.0�elts  r$�	<genexpr>zprintlist.<locals>.<genexpr>xs���� ?�c��S�� ?�s�)�initial_indent�subsequent_indent)�file)�print�textwrap�fillr�sorted)�x�width�indentrF�blankss     r$�	printlistrOnsE����6�\�F�	�(�-�-���� ?�V�A�Y� ?�?��'-��I��r&c�.�tj|�yr?)r�
print_warning)�msgs r$rQrQ}s�����#�r&c�\�dt_tjd�tj}	tj
�tjjt_t|�tjj�|t_y#|t_wxYw)NTzUnraisable exception)	r�environment_alteredrQ�sys�stderr�flush_std_streams�orig_stderr�orig_unraisablehook�flush)�
unraisable�
old_stderrs  r$�regrtest_unraisable_hookr]�sm��"&�G�����0�1����J� ��!�!�#��*�*�6�6��
��J�'��
�
������
��Z��
�s�A B�
B+c�B�tjatt_yr?)rU�unraisablehookrYr]r6r&r$�setup_unraisable_hookr`�s���,�,��1�C�r&c��dt_tjd|jj���t
j}	tj�tjjt
_t|�t
jj�|t
_y#|t
_wxYw)NTzUncaught thread exception: )rrTrQ�exc_type�__name__rUrVrWrX�orig_threading_excepthookrZ)�argsr\s  r$�regrtest_threading_excepthookrf�s��"&�G�����7��
�
�8N�8N�7O�P�Q����J� ��!�!�#��*�*�6�6��
�!�$�'��
�
������
��Z��
�s
�	A B5�5
Cc�:�ddl}|jat|_y�Nr)�	threading�
excepthookrdrf)ris r$�setup_threading_excepthookrk�s��� )� 4� 4��8�I�r&c��tjj�D]}t|d�s�|`�tj
tjtjtjfD]}|��|j��	tjd}|j�	tjd}|jj�	tjd}|j�	tjd}|j�	tjd}|j!�	tjd}|j#�	tjd}|j$j�	tjd	}	|	j'�	tjd
}
d|
_	tjd}|j+�	tjd}|j,D]	}
|
��		tjd
}|j.j1�	tjd}|j2j1�y#t$rY���wxYw#t$rY���wxYw#t$rY���wxYw#t$rY���wxYw#t$rY���wxYw#t$rY��wwxYw#t$rY��YwxYw#t$rY��EwxYw#t$rY��:wxYw#t$rY��&wxYw#t$rY��	wxYw#t$rY��wxYw#t$rYywxYw)N�__warningregistry__�re�	_strptimezurllib.parsezurllib.request�	linecache�	mimetypes�filecmp�struct�doctest�ctypes�typing�	fractions�inspect)rU�modules�values�hasattrrm�stdoutrV�
__stdout__�
__stderr__rZ�purge�KeyError�_regex_cache�clear�clear_cache�
urlcleanup�
clearcache�_default_mime_types�_cache�_clearcache�master�_reset_cache�	_cleanups�_hash_algorithm�cache_clear�_shadowed_dict_from_mro_tuple)�mod�streamrnro�urllib_parse�urllib_requestrprqrrrsrtrurv�frwrxs                r$�clear_cachesr��s+���{�{�!�!�#�(���3�-�.��'�(��:�:�s�z�z�3�>�>�3�>�>�J������L�L�N���
�[�[��
��	���
�'��K�K��,�	�	���$�$�&�#��{�{�>�2��	� � �"�$����%5�6��	�!�!�#���K�K��,�	�	����(��K�K��,�	�	�%�%�'���+�+�i�(��	����������X�&��	������+�+�i�(���������X�&��	��������X�&���!�!�	�A�
�C�	�0��K�K��,�	�	�!�!�-�-�/�<��+�+�i�(��	�-�-�9�9�;��q�
��
���
��
���
��
���
��
���
��
���
��
���
��
���
��
���
��
���
��
���
��
���
��
���
��
�s��
J�.J�J&�J6�$K�K�,K&�K6�>L�L�=L&�*L6�M�	J�J�	J#�"J#�&	J3�2J3�6	K�K�	K�K�	K#�"K#�&	K3�2K3�6	L�L�	L�L�	L#�"L#�&	L3�2L3�6	M�M�	M�Mc��tjd�xsd}tjd�xsd}tjd�xsd}tjd�xsd}g}tjd�r|jd�ttd�r*|jd	�d
||zvrQ|jd�n?|jd�d
|vr|jd�nd
||zvr|jd�tjd�}|r|jd|���ttjd�xsd�}|r|jd�g}d|vr|jd�nd|vr|jd�t
j�r|jd�|r |jdj|��g}t
jd��r|jd�t
jd��r|jd�t
jd��r|jd �|r |jdj|��ttd!�r|jd"�ttd#�r|jd$�tjd%�r|jd&�tjd'�r|jd(�|S))N�CONFIG_ARGS��	PY_CFLAGS�PY_CFLAGS_NODIST�PY_LDFLAGS_NODIST�Py_NOGIL�nogil�gettotalrefcount�debugz-DNDEBUG�without_assert�releasez--with-assertions�with_assert�PYTHONFRAMEWORKz
framework=�PY_ENABLE_SHARED�0�sharedz
-flto=thin�ThinLTOz-flto�LTO�PGO�+T��address�ASAN��memory�MSAN��ub�UBSAN�
getobjects�	TraceRefs�	_stats_on�pystats�
WITH_VALGRIND�valgrind�WITH_DTRACE�dtrace)
�	sysconfig�get_config_varrr{rU�intr�check_cflags_pgor�check_sanitizer)	�config_args�cflags�
cflags_nodist�ldflags_nodist�build�	frameworkr��
optimizations�
sanitizerss	         r$�get_build_infor�sy���*�*�=�9�?�R�K�
�
%�
%�k�
2�
8�b�F��,�,�-?�@�F�B�M��-�-�.A�B�H�b�N��E����
�+�
���W���s�&�'�
���W���&�=�0�1��L�L�)�*�
���Y���+�-��L�L��'�
��� 6�
7��L�L��'��(�(�):�;�I��
���z�)��-�.���)�)�*<�=�D��
E�F�
�
���X���M��~�%����Y�'�	�N�	"����U�#����!����U�#��
���S�X�X�m�,�-��J����t�,����&�!����d�+����&�!����$�'����'�"��
���S�X�X�j�)�*��s�L�!�
���[�!��s�K� �
���Y������0�
���Z� ����
�.�
���X���Lr&�tmp_dirc��|r!tjj|�}�ntj�r�t
jsqtjd�}|�9tjd�}|s"tjd�}|std��tjj|d�}nrtjd�}|std|�d���tjj|d�}tj|d	�
�ntj�}tjj|�S)N�abs_builddir�
abs_srcdir�srcdirz1Could not determine the correct value for tmp_dirr��projectbasez>sysconfig.get_config_var('projectbase') unexpectedly returned z on WASIT)�exist_ok)r+r,�
expanduserr��is_python_buildr�is_wasir��RuntimeErrorr�makedirs�tempfile�
gettempdir�abspath)r�s r$�get_temp_dirr�js����'�'�$�$�W�-��
�$�$�&��?�?�#�2�2�>�B���?�'�6�6�|�D�G�"�
#,�":�":�8�"D��&�".� S�#���'�'�,�,�w��8��$�2�2�=�A���&�1�18��8�E����'�'�,�,�w��8�����G�d�3��)�)�+�G�
�7�7�?�?�7�#�#r&c��tjrFtjd�}|dk(rtjd�ytj|�yy)Nri��)r�
is_emscriptenr+�umask)�old_masks r$�	fix_umaskr��s>������8�8�A�;���u���H�H�U�O��H�H�X��r&F�
parent_dir�workerc�P�tjstjrtjdd�}ntj�}|rtt|�z}ntt|�z}|tjz
}t
jj||�}|S)Nri@B)rr�r��random�randintr+�getpid�WORK_DIR_PREFIXr@�WORKER_WORK_DIR_PREFIXr�FS_NONASCIIr,r)r�r��nounce�work_dirs    r$�get_work_dirr��sv������������9�-�������
�"�S��[�0��)�C��K�7���	�%�%�%�H��w�w�|�|�J��1�H��Or&c#��K�	d��y#t$rT}tjrtjt
d��t
j|j�Yd}~yd}~wwxYw�w)NT)�exit)	�
SystemExitr�can_start_thread�faulthandler�dump_traceback_later�EXIT_TIMEOUTrUr��code)�excs r$�exit_timeoutr��sK�����
�����,�,��-�-�l��F�����������s+�A)�	�A)�	A&�A
A!�A)�!A&�&A)�	test_name�verbosec
�p�tj}tjj	|�sytjj|�rddl}d|j}}nAtjj|�rdtj}}ntd|�d���|rt|�d|�d|���dt_
	ddl}tj||j |j"z|j$z�||�y#t&$r }t|�d|�d|�d	|���Yd}~yd}~wwxYw)
Nr�	directoryrFz
os.path says z) exists but is neither directory nor filez
 left behind rTz and it couldn't be removed: )r�TESTFNr+r,�exists�isdir�shutil�rmtree�isfile�unlinkr�rQrrT�stat�chmod�S_IRWXU�S_IRWXG�S_IRWXO�	Exception)r�r�r/r��kind�nukerrr�s        r$�
remove_testfnr�s�����D�
�7�7�>�>�$���
�w�w�}�}�T���!�6�=�=�e��	������	��b�i�i�e���]�4�(�30�1�2�	2�����=���a��x�@�A�&*��#�<��
����t�|�|�d�l�l�2�T�\�\�A�B�
�d����<����=���a��x�@5�58�E�;�	<�	<��<�s�AD�	D5�D0�0D5�test_dirc�6�|jd�s|r|Sd|zS)Nztest.)�
startswith)r�r	s  r$�abs_module_namer�s%�����G�$������"�"r&)�
setUpClass�
tearDownClass�setUpModule�tearDownModule)�is_errorc���|jd�d}|rV|tvrN|jd�ry|jd�}|jd�}||dz|jd�dS|S)	Nrr)z
setUpModule (ztearDownModule (�(�)r4�.���)�split�_TEST_LIFECYCLE_HOOKSr�index)�test_full_namer�
short_name�lpar�rpars     r$�normalize_test_namer�s���%�%�c�*�1�-�J��J�"7�7��$�$�%J�K���#�#�C�(���#�#�C�(���d�Q�h��-�3�3�C�8��<�<��r&c
�`�		ddl}|j|j�\}}d}||krC||kr=t	||�}	|j|j||f�t
d|�d|���yyy#t$rYywxYw#ttf$r}td|�d|�d|�d��Yd}~yd}~wwxYw)	NrizRaised RLIMIT_NOFILE: z -> z#Unable to raise RLIMIT_NOFILE from z to z: r)
�resource�ImportError�	getrlimit�
RLIMIT_NOFILE�min�	setrlimitrG�
ValueError�OSErrorrQ)r �fd_limit�max_fds�desired_fds�new_fd_limit�errs      r$�adjust_rlimit_nofiler-s����
��!�*�*�8�+A�+A�B��H�g��K��+��(�W�"4��;��0��	5����x�5�5� ,�g�6�
8��*�8�*�D���G�H�#5���������G�$�	5��?��z��)�N�"�S�E��4�
5�
5��	5�s(�A0�/A?�0	A<�;A<�?B-�B(�(B-c�r�tjjd�x}�tjd�}|S)N�_PYTHON_HOSTRUNNER�
HOSTRUNNER)r+�environ�getr�r�)�
hostrunners r$�get_host_runnerr4%s1���j�j�n�n�%9�:�:�
�C��-�-�l�;�
��r&c�&�dtjvS)N�_PYTHON_HOST_PLATFORM)r+r1r6r&r$�is_cross_compiledr7+s��#�r�z�z�1�2r&�
use_resourcesc��t|�}tt�}dg}t||z
�D]}|jd|����t||z
�D]}|j|���dj	|�}d|��}dj	t|��}dt|��d|��}t|�t|�kr|S|S)N�all�-�,zresources: zresources (z): )�set�
ALL_RESOURCESrJrr�len)r8�
all_resources�relative_allr/�all_text�texts      r$�format_resourcesrD/s����
�&�M��
�&�M��7�L��}�}�4�5�(�����a��v�J�'�(��}�}�4�5�'�����t�f�&�'��x�x��%�H��X�J�'�H��8�8�F�=�)�*�D�
��]�+�,�C��v�6�D��8�}��D�	�!����r&c��ttd�rttjd��Stj�S)N�sched_getaffinityr)r{r+r?rF�	cpu_countr6r&r$�process_cpu_countrHGs/���r�&�'��2�'�'��*�+�+��|�|�~�r&�
python_cmdc�X�tdtj�gtjj����tdtjd��dtjz�tddjt���tdtj��tj�}|r%t�}|r
||k7r|�d|�d	�}td
|�tdtj��dtj����|rt!|�}td
|���ntd�t#�}|rtd�|r�t%j|�}td|���g|�d�d�}t'j(|t&j*dt,j.��}|j0j3dd�j5�}	|	rtd|	���n@|j6r4td|j6�d��nt9�}
|
rtd|
���t;j<d��}t;j<d��}t;j<d��}
g}|r|j?d�|r|j?d�|
r|j?d�|rftdd j|����|d!f|d"f|
d#ffD];\}}tj@jC|�}|s�(|��+td
|�d$|����=td�%�y)&Nz==T)�aliasedz	%s-endianz== Python build:rz== cwd:z
 (process) / z	 (system)z
== CPU count:z== encodings: locale=z FS=z== zL== resources: all test resources are disabled, use -u option to unskip testsz== cross compiled: Yesz== host python: z-m�platform)r|rC�cwd�
z== host platform: z1== host platform: <command failed with exit code �>z== host runner: r�r�r�r�r�zundefined behaviorz== sanitizers: z, �ASAN_OPTIONS�MSAN_OPTIONS�
UBSAN_OPTIONS�=)rZ)"rGrL�python_implementationrU�versionr�	byteorderrr�r+�getcwdrGrH�locale�getencoding�getfilesystemencodingrDr7�shlexr�run�PIPEr�SAVEDCWDr|�replace�strip�
returncoder4rr�rr1r2)r8rIrG�affinityrC�
cross_compile�cmd�get_cmd�procr|r3�asan�msan�ubsanr��	sanitizer�env_var�optionss                  r$�display_headerrmNs���
�$��.�.�0�G�3�;�;�3D�3D�3F�G�	�$��!�!�$�/���
�
�-�/�	�
�c�h�h�~�'7�8�9�	�)�R�Y�Y�[�!�����I��$�&����I�-�#�*�M�)��I�F�I�
�o�y�)�	�
�
�
�
!�3�#<�#<�#>�@�A���
�.��
��D�6�l��
�.�	/�&�'�M��
�&�'���j�j��$��
� ���&�'�1�J�1��1�j�1���~�~���?�?���"�"�	$��
���$�$�T�3�/�5�5�7����&�v�h�/�0�
�_�_��E�d�o�o�EV�VW�X�Y�$�&�
���$�Z�L�1�2��"�"�4�0�D��"�"�$�/�D��#�#�t�,�E��J�����)�$�����(�#�����.�/��
���	�	�*� 5�6�7�8�
�>�"�
�>�"�
�O�$�#
�	3��I�w�
�Z�Z�^�^�G�,�G��W�0���G�9�A�g�[�1�2�	3�
��r&c��ddl}tjj|j	|�t
dz�}t
d|z�|j|�D]h}tjj|�r$t
d|z�tj|��Ft
d|z�tj|��jy)Nr�*zCleanup %s directoryzRemove directory: %szRemove file: %s)�globr+r,r�escape�
TMP_PREFIXrGr�rr�r�)r�rpr,r/s    r$�cleanup_temp_dirrs�s����
�7�7�<�<����G�,�j�3�.>�?�D�	�
 �7�
*�+��	�	�$��#��
�7�7�=�=����(�4�/�0����T�"��#�d�*�+����T�"�
#r&�STATUS_ACCESS_VIOLATION�STATUS_STACK_OVERFLOW�STATUS_CONTROL_C_EXIT)ll�l:c��|dkr#|}	tj|�jS	t|S#t$rY�wxYw#t
$rYywxYwrh)�signal�Signalsr/r&�WINDOWS_STATUSr�)�exitcode�signums  r$�get_signal_namer}�sd���!�|����	��>�>�&�)�.�.�.�
��h�'�'��	�	��	��
�
���
�s�3�A�	?�?�	A�
Ar?)�F�N)F)L�
contextlibr�rXr�os.pathr+rLr�r[rxrrUr�r�rH�collections.abcrr�testr�test.supportrrrrr�r�r�r>�RESOURCE_NAMESr@�StrPath�TestName�StrJSON�tuple�	TestTuple�list�TestList�bool�
TestFilter�FilterTuple�dict�
FilterDictr%r2r9r<rOrQrYr]r`rdrfrkr�r�r�r�r��contextmanagerr�r�rr�	frozensetrrr-r4r7rDrHrmrsrzr}r6r&r$�<module>r�sI����
����
��
��
����.��"�)�
�
���(�9�4��
��P�
��!=�=������

���(�C�-� �	���>���%��$��'�
(�
��H�c�M�"��
�(�K�'�
(�
��2"�4��9�t�+�"��"������� �2�!�� �9�f<�RN�b)$�'�D�.�)$�G�)$�X��W��d��w��(������"<�X�"<��"<��"<�J#�x�#�7�T�>�#�h�#�"�#���
5:��*5�4�3��H�S�M��0�G�%��S��/�G�$�S�#�X���5�G�T#�g�#�*�'�'���
r&