
    e                         d Z ddlZddlZddlZddlZddlmZmZ ddlm	Z	 ddl
mZ ddlmZ  G d dej        ej        ej                  Zed	k    r ej                     dS dS )
z'Tests for distutils.command.build_clib.    N)missing_compiler_executablerequires_subprocess)
build_clib)DistutilsSetupError)supportc                        e Zd Z fdZ fdZd Zd Zd Zd Z e	j
        ej        dk    d           e            d	                         Z xZS )
BuildCLibTestCasec                     t                                                       t          t          j                  | _        d S N)supersetUpdict	sysconfig_CONFIG_VARS_backup_CONFIG_VARSself	__class__s    1  /home/conda/feedstock_root/build_artifacts/python-split_1708115622739/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.11/distutils/tests/test_build_clib.pyr   zBuildCLibTestCase.setUp   s-    #'	(>#?#?       c                     t                                                       t          j                                         t          j                            | j                   d S r   )r   tearDownr   r   clearupdater   r   s    r   r   zBuildCLibTestCase.tearDown   sN    $$&&&%%d&>?????r   c                    |                                  \  }}t          |          }|                     t          |j        d           |                     t          |j        ddg           |                     t          |j        ddg           |                     t          |j        ddg           |                     t          |j        di fd	g           di fdd
difg}|                    |           d S )Nfoofoo1foo2)   r   )namer   )r    r   )zanother/namer   r    )anotherr   okgood)create_distr   assertRaisesr   check_library_list)r   pkg_dirdistcmdlibss        r   test_check_library_distz)BuildCLibTestCase.test_check_library_dist   s(   ((** 	-s/EuMMM 	-s/E!6*	, 	, 	,
 	-s/E&(89	; 	; 	; 	-s/E+35	6 	6 	6
 	-s/E"B<.0	1 	1 	1
 vf~67t$$$$$r   c                 T   |                                  \  }}t          |          }di fg|_        |                     t          |j                   dddifg|_        |                     t          |j                   ddddgifg|_        |                     |                                ddg           dddifg|_        |                     |                                ddg           dddifdddd	gifg|_        |                     |                                g d
           d S )Nr    sourcesr   ab)r.   r/   name2cd)r.   r/   r1   r2   )r$   r   	librariesr%   r   get_source_filesassertEqualr   r'   r(   r)   s       r   test_get_source_filesz'BuildCLibTestCase.test_get_source_files:   sH   ((** !"-s/CDDD 9a.12-s/CDDD 9sCj"9:;--//#s<<< 9j"9:;--//#s<<< 9j"9:!ISz#:;=--//1E1E1EFFFFFr   c                 z   |                                  \  }}t          |          } G d d          } |            |_        dddifg}|                     t          |j        |           ddt                      ifg}|                    |           ddt                      ifg}|                    |           d S )Nc                       e Zd Zd ZeZdS )<BuildCLibTestCase.test_build_libraries.<locals>.FakeCompilerc                      d S r    )argskws     r   compilezDBuildCLibTestCase.test_build_libraries.<locals>.FakeCompiler.compileU   s    r   N)__name__
__module____qualname__r?   create_static_libr<   r   r   FakeCompilerr:   T   s%           'r   rD   r    r-   notvalid)r$   r   compilerr%   r   build_librarieslisttuple)r   r'   r(   r)   rD   libs         r   test_build_librariesz&BuildCLibTestCase.test_build_librariesP   s    ((**	( 	( 	( 	( 	( 	( 	( 	(
 $|~~ J/01-s/BCHHHDFF+,-C   EGG,-.C     r   c                    |                                  \  }}t          |          }d|_        |                                 |                     |j        dg           d |_        |                                 |                     |j        g            d|j        _        |                     t          |j                   d S )Nzone-dirWONTWORK)	r$   r   include_dirsfinalize_optionsr5   distributionr3   r%   r   r6   s       r   test_finalize_optionsz'BuildCLibTestCase.test_finalize_optionse   s    ((**$)I;777)2...%/"-s/CDDDDDr   win32zcan't test on Windowsc                 $   |                                  \  }}t          |          }t          j                            |d          }|                     |d           dd|gifg|_        t          j                            |d          }t          j        |           ||_        ||_        t                      }|| 
                    d|z             |                                 |                     dt          j        |                     d S )Nzfoo.czint main(void) { return 1;}
r   r-   buildzThe %r command is not foundzlibfoo.a)r$   r   ospathjoin
write_filer3   mkdir
build_tempr   skipTestrunassertInlistdir)r   r'   r(   r)   foo_crZ   ccmds          r   test_runzBuildCLibTestCase.test_runt   s     ((**Wg..>???)eW!567W\\'733

## +,,MM7$>??? 				 	j"*Z"8"899999r   )r@   rA   rB   r   r   r+   r7   rK   rQ   unittestskipIfsysplatformr   ra   __classcell__)r   s   @r   r	   r	      s        @ @ @ @ @@ @ @ @ @
% % %<G G G,! ! !*E E E X_S\W,.EFF: :  GF: : : : :r   r	   __main__)__doc__rb   rU   rd   r   test.supportr   r   distutils.command.build_clibr   distutils.errorsr   distutils.testsr   TempdirManagerLoggingSilencerTestCaser	   r@   mainr<   r   r   <module>rq      s    - -  				 



            4 3 3 3 3 3 0 0 0 0 0 0 # # # # # #~: ~: ~: ~: ~:./ )~: ~: ~:@ zHMOOOOO r   