[pypy-svn] r54824 - in pypy/dist/pypy/translator/tool: . test

arigo at codespeak.net arigo at codespeak.net
Sat May 17 15:06:09 CEST 2008


Author: arigo
Date: Sat May 17 15:06:05 2008
New Revision: 54824

Modified:
   pypy/dist/pypy/translator/tool/cbuild.py
   pypy/dist/pypy/translator/tool/test/test_cbuild.py
Log:
Polishing.


Modified: pypy/dist/pypy/translator/tool/cbuild.py
==============================================================================
--- pypy/dist/pypy/translator/tool/cbuild.py	(original)
+++ pypy/dist/pypy/translator/tool/cbuild.py	Sat May 17 15:06:05 2008
@@ -91,9 +91,13 @@
     def from_config_tool(cls, execonfigtool):
         """Returns a new ExternalCompilationInfo instance by executing
         the 'execonfigtool' with --cflags and --libs arguments."""
-        execonfigtool = str(execonfigtool)
-        cflags = py.process.cmdexec([execonfigtool, '--cflags'])
-        libs = py.process.cmdexec([execonfigtool, '--libs'])
+        path = py.path.local.sysfind(execonfigtool)
+        if not path:
+            raise ImportError("cannot find %r" % (execonfigtool,))
+            # we raise ImportError to be nice to the pypy.config.pypyoption
+            # logic of skipping modules depending on non-installed libs
+        cflags = py.process.cmdexec([str(path), '--cflags'])
+        libs = py.process.cmdexec([str(path), '--libs'])
         return cls.from_compiler_flags(cflags + ' ' + libs)
     from_config_tool = classmethod(from_config_tool)
 

Modified: pypy/dist/pypy/translator/tool/test/test_cbuild.py
==============================================================================
--- pypy/dist/pypy/translator/tool/test/test_cbuild.py	(original)
+++ pypy/dist/pypy/translator/tool/test/test_cbuild.py	Sat May 17 15:06:05 2008
@@ -144,7 +144,10 @@
         sdlconfig = py.path.local.sysfind('sdl-config')
         if not sdlconfig:
             py.test.skip("sdl-config not installed")
-        eci = ExternalCompilationInfo.from_config_tool(sdlconfig)
+        eci = ExternalCompilationInfo.from_config_tool('sdl-config')
         assert 'SDL' in eci.libraries
-        eci2 = ExternalCompilationInfo.from_config_tool(str(sdlconfig))
-        assert eci2 == eci
+
+    def test_from_missing_config_tool(self):
+        py.test.raises(ImportError,
+                       ExternalCompilationInfo.from_config_tool,
+                       'dxowqbncpqympqhe-config')



More information about the Pypy-commit mailing list