[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