[pypy-svn] r55871 - in pypy/dist/pypy/rlib/rsdl: . test

arigo at codespeak.net arigo at codespeak.net
Mon Jun 16 12:37:37 CEST 2008


Author: arigo
Date: Mon Jun 16 12:37:37 2008
New Revision: 55871

Added:
   pypy/dist/pypy/rlib/rsdl/eci.py
   pypy/dist/pypy/rlib/rsdl/test/conftest.py   (contents, props changed)
Modified:
   pypy/dist/pypy/rlib/rsdl/RSDL.py
Log:
Attempt to skip the rsdl tests if the sdl is not installed.


Modified: pypy/dist/pypy/rlib/rsdl/RSDL.py
==============================================================================
--- pypy/dist/pypy/rlib/rsdl/RSDL.py	(original)
+++ pypy/dist/pypy/rlib/rsdl/RSDL.py	Mon Jun 16 12:37:37 2008
@@ -1,36 +1,15 @@
 from pypy.rpython.lltypesystem import lltype, rffi
 from pypy.rpython.tool import rffi_platform as platform
-from pypy.translator.tool.cbuild import ExternalCompilationInfo
 from pypy.rlib.rsdl.constants import _constants
+from pypy.rlib.rsdl.eci import get_rsdl_compilation_info
 from pypy.rlib.objectmodel import we_are_translated
 import py
 import sys
 
-if sys.platform == 'darwin':
-    eci = ExternalCompilationInfo(
-        includes = ['SDL.h', 
-                    #'Init.h',
-                    #'SDLMain.m'
-                    #'SDLMain.h'*/
-                    ],
-        include_dirs = ['/Library/Frameworks/SDL.framework/Versions/A/Headers',
-                        #str(py.magic.autopath().dirpath().join('macosx-sdl-main'))
-                        ],
-        link_extra = [
-            str(py.magic.autopath().dirpath().join('macosx-sdl-main/SDLMain.m')),
-            #'macosx-sdl-main/SDLMain.m',
-            '-I', '/Library/Frameworks/SDL.framework/Versions/A/Headers',
-        ],
-        frameworks = ['SDL', 'Cocoa']
-    )
-else:
-    eci = ExternalCompilationInfo(
-        includes=['SDL.h'],
-        )
-    eci = eci.merge(ExternalCompilationInfo.from_config_tool('sdl-config'))
-
 # ------------------------------------------------------------------------------
 
+eci = get_rsdl_compilation_info()
+
 def external(name, args, result):
     return rffi.llexternal(name, args, result, compilation_info=eci)
 

Added: pypy/dist/pypy/rlib/rsdl/eci.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/rlib/rsdl/eci.py	Mon Jun 16 12:37:37 2008
@@ -0,0 +1,35 @@
+from pypy.translator.tool.cbuild import ExternalCompilationInfo
+from pypy.translator.tool.cbuild import CompilationError
+import py
+import sys
+
+def get_rsdl_compilation_info():
+    if sys.platform == 'darwin':
+        eci = ExternalCompilationInfo(
+            includes = ['SDL.h', 
+                        #'Init.h',
+                        #'SDLMain.m'
+                        #'SDLMain.h'*/
+                        ],
+            include_dirs = ['/Library/Frameworks/SDL.framework/Versions/A/Headers',
+                            #str(py.magic.autopath().dirpath().join('macosx-sdl-main'))
+                            ],
+            link_extra = [
+                str(py.magic.autopath().dirpath().join('macosx-sdl-main/SDLMain.m')),
+                #'macosx-sdl-main/SDLMain.m',
+                '-I', '/Library/Frameworks/SDL.framework/Versions/A/Headers',
+            ],
+            frameworks = ['SDL', 'Cocoa']
+        )
+    else:
+        eci = ExternalCompilationInfo(
+            includes=['SDL.h'],
+            )
+        eci = eci.merge(ExternalCompilationInfo.from_config_tool('sdl-config'))
+    return eci
+
+def check_sdl_installation():
+    from pypy.rpython.tool import rffi_platform as platform
+    platform.verify_eci(get_rsdl_compilation_info())
+
+SDLNotInstalled = (ImportError, CompilationError)

Added: pypy/dist/pypy/rlib/rsdl/test/conftest.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/rlib/rsdl/test/conftest.py	Mon Jun 16 12:37:37 2008
@@ -0,0 +1,10 @@
+from pypy.rlib.rsdl.eci import check_sdl_installation, SDLNotInstalled
+import py
+
+class Directory(py.test.collect.Directory):
+    def run(self):
+        try:
+            check_sdl_installation()
+        except SDLNotInstalled, e:
+            py.test.skip("SDL not installed(?): %s" % (e,))
+        return py.test.collect.Directory.run(self)



More information about the Pypy-commit mailing list