Your IP : 216.73.216.213


Current Path : /opt/alt/python39/lib64/python3.9/test/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/__pycache__/test_cmd_line.cpython-39.opt-2.pyc

a

XC?h2��@s�ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
Z
eed�Zdd�ZGdd�dej�Ze�e
�d	�Gd
d�dej��Zdd
�Zedkr�e��dS)�N)�support)�spawn_python�kill_python�assert_python_ok�assert_python_failure� interpreter_requires_environmentZgettotalrefcountcCst|�}|��}||fS�N)r�wait)�p�data�
returncode�r
�7/opt/alt/python39/lib64/python3.9/test/test_cmd_line.py�_kill_python_and_exit_codesrc@sJeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	e
�e�d�dd��Z
dd�Zdd�Zdd�Zdd�Zdd�Ze
�ejd�dd��Ze
�ejdkd �d!d"��Ze
�ejdkd �d#d$��Ze
�ejd%kp�ejd&�d'd(��Zd)d*�Zd+d,�Zd-d.�Zd/d0�Z d1d2�Z!d3d4�Z"d5d6�Z#d7d8�Z$d9d:�Z%d;d<�Z&d=d>�Z'd?d@�Z(dAdB�Z)e
�e*j+dCkdD�e
�ejdEkdF�dGdH���Z,dIdJ�Z-dKdL�Z.dMdN�Z/dOdP�Z0dQdR�Z1dSdT�Z2dUdV�Z3e
�e�dW�dXdY��Z4dZd[�Z5d\d]�Z6d^d^d_�d`da�Z7dbdc�Z8dwdedf�Z9dgdh�Z:didj�Z;dkdl�Z<dmdn�Z=e
�ejdkdo�dpdq��Z>drds�Z?dtdu�Z@dvS)x�CmdLineTestcCstd�td�dS)N�.z< .)r��selfr
r
r�test_directoriesszCmdLineTest.test_directoriescCsBt|�\}}}|�|dkp"|�d��|�d|�|�d|�dS)N��
s	Traceback)r�
assertTrue�endswith�assertNotIn)rZcmd_line�rc�out�errr
r
r�verify_valid_flag!szCmdLineTest.verify_valid_flagcCs|�d�|�d�dS)Nz-Oz-OO�rrr
r
r�
test_optimize's
zCmdLineTest.test_optimizecCs|�d�dS)N�-Srrr
r
r�test_site_flag+szCmdLineTest.test_site_flagcCsBtd�\}}}|��}|�d|d�d�|dd���d�dS)Nz-hsusagerr��ascii)r�
splitlines�assertIn�join�decode)rrrr�linesr
r
r�
test_usage.szCmdLineTest.test_usagecCsTdtjdd��d�}dD]2}t|�\}}}|�|�|��|�|�|��qdS)NzPython %d.%d�r#)z-Vz	--versionz-VV)�sys�version_info�encoderZassertFalse�
startswithr)r�versionZswitchrrrr
r
r�test_version6s
zCmdLineTest.test_versioncCs8td�\}}}|�d|�td�\}}}|�d|�dS)Nz-vsstack overflowz-vv)rr�rrrrr
r
r�test_verbose=szCmdLineTest.test_verbosez6Cannot run -E tests when PYTHON env vars are required.cCs:dd�}|�}|�|i�|dd�}|�|ddd��dS)NcWs4tjdf|}|d7}t�|�}t|��d�}|S)N�-E)�-c� import sys; print(sys._xoptions)r)r+�
executable�
subprocess�check_output�evalr$)�argsr�optsr
r
r�get_xoptionsIs

z/CmdLineTest.test_xoptions.<locals>.get_xoptionsz-Xaz	-Xb=c,d=eTzc,d=e)�a�b)�assertEqual)rr<r;r
r
r�
test_xoptionsFs
	
zCmdLineTest.test_xoptionscs��fdd�}d}|d|�\}}}��|��d���|d�|ddd|�\}}}��|��d	�trr��|d
�n��|d�dS)Ncsdtjg}|�|�tj}tj|||d�}|��\}}|j��|j	��|j
}��|d�|||fS)N��stdout�stderrr)r+r6�extendr7�PIPE�Popen�communicaterB�closerCrr?)r:�cmdrEr
rrrrr
r�
run_pythonYs


z1CmdLineTest.test_showrefcount.<locals>.run_pythonr5r4s{}r�-XZshowrefcounts{'showrefcount': True}s^\[\d+ refs, \d+ blocks\])r?�rstrip�Py_DEBUG�assertRegex)rrJ�coderrrr
rr�test_showrefcountXszCmdLineTest.test_showrefcountcCs0td�tdd�tddd�tdddd�dS)N�-mZ
fnord43520xyzZrunpy�timeit�-n�1�rrrr
r
r�test_run_modulets
zCmdLineTest.test_run_modulecCs\tddddd�}|j�d�|j�d�t|�}|�|�d�d	k�|�|�d
�d	k�dS)N�-irQrRrSrTsTimer
�exit()
s1 loop���s__main__.Timer)r�stdin�writerr�find)rr
rr
r
r�test_run_module_bug1764407�sz&CmdLineTest.test_run_module_bug1764407cCs`t��}tj�t��d�}t�|��(tddd�tddd�Wd�n1sR0YdS)N�testrQ�unittestztest/test_longexp.pyz./test/test_longexp.py)	�os�getcwd�path�dirname�__file__�removesuffixrZ
change_cwdr)rZ	defaultwdZprojectlibpathr
r
r�test_relativedir_bug46421�s
z%CmdLineTest.test_relativedir_bug46421cCs td�tdd�tdd�dS)Nr4zraise Exception�passrUrr
r
r�
test_run_code�s
zCmdLineTest.test_run_codezneed support.FS_NONASCIIcCs"dtjttj�f}td|�dS)Nzassert(ord(%r) == %s)r4)r�FS_NONASCII�ordr)rZcommandr
r
r�test_non_ascii�s�zCmdLineTest.test_non_ascii�win32z Windows has a native unicode APIcCs�d}tj��}d|d<d|d<d|d}tjtjd|gtjtj|d	�}|�	�\}}|j
d
krdd}n"|j
dkrtd
}ntd|j
|f��|�|�s�td||f��dS)N���C�LC_ALL�0ZPYTHONCOERCECLOCALEsimport locale; print(ascii("s""), locale.getpreferredencoding())r4)rBrC�envr"s3Unable to decode the command from the command line:rs'\xff' z Unknown exit code: %s, output=%az%a doesn't start with %a)
r`�environ�copyr7rFr+r6rE�STDOUTrGr�AssertionErrorr.)rZundecodablerqrOr
rBrC�patternr
r
r�test_undecodable_code�s.
���
�


z!CmdLineTest.test_undecodable_codec	s�d�tjd�g}�fdd�}�fdd�}�fdd�}d	�d
�}d}||g}|||fD]X}|j|d��8|D]"}	||	�}
|�|
j��t|	��qjWd�qT1s�0YqTdS)
Nz;import sys, os; s=os.fsencode(sys.argv[1]); print(ascii(s))r4cs tjd�|g}tj|tjdd�S)Nr4T�rB�text�r+r6r7�runrE��argrI�rOr
r�run_default�sz6CmdLineTest.test_invalid_utf8_arg.<locals>.run_defaultcs4tjd�|g}ttj�}d|d<tj|tjd|d�S)Nr4rnroT)rBryrq)r+r6�dictr`rrr7r{rE)r}rIrqr~r
r�run_c_locale�s

�z7CmdLineTest.test_invalid_utf8_arg.<locals>.run_c_localecs$tjddd�|g}tj|tjdd�S)NrK�utf8r4Trxrzr|r~r
r�
run_utf8_mode�sz8CmdLineTest.test_invalid_utf8_arg.<locals>.run_utf8_mode�e:é, euro:€, non-bmp:􏿿�utf-8s��é�������)�run_cmd)r+r6r-�subTestr?rBrLr#)rZbase_cmdrr�r�Z
valid_utf8Zinvalid_utf8Z	test_argsr�r}�procr
r~r�test_invalid_utf8_arg�s	
�z!CmdLineTest.test_invalid_utf8_arg�darwinz%test specific to Mac OS X and Androidc	Cs�d�d�}d}|�dd�}t|��d�d}tj��}d|d<tjtj	d	||ftj
|d
�}|��\}}|�||�|�|j
d�dS)Nr�r�z%import sys; print(ascii(sys.argv[1]))�surrogateescaper#rrnror4)rBrqr)r-r'r#r`rrrsr7rFr+r6rErGr?r)	rryrOZdecoded�expectedrqr
rBrCr
r
r�test_osx_android_utf8�s

�z!CmdLineTest.test_osx_android_utf8cCs@t�d�}tjd|g}tj|tjtjddd�}|�|jd�dS)Nz�
            import sys
            out = sys.stdout
            print(out.isatty(), out.write_through, out.line_buffering)
            err = sys.stderr
            print(err.isatty(), err.write_through, err.line_buffering)
        r4T)rBrCryZcheckz#False False False
False False True
)	�textwrap�dedentr+r6r7r{rEr?rB)rrOr:r�r
r
r�%test_non_interactive_output_bufferings

��z1CmdLineTest.test_non_interactive_output_bufferingcCs�dD]|}d|}tdd|�\}}}|dkr.|n|}|�|dd|�d|}tdd|�\}}}|dkrj|n|}|�|dd	|�qdS)
NrAz6import os, sys; sys.%s.buffer.write(b'x'); os._exit(0)�-ur4rC�xzbinary %s not unbufferedz.import os, sys; sys.%s.write('x'); os._exit(0)ztext %s not unbuffered�rr?)r�streamrOrrrrr
r
r�test_unbuffered_outputs��z"CmdLineTest.test_unbuffered_outputcCsTd}tdd|�}|j�d�|j��t|�\}}|�|d�|�|�d�|�dS)Nz/import sys; sys.stdout.write(sys.stdin.read(1))r�r4r�r)rrZr[�flushrr?rr.)rrOr
rrr
r
r�test_unbuffered_input/s
z!CmdLineTest.test_unbuffered_inputcCsXd}d}|tj|}d}tdd||d�\}}}|�|�d�|�|�|�d�|�dS)NA�ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEA�FGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJFGHIJ��if 1:
            import sys
            path = ":".join(sys.path)
            path = path.encode("ascii", "backslashreplace")
            sys.stdout.buffer.write(path)r r4�Z
PYTHONPATHr#)r`�pathseprr%r-)rZpath1Zpath2rbrOrrrr
r
r�test_large_PYTHONPATH9s�z!CmdLineTest.test_large_PYTHONPATHcCs<d}td|dd�\}}}td|dd�\}}}|�||�dS)Nr�r4�r�F)Z
__isolatedr�)rrOZrc1Zout1Zerr1Zrc2Zout2Zerr2r
r
r� test_empty_PYTHONPATH_issue16309Hsz,CmdLineTest.test_empty_PYTHONPATH_issue16309cCs�dD]�}tj��}||d<tjtjdgtjtjtj|d�}d}|j	�
t|��d�d�|j	�
d�t
|�}t|��|d	�}|�||�qdS)
N)r#zlatin-1r�ZPYTHONIOENCODINGrW)rZrBrCrqua=é b=� c=𐀀 d=􏿿r#rrX�backslashreplace)r`rrrsr7rFr+r6rErtrZr[r#r-r�reprr%)r�encodingrqr
ryrZescapedr
r
r�test_displayhook_unencodableYs 
�z(CmdLineTest.test_displayhook_unencodablec	Cs�t�d���}tj�d�}|�|�d��|��|�d�t	j
tjd|f|t	j
d��}|��\}}Wd�n1sv0YWd�n1s�0Y|�|��|�dS)Nzwb+�ASCII)sabcsdefrr4)rZrB)�tempfileZNamedTemporaryFiler`�linesepr-r[r&r��seekr7rFr+r6rErGr?rL)rrOr�rZ�sepr�rBrCr
r
r�check_inputks

�HzCmdLineTest.check_inputcCs|�dd�dS)Nz-import sys; print(repr(sys.stdin.readline()))s'abc\n'�r�rr
r
r�test_stdin_readlinews�zCmdLineTest.test_stdin_readlinecCs|�dd�dS)Nzprint(repr(input()))s'abc'r�rr
r
r�test_builtin_input~s�zCmdLineTest.test_builtin_inputcCsTd}td|�\}}}tjdkr8|�d|�|�d|�n|�d|�|�d|�dS)Nz�if 1:
            import sys
            print(1)
            print(2)
            print(3, file=sys.stderr)
            print(4, file=sys.stderr)r4rls1
2
s3
4
s1
2
s3
4
)rr+�platformr?�rrOrrrr
r
r�test_output_newline�s
zCmdLineTest.test_output_newlinecCs4tdd�\}}}|�|�dd�d�|�d|�dS)Nr4�'r#�ignore�SyntaxErrorr)rrNr'r?r1r
r
r�test_unmached_quote�szCmdLineTest.test_unmached_quotecCsDd}td|�\}}}|�d|�|�d|�|�|�dd�d�dS)Nz�if 1:
            import os, sys, test.support
            test.support.SuppressCrashReport().__enter__()
            sys.stdout.write('x')
            os.close(sys.stdout.fileno())r4r�xr#r�z"Exception ignored in.*
OSError: .*)rr?rNr'r�r
r
r�test_stdout_flush_at_shutdown�s�z)CmdLineTest.test_stdout_flush_at_shutdowncCs$d}td|�\}}}|�d|�dS)Nzimport sys; sys.stdout.close()r4rr�r�r
r
r�test_closed_stdout�szCmdLineTest.test_closed_stdout�posixztest needs POSIX semanticsZvxworksz.test needs preexec support in subprocess.Popencsfdj�d�}�fdd�}tjtjdd|gtjtjtj|d�}|��\}}|�|d�|�|jd	�dS)
Nz�if 1:
            import os, sys
            for i, s in enumerate({streams}):
                if getattr(sys, s) is not None:
                    os._exit(i + 1)
            os._exit(42)��streamscs:d�vrt�d�d�vr$t�d�d�vr6t�d�dS)NrZrrBr"rCr*)r`rHr
r�r
r�preexec�s

z+CmdLineTest._test_no_stdio.<locals>.preexecr3r4)rZrBrCZ
preexec_fnr�*)	�formatr7rFr+r6rErGr?r)rr�rOr�r
rrr
r�r�_test_no_stdio�s��zCmdLineTest._test_no_stdiocCs|�dg�dS)NrZ�r�rr
r
r�
test_no_stdin�szCmdLineTest.test_no_stdincCs|�dg�dS)NrBr�rr
r
r�test_no_stdout�szCmdLineTest.test_no_stdoutcCs|�dg�dS)NrCr�rr
r
r�test_no_stderr�szCmdLineTest.test_no_stderrcCs|�gd��dS)N)rZrBrCr�rr
r
r�test_no_std_streams�szCmdLineTest.test_no_std_streamscCs.|�d�g}tj�dd�dkr:ttj�}|d=d|d<ni}td�D]6}d}td|fi|��\}}}|�|d	�|�|�qFt	t
|��}|jt|�d
d�
|�d�d
}td|dd�\}}}|�d|�td|dd�\}}}|�d|�td|dd�\}}}|�d|�tdd|dd�\}}}|�d|�dS)Nz-R�PYTHONHASHSEEDZrandomrTZ
__cleanenv�zprint(hash("spam"))r4rr"z83 runs produced an identical random hash  for "spam": {})�msgz<import sys; print("random is", sys.flags.hash_randomization)r��r�srandom is 1rpsrandom is 0)rr`rr�getr��rangerr?�append�sorted�setZ
assertGreater�lenr�r%)rZhashesrq�irOrrrr
r
r�test_hash_randomization�s6


��z#CmdLineTest.test_hash_randomizationcCsbtj}|�tj|�t|d��(}td|d�td|d�Wd�n1sL0Yt|�dS)N�wz
import sys)�filezdel sys.modules['__main__'])rZTESTFNZ
addCleanup�unlink�open�printr)r�filenameZscriptr
r
r�test_del___main__�s*zCmdLineTest.test_del___main__cCs�tdd�\}}}|�d|�|�|���d�d�|�d|�tddd�\}}}|�d|�|�|���d�d�|�d|�tdddd�\}}}|�d|�|�d|�|�|���d�d�|�d|�dS)	Nr3z-zsUnknown option: -zr"r)Zwithoutz-asUnknown option: -a)rr%r?r$�countrr1r
r
r�test_unknown_options
sz CmdLineTest.test_unknown_options�6Cannot run -I tests when PYTHON env vars are required.c	Cs<|�d�|�d�tddddd�\}}}|�|��d�t����}tj�|d�}tj�|d	�}t	|d
��}|�
d�Wd�n1s�0Yt	|d
��$}|�
d�|�
d
�Wd�n1s�0Y|jtj
tjtj|g|tjd�tjtjd|g|d�}|�|��d�Wd�n1�s.0YdS)N�-Iz-IEsr4zSfrom sys import flags as f; print(f.no_user_site, f.ignore_environment, f.isolated)r�)Zdummyvars1 1 1zuuid.pyzmain.pyr�z)raise RuntimeError('isolated mode test')
zimport uuid
zprint('ok')
)�cwdrC)r�sok)rrr?�stripr�temp_cwdr`rbr&r�r[ZassertRaisesr7ZCalledProcessErrorr8r+r6ZDEVNULL)rrrrZtmpdirZfake�main�fr
r
r�test_isolatedmodes0

�
(
(
��zCmdLineTest.test_isolatedmodec	Cs~dD]t\}}t||||d�}tt|��}d|�d|�d�}|j|d��"td|fi|��Wd�q1sn0YqdS)N))r�r)rTr")ryr")�2r*�ZPYTHONDEBUGZPYTHONOPTIMIZEZPYTHONDONTWRITEBYTECODEZ
PYTHONVERBOSEz�import sys; sys.stderr.write(str(sys.flags)); sys.exit(not (
                    sys.flags.debug == sys.flags.optimize ==
                    sys.flags.verbose ==
                    z:
                    and sys.flags.dont_write_bytecode == z
                )))Zenvar_valuer4)r��int�boolr�r)r�valuer��env_vars�dont_write_bytecoderOr
r
r�test_sys_flags_set7s ����
zCmdLineTest.test_sys_flags_setc

Cst�}dddddd|dfg}|D]�\}}}|dur6dn
d|�d	�}d
|�d�}d|g}|durbind
|i}	||ur�ddg|dd�<n|dur�dd|��g|dd�<|j||d��Ft���t|i|	��Wd�n1s�0YWd�q 1s�0Yq dS)N)NNN)�fooNr�)N�barr�)r�r�r�)r�r�Nr�zis Nonez== "�"z,import sys; sys.exit(not sys.pycache_prefix �)r4ZPYTHONPYCACHEPREFIXrK�pycache_prefixrzpycache_prefix=)�envval�opt)�objectr�rr�r)
rZNO_VALUEZcasesr�r�r�Z
exp_clauserOr:rqr
r
r�test_set_pycache_prefixNs(�	
z#CmdLineTest.test_set_pycache_prefixT)�check_exitcode�xdevcGs�ttj�}|�dd�|�dd�|�dd�|rFtjddg|�R}ntjg|�R}tj|tjtj	d|d�}|r�|�
|jd|�|j�
�S)	N�PYTHONWARNINGS�
PYTHONDEVMODE�PYTHONMALLOCrKZdevT�rBrC�universal_newlinesrqr)r�r`rr�popr+r6r7r{rErtr?rrBrL)rr�r�r:rqr�r
r
r�run_xdevhs 
�zCmdLineTest.run_xdevcCs�d}|jd|dd�}|�|d�|�d|�}|�|d�d}trFd}nd	}|�d|�}|�||�|�d
d|�}|�|d|���|�dd|�}|�|d
|���|�dd|�}|�|d|���zddl}Wnty�Yn`0d}t��� |jd|dd�}Wd�n1�s0Yt���r0d}nd}|�||�zddl}Wnt�y`Yn0d}|�d|�}|�|d�dS)N�%import sys; print(sys.flags.dev_mode)r4F)r��False�Truez\import warnings; print(' '.join('%s::%s' % (f[0], f[2].__name__) for f in warnings.filters))zdefault::Warningz�default::Warning default::DeprecationWarning ignore::DeprecationWarning ignore::PendingDeprecationWarning ignore::ImportWarning ignore::ResourceWarningz-bzdefault::BytesWarning �-bbzerror::BytesWarning z-Werrorzerror::Warning r�<import _testcapi; print(_testcapi.pymem_getallocatorsname()))r��pymalloc_debug�malloc_debugz5import faulthandler; print(faulthandler.is_enabled()))	r�r?rM�	_testcapi�ImportErrorrZSuppressCrashReport�
with_pymalloc�faulthandler)rrOr�expected_filtersr�Z
alloc_namerr
r
r�	test_xdev{sF
0
zCmdLineTest.test_xdevFcCsx|r
d}nd}|d7}tjd|dd|f}ttj�}|�dd�||d<tj|tjtj	d	|d
�}|�
|jd|�|j�
�S)Nz}import sys; from test.support import import_fresh_module; warnings = import_fresh_module('warnings', blocked=['_warnings']); zimport sys, warnings; zKprint(' '.join('%s::%s' % (f[0], f[2].__name__) for f in warnings.filters))z-Wr�r4r�r�Tr�r)r+r6r�r`rrr�r7r{rErtr?rrBrL)rZcmdline_optionZenvvar�
use_pywarningrOr:rqr�r
r
r�check_warnings_filters�s 
�z"CmdLineTest.check_warnings_filterscCsHd}ts|d7}|�dd�}|�||�|jdddd�}|�||�dS)Nz9error::BytesWarning once::UserWarning always::UserWarningz� default::DeprecationWarning ignore::DeprecationWarning ignore::PendingDeprecationWarning ignore::ImportWarning ignore::ResourceWarningzonce::UserWarningzalways::UserWarningT)r)rMrr?)rrrr
r
r�test_warnings_filter_precedence�s��z+CmdLineTest.test_warnings_filter_precedencecCs�d}ttj�}|�dd�|dur,||d<n|�dd�tjd|f}tj|tjtj	d|d�}|�
|j��|�|�
|j
d�dS)Nr�r�r�r4Tr�r)r�r`rrr�r+r6r7r{rErtr?rBrLr)r�env_var�namerOrqr:r�r
r
r�check_pythonmalloc�s

�zCmdLineTest.check_pythonmallocc	Cs�t��}|rtrdnd}d}ntr&dnd}d}d|fd|fddg}|rP|�d�|D]B\}}|j||d	��|�||�Wd�qT1s�0YqTdS)
Nr��pymallocr��malloc�debug)rr)r�r�))rr)r�r�)rr	)rrrMrDr�r
)rrZdefault_nameZdefault_name_debugZtestsrr	r
r
r�test_pythonmalloc�s �
zCmdLineTest.test_pythonmalloccCs�d}ttj�}|�dd�tjd|f}tj|tjd|d�}|�	|j
��d�|�	|jd|�d|d<tj|tjd|d�}|�	|j
��d	�|�	|jd|�dS)
Nr�r�r4T)rBr�rqr�rrTr�)
r�r`rrr�r+r6r7r{rEr?rBrLr)rrOrqr:r�r
r
r�test_pythondevmode_env
s

�
�z"CmdLineTest.test_pythondevmode_envz!bpo-32457 only applies on WindowscCsbtjddf}tj�tj�\}}|d|}tj|tj|d�}|�|j	d|�|�|j
��d�dS)Nr4zprint(0)z\.\.\.\)rBr6r�0)r+r6r`rb�splitr7r{rEr?rrBr�)rr:�prefixZexer6r�r
r
r�test_argv0_normalizations
�z$CmdLineTest.test_argv0_normalizationcCsNtjddg}tj|tjtjdd�}d}|�|j�|�|j�|�|j	d�dS)Nr�z--unknown-optionT)rBrCryz'unknown option --unknown-option
usage: r)
r+r6r7r{rErrCr.ZassertNotEqualr)rr:r��err_msgr
r
r�test_parsing_error(s�zCmdLineTest.test_parsing_errorcCsBd}tddd|�tddd|�tddd|�tddd|dd�td|d	d�td|d
d�dd�}td|�}|�||�d
t��f�tddd|�}|�||�d�tddd|�}|�||�d�tddd|�}|�||�d�td|dd�}|�||�d�td|dd�}|�||�d�tddd|dd�}|�||�d�dS)NzMimport sys; print(sys.flags.int_max_str_digits, sys.get_int_max_str_digits())rK�int_max_str_digitsr4zint_max_str_digits=foozint_max_str_digits=100Z4000)ZPYTHONINTMAXSTRDIGITSr�Z100cSs&|j���d�}tdd�|��D��S)Nr�css|]}t|�VqdSr)r�)�.0r�r
r
r�	<genexpr>@rzGCmdLineTest.test_int_max_str_digits.<locals>.res2int.<locals>.<genexpr>)rr�r'�tupler)�resrr
r
r�res2int>sz4CmdLineTest.test_int_max_str_digits.<locals>.res2intrYzint_max_str_digits=0)rrzint_max_str_digits=4000)�rzint_max_str_digits=100000)順rrpzint_max_str_digits=6000)�pr)rrr?r+�get_int_max_str_digits)rrOrrr
r
r�test_int_max_str_digits2s6
�
�z#CmdLineTest.test_int_max_str_digitsN)F)A�__name__�
__module__�__qualname__rrrr!r)r0r2r_�skipIfrr@rPrVr]rfrhZ
skipUnlessrrirkr+r�rwr�Z
is_androidr�r�r�r�r�r�r�r�r�r�r�r�r�r�r`r	r�r�r�r�r�r�r�r�r�r�r�r�rrrr
rrrrr r
r
r
rrs�	�
	

�
!�
+�

	�%�
;
�


rr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�IgnoreEnvironmentTestcKsd�|�}tdd|fi|��S)Nz@import sys; sys.stderr.write(str(sys.flags)); sys.exit(not ({}))r3r4)r�r)rZ	predicater�rOr
r
r�run_ignoring_varsZs
z'IgnoreEnvironmentTest.run_ignoring_varscCsd}|jd�|�|d�dS)NZshould_be_ignoredz'{}' not in sys.pathr�)r&r�)rrbr
r
r�test_ignore_PYTHONPATHbs�z,IgnoreEnvironmentTest.test_ignore_PYTHONPATHcCs|jddd�dS)Nz!sys.flags.hash_randomization == 1rpr��r&rr
r
r�test_ignore_PYTHONHASHSEEDgs�z0IgnoreEnvironmentTest.test_ignore_PYTHONHASHSEEDcCsd}|j|ddddd�dS)Nz�
            (sys.flags.debug == sys.flags.optimize ==
             sys.flags.dont_write_bytecode == sys.flags.verbose == 0)
        rTr�r()rZexpected_outcomer
r
r�test_sys_flags_not_setks�z,IgnoreEnvironmentTest.test_sys_flags_not_setN)r!r"r#r&r'r)r*r
r
r
rr%Vsr%cCst��dSr)rZ
reap_childrenr
r
r
r�tearDownModulezsr+�__main__)r`r7r+r�r�r_r^rZtest.support.script_helperrrrrr�hasattrrMrZTestCaserr$r%r+r!r�r
r
r
r�<module>s.
@�"