HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/distutils/tests/__pycache__/test_build_ext.cpython-310.pyc
o

�i]Q�@s�ddlZddlZddlmZddlZddlmZddlmZddl	m
Z
ddlmZm
Z
mZmZddlmZddlmZmZmZmZddlZdd	lmZdd
lmZddlmZdaGd
d�dee
ej�Z Gdd�de �Z!dd�Z"e#dkr|e�$e#�dSdS)�N)�StringIO)�Distribution��	build_ext)�	sysconfig)�TempdirManager�LoggingSilencer�copy_xxmodule_c�fixup_build_ext)�	Extension)�CompileError�DistutilsPlatformError�DistutilsSetupError�UnknownFileError)�support)�	os_helper)�assert_python_okFcs�eZdZ�fdd�Z�fdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Ze�ejdkd�dd ��Ze�ejdkd�d!d"��Ze�ejdkd�d#d$��Zd%d&�Z�ZS)'�BuildExtTestCasecs|tt|���|��|_ddl}|j|_|��|_ddlm	}|j|_t
tj�|_
t�|j�}|��|�|jddd�dS�Nrr)�superr�setUp�mkdtemp�tmp_dir�site�	USER_BASE�
old_user_base�distutils.commandr�dictr�_config_vars�old_config_varsr�
change_cwd�	__enter__�
addCleanup�__exit__)�selfrrr ��	__class__��;/usr/local/lib/python3.10/distutils/tests/test_build_ext.pyrs

zBuildExtTestCase.setUpcsNddl}|j|_ddlm}|j|_tj��tj�|j	�t
t|���dSr)
rrrrrrr�clear�updaterrr�tearDown)r$rrr%r'r(r+/s
zBuildExtTestCase.tearDowncOst|i|��S�Nr)r$�args�kwargsr'r'r(r8szBuildExtTestCase.build_extcCs�t��}|dur|�d|�t|j�tj�|jd�}td|g�}t	d|gd��}|j|_
|�|�}t|�|j|_
|j|_tj}tjsIt�t_z
|��|��W|t_n|t_wtre|�dt�nt|�jat�d|j�d��}td|�dS)	N�The %r command is not foundz
xxmodule.c�xx��nameZext_moduleszAlready tested in %sz
            tmp_dir = ai

            import sys
            import unittest
            from test import support

            sys.path.insert(0, tmp_dir)
            import xx

            class Tests(unittest.TestCase):
                def test_xx(self):
                    for attr in ('error', 'foo', 'new', 'roj'):
                        self.assertTrue(hasattr(xx, attr))

                    self.assertEqual(xx.foo(2, 5), 7)
                    self.assertEqual(xx.foo(13,15), 28)
                    self.assertEqual(xx.new().demo(), None)
                    if support.HAVE_DOCSTRINGS:
                        doc = 'This is a template module just for instruction.'
                        self.assertEqual(xx.__doc__, doc)
                    self.assertIsInstance(xx.Null(), xx.Null)
                    self.assertIsInstance(xx.Str(), xx.Str)


            unittest.main()
        z-c)r�missing_compiler_executable�skipTestr	r�os�path�joinrr�package_dirrr
�	build_lib�
build_temp�sys�stdout�verboser�ensure_finalized�run�ALREADY_TESTED�type�__name__�textwrap�dedentr)r$�cmdZxx_cZxx_ext�dist�
old_stdout�coder'r'r(�test_build_ext;s4




�zBuildExtTestCase.test_build_extc	Cs�tddi�}|�|�}tj}dt_ddlm}|�d�}d|d<z|��W|t_|dur1|d=n||d<n|t_|durA|d=w||d<w|�t	|j
�d�dS)Nr2r0Zsunosr)rZPy_ENABLE_SHARED�)rrr;�platformZdistutils.sysconfigr�getr>Z
assertGreater�len�library_dirs)r$rFrE�oldrZold_varr'r'r(�test_solaris_enable_sharedvs$



�z+BuildExtTestCase.test_solaris_enable_sharedcCs�ddl}tddi�}|�|�}dd�|jD�}|�d|�d|_tj�|j	d�}tj�|j	d	�}t�
|�t�
|�|��|�||j�|�||j
�|�||j�dS)
Nrr2r0cSsg|]\}}}|�qSr'r')�.0r2ZshortZlabler'r'r(�
<listcomp>�sz3BuildExtTestCase.test_user_site.<locals>.<listcomp>�userrJ�libZinclude)rrrZuser_options�assertInrSr5r6r7r�mkdirr>rN�rpath�include_dirs)r$rrFrE�optionsrTZinclr'r'r(�test_user_site�s 
�

zBuildExtTestCase.test_user_sitecCs�tddgdd�g}td|d��}|�|�}|��|�ttf|j�tddgdd�g}td|d��}|�|�}|��|��dS)N�foo�xxxF�Zoptionalr0r1T)rrrr>�assertRaisesrrr?�r$�modulesrFrEr'r'r(�test_optional_extension�s

�
z(BuildExtTestCase.test_optional_extensioncCs�tddgdd�g}td|d��}|�|�}|��t��}|�tjj	�D]	}|�
||j�q$tjdd�}|�tjj	�D]	}|�
||j�q;|�|�}d	|_|��|�
|jgd
��|�|�}dtj	|_|��|�
d|j�|�
d
|j�|�|�}dtj	|_|��|�
|jddg�t|�}d|_|��|�
|jgd��|�|�}d|_|��|�
|jddg�|�|�}d|_|��|�
|jddg�|�|�}d|_|��|�
|jg�|�|�}d|_|��|�
|jddg�dS)Nr[r\Fr]r0r1rJ)Z
plat_specificzmy_lib, other_lib lastlib)Zmy_libZ	other_libZlastlibzmy_lib_dir%sother_lib_dirZ
my_lib_dirZ
other_lib_dirzone%stwo�one�twoz
one two,three)rbrcZthreezone,two)rb�1)rcrdz1 2rd�2)rrr�finalize_optionsrZget_python_inc�splitr5r6�pathseprUrX�	libraries�assertEqualrNrWZlink_objectsZdefineZundefZ	swig_opts)r$r`rFrEZ
py_include�pZplat_py_includer'r'r(�test_finalize_options�sV







z&BuildExtTestCase.test_finalize_optionscCs0t�}|�|�}|��|�t|jd�ddg}|�t|j|�dg}|�t|j|�dg}|�t|j|�ddgddd�fg}|�|�|d	}|�|t�|�|j	d�|�
t|d
��ddgddddgd�fg}|�t|j|�d
dg|d	dd<|�|�|�|d	jdg�|�|d	j
d
g�dS)Nr[)�barr[rm)zfoo-bar�)�foo.barrnrornrm)�sourcesri�somerrq)rdre�3)rprirq�macros)rdre)rrrJrsrr)rrrfr^rZcheck_extensions_listZassertIsInstancerrjriZassertFalse�hasattrZundef_macrosZ
define_macros)r$rFrEZexts�extr'r'r(�test_check_extensions_lists8
�
�

�
z+BuildExtTestCase.test_check_extensions_listcCsHtddgdd�g}td|d��}|�|�}|��|�|��dg�dS)Nr[r\Fr]r0r1)rrrr>rjZget_source_filesr_r'r'r(�test_get_source_files0s

z&BuildExtTestCase.test_get_source_filescCs�tddgdd�tddgdd�g}td|d��}|�|�}|��|�|�|d	j�d
�|�|�|dj�d�|�|�|d	�d
g�|�|�|d�dg�dS)Nr[ZaaaFr]ufööZuuur0r1rzfoo(_d)?\..*rJuföö(_d)?\..*Z
PyInit_fooZPyInitU_f_gkaa)	rrrr>ZassertRegexZget_ext_filenamer2rjZget_export_symbolsr_r'r'r(�test_unicode_module_names7s�
z*BuildExtTestCase.test_unicode_module_namescCs8t�}|�|�}d|_|��|��|�|jd�dS)NZunix)rr�compilerr>r?rj)r$rFrEr'r'r(�test_compiler_optionDs
z%BuildExtTestCase.test_compiler_optionc	Csdt��}|dur|�d|�|��}tj�|d�}|�|d�td|gdd�}t	d|gd��}|�
|�}t|�|��|�
t|���d	�tj�|jd
�|_tj�|jd�|_tj�|���}t��}t�|�zd	|_|��|��d}Wt�|�nt�|�w|�tj�|��t�d
�}	|�|�|	��tj�|�}
|�
|
|�d|_d|_|��|��d}|�tj�|��|�|�|	��tj�|�}
|�
|
|j�|�d�}ddi|_ |�!d�}tj�"|�d}|�
||j�d	|_tj�|���}t��}t�|�z|�!d�}Wt�|�nt�|�wtj�"|�d}tj�"|�d}
|�
|
d�dS)Nr/zfoo.czvoid PyInit_foo(void) {}
r[Fr]r0r1rJZbuildZtemptr�
EXT_SUFFIX�build_pyrnrm���)#rr3r4rr5r6r7Z
write_filerrrr
r>rjrMZget_outputsrr9r:�realpath�getcwd�chdir�inplacer?Z
assertTrue�existsr�get_config_var�endswith�dirnamery�get_finalized_commandr8�get_ext_fullpathrg)r$rErZc_filerurFZ
other_tmp_dirZold_wdZso_fileZ
ext_suffixZso_dirr|r6Zlastdirr'r'r(�test_get_outputsOsh�






z!BuildExtTestCase.test_get_outputscCs.t�d�}t�}|�|�}d|_ddi|j_ddg|j_t�	�}tj
�|ddd|�}|�d�}|�
||�d	|_tj
�|d
�|_tj
�|d
dd|�}|�d�}|�
||�|�d�}i|_dd
g|j_|�d
�}tj
�|d
ddd|�}|�
||�d|_|�d
�}tj
�|ddd|�}|�
||�dS)Nr{rJrn�srcZlxmlz	lxml.htmlZetreez
lxml.etreerZtmpdirr|Ztwistedztwisted.runner.portmapZrunnerZportmap)rr�rrr�Zdistributionr8Zpackagesr5rr6r7r�rjr9r�)r$rurFrE�curdirZwantedr6r|r'r'r(�test_ext_fullpath�s6





�
z"BuildExtTestCase.test_ext_fullpath�darwinztest only relevant for MacOSXcCs|�dd�dS)Nz==)�_try_compile_deployment_target�r$r'r'r(�test_deployment_target_default�sz/BuildExtTestCase.test_deployment_target_defaultcCs|�t|jdd�dS)N�>z10.1)r^r
r�r�r'r'r(�test_deployment_target_too_low�s�z/BuildExtTestCase.test_deployment_target_too_lowcCsZt�d�}|r+dd�|�d�D�}|dd7<d�dd�|D��}|�d	|�dSdS)
N�MACOSX_DEPLOYMENT_TARGETcSsg|]}t|��qSr')�int)rQ�xr'r'r(rR�szEBuildExtTestCase.test_deployment_target_higher_ok.<locals>.<listcomp>�.r}rJcss�|]}t|�VqdSr,)�str)rQ�ir'r'r(�	<genexpr>�s�zDBuildExtTestCase.test_deployment_target_higher_ok.<locals>.<genexpr>�<)rr�rgr7r�)r$�	deptargetr'r'r(� test_deployment_target_higher_ok�s
�z1BuildExtTestCase.test_deployment_target_higher_okc
Cs�tj}|��t_|�ttd|�|durtj�d�rtjd=n|tjd<tj�|jd�}t	|d��}|�
t�d|��Wd�n1sFwYt
�d�}ttt|�d�dd���}|dd�d	krkd
|}nt|�dkrvd|}nd|}td
|gd|fgd�}td
|gd��}|j|_|�|�}|j|_|j|_ztj}	tjs�t�t_z|��|� �W|	t_WdS|	t_wt!y�|�"d�YdSw)N�environr�zdeptargetmodule.c�wz�                #include <AvailabilityMacros.h>

                int dummy;

                #if TARGET %s MAC_OS_X_VERSION_MIN_REQUIRED
                #else
                #error "Unexpected target"
                #endif

            r�r�)�
r�z	%02d%01d0z
%02d%02d00z%02d0000r�z-DTARGET=%s)Zextra_compile_argsr1z*Wrong deployment target during compilation)#r5r��copyr"�setattrrLr6r7r�open�writerCrDrr��tuple�mapr�rgrMrrr8rr9r:r;r<rr=rr>r?rZfail)
r$�operator�targetZorig_environZdeptarget_c�fpZ
deptarget_extrFrErGr'r'r(r��sZ
�



��



��

�z/BuildExtTestCase._try_compile_deployment_target)rB�
__module__�__qualname__rr+rrIrPrZrarlrvrwrxrzr�r��unittestZ
skipUnlessr;rKr�r�r�r��
__classcell__r'r'r%r(rs,	;H0
B'


rcseZdZ�fdd�Z�ZS)�ParallelBuildExtTestCasecst�j|i|��}d|_|S)NT)rrZparallel)r$r-r.rr%r'r(rsz"ParallelBuildExtTestCase.build_ext)rBr�r�rr�r'r'r%r(r�sr�cCs,t��}|�t�t��|�t�t��|Sr,)r�Z	TestSuiteZaddTestZ	makeSuiterr�)Zsuiter'r'r(�
test_suite"sr��__main__)%r;r5�iorrCZdistutils.corerZdistutils.command.build_extrZ	distutilsrZdistutils.tests.supportrrr	r
Zdistutils.extensionrZdistutils.errorsrr
rrr��testrZtest.supportrZtest.support.script_helperrr@ZTestCaserr�r�rBZrun_unittestr'r'r'r(�<module>s8��