ó
ØÆ÷Xc           @  sz  d  d l  m Z m Z d  d l Z d  d l Z d  d l m Z m Z d  d l m	 Z	 m
 Z
 d  d l m Z d  d l m Z d  d l m Z m Z m Z m Z d  d l m Z d  d	 l m Z m Z d  d
 l m Z m Z d d „ Z d a t a d Z d „  Z e ƒ  Z  d e f d „  ƒ  YZ! d e! f d „  ƒ  YZ" d e! f d „  ƒ  YZ# d e f d „  ƒ  YZ$ e% d k rve ƒ  n  d S(   iÿÿÿÿ(   t   divisiont   print_functionN(   t   mkstempt   mkdtemp(   t   Popent   PIPE(   t   DistutilsError(   t	   ccompiler(   t   TestCaset   run_module_suitet   assert_t   assert_equal(   t   skipif(   t   system_infot   ConfigParser(   t   default_lib_dirst   default_include_dirsi   c         C  s-   i t  d 6t d 6j |  j ƒ  t ƒ } | ƒ  S(   sg   
    notfound_action:
      0 - do nothing
      1 - display warning message
      2 - raise error
    t   temp1t   temp2(   t	   TestTemp1t	   TestTemp2t   gett   lowert   test_system_info(   t   namet   notfound_actiont   cl(    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt	   get_class   s    

sZ  
[ALL]
library_dirs = {dir1:s}{pathsep:s}{dir2:s}
libraries = {lib1:s},{lib2:s}
extra_compile_args = -I/fake/directory
runtime_library_dirs = {dir1:s}

[temp1]
library_dirs = {dir1:s}
libraries = {lib1:s}
runtime_library_dirs = {dir1:s}

[temp2]
library_dirs = {dir2:s}
libraries = {lib2:s}
extra_link_args = -Wl,-rpath={lib2:s}
rpath = {dir2:s}
s·   
/* This file is generated from numpy/distutils/testing/test_system_info.py */
#include<stdio.h>
void foo(void) {
   printf("Hello foo");
}
void bar(void) {
   printf("Hello bar");
}
c          C  sµ   t  j ƒ  }  y |  j } Wn@ t k
 r[ y |  j ƒ  Wn t k
 rK t SX|  j g } n Xy@ t | d t	 d t	 ƒ} | j
 j ƒ  | j j ƒ  | j ƒ  Wn t k
 r° t SXt S(   s?    Return True if there appears to be an executable compiler
    t   stdoutt   stderr(   R   t   new_compilert   compilert   AttributeErrort
   initializeR   t   Falset   ccR   R   R   t   closeR   t   waitt   OSErrort   True(   R   t   cmdt   p(    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   have_compiler;   s"    R   c           B  s#   e  Z e e d  d „ Z d „  Z RS(   i   c         C  sf   i  |  j  _ g  |  _ i d d 6d d 6d d 6d d 6d d 6d d 6d d	 6d d
 6} t | ƒ |  _ d  S(   Nt    t   library_dirst   include_dirst   runtime_library_dirst   rpatht   src_dirst   0t   search_static_firstt   extra_compile_argst   extra_link_args(   t	   __class__t   infot   local_prefixesR   t   cp(   t   selfR   R   t	   verbosityt   defaults(    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   __init__V   s    	

c         C  s   i | d 6| d 6} | S(   s-   Override _check_libs to return with all dirs t	   librariesR,   (    (   R9   t   lib_dirst   libst   opt_libst   extsR6   (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   _check_libsi   s    (   t   __name__t
   __module__R   R   R<   RB   (    (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyR   T   s   R   c           B  s   e  Z d  Z RS(   R   (   RC   RD   t   section(    (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyR   o   s   R   c           B  s   e  Z d  Z RS(   R   (   RC   RD   RE   (    (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyR   s   s   t   TestSystemInfoReadingc           B  s   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z e e ƒ d „  ƒ Z	 e e ƒ e d e
 e j ƒ  ƒ k ƒ d „  ƒ ƒ Z RS(   c         C  sº  t  ƒ  |  _ t j j |  j d ƒ |  _ t j j |  j d ƒ |  _ t  ƒ  |  _ t j j |  j d ƒ |  _ t j j |  j d ƒ |  _	 t
 j i |  j d 6|  j d 6|  j d 6|  j	 d 6t j d	 6  a t ƒ  \ } |  _ t j | ƒ t |  j d
 ƒ  } | j t ƒ Wd QXt |  j d
 ƒ  } | j t ƒ Wd QXt |  j d
 ƒ  } | j t ƒ Wd QXd „  } | t d ƒ |  j ƒ |  _ | t d ƒ |  j ƒ |  _ | t d ƒ |  j ƒ |  _ d S(   s    Create the libraries s   foo.cs	   libfoo.sos   bar.cs	   libbar.sot   dir1t   lib1t   dir2t   lib2t   pathsept   wNc         S  s   | g |  _  |  j ƒ  |  S(   N(   t   filest   parse_config_files(   t   ct   site_cfg(    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   site_and_parse—   s    
t   defaultR   R   (   R   t   _dir1t   ost   patht   joint   _src1t   _lib1t   _dir2t   _src2t   _lib2t   simple_sitet   formatRK   RP   R   t   _sitecfgR$   t   opent   writet   fakelib_c_textR   t	   c_defaultt   c_temp1t   c_temp2(   R9   t   fdRQ   (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   setUpy   s0    	



	c         C  s^   y t  j |  j ƒ Wn n Xy t  j |  j ƒ Wn n Xy t j |  j ƒ Wn n Xd  S(   N(   t   shutilt   rmtreeRS   RY   RT   t   removeR^   (   R9   (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   tearDownŸ   s    c         C  s„   |  j  } t | j ƒ  |  j |  j g ƒ t | j ƒ  |  j |  j g ƒ t | j ƒ  |  j g ƒ | j	 ƒ  } t | d d g ƒ d  S(   NR3   s   -I/fake/directory(
   Rb   R   t   get_lib_dirsRS   RY   t   get_librariesRX   R[   t   get_runtime_lib_dirst   calc_extra_info(   R9   t   tsit   extra(    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   test_all®   s    	c         C  sX   |  j  } t | j ƒ  |  j g ƒ t | j ƒ  |  j g ƒ t | j ƒ  |  j g ƒ d  S(   N(   Rc   R   Rk   RS   Rl   RX   Rm   (   R9   Ro   (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt
   test_temp1·   s    	c         C  s…   |  j  } t | j ƒ  |  j g ƒ t | j ƒ  |  j g ƒ t | j d d ƒ |  j g ƒ | j ƒ  } t | d d |  j g ƒ d  S(   Nt   keyR/   R4   s   -Wl,-rpath=(   Rd   R   Rk   RY   Rl   R[   Rm   Rn   (   R9   Ro   Rp   (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt
   test_temp2¾   s    	c         C  s¯   t  j ƒ  } t j ƒ  } z‚ t j |  j ƒ | j t j j |  j	 ƒ g d |  j ƒt
 t j j |  j	 j d d ƒ ƒ p• t j j |  j	 j d d ƒ ƒ ƒ Wd  t j | ƒ Xd  S(   Nt
   output_dirs   .cs   .os   .obj(   R   R   RT   t   getcwdt   chdirRS   t   compileRU   t   basenameRW   R
   t   isfilet   replace(   R9   RO   t   previousDir(    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   test_compile1È   s    ($&t   msvcc         C  s­   |  j  } t j ƒ  } | j ƒ  d } t j ƒ  } zg t j |  j ƒ | j t j	 j
 |  j ƒ g d |  j d | ƒt t j	 j |  j j d d ƒ ƒ ƒ Wd  t j | ƒ Xd  S(   NR4   Ru   t   extra_postargss   .cs   .o(   Rd   R   R   Rn   RT   Rv   Rw   RY   Rx   RU   Ry   RZ   R
   Rz   R{   (   R9   Ro   RO   R4   R|   (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   test_compile2×   s    	')(   RC   RD   Rf   Rj   Rq   Rr   Rt   R   t   HAVE_COMPILERR}   t   reprR   R   R€   (    (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyRF   w   s   	&					

t   __main__(&   t
   __future__R    R   RT   Rg   t   tempfileR   R   t
   subprocessR   R   t   distutils.errorsR   t   numpy.distutilsR   t   numpy.testingR   R	   R
   R   t   numpy.testing.decoratorsR   t   numpy.distutils.system_infoR   R   R   R   R   R\   RP   Ra   R*   R   R   R   R   RF   RC   (    (    (    sE   /tmp/pip-build-X4mzal/numpy/numpy/distutils/tests/test_system_info.pyt   <module>   s,   "		s