[pypy-svn] r61958 - in pypy/trunk/pypy: module/_rawffi module/_rawffi/test rlib rlib/test

afa at codespeak.net afa at codespeak.net
Tue Feb 17 00:29:43 CET 2009


Author: afa
Date: Tue Feb 17 00:29:42 2009
New Revision: 61958

Modified:
   pypy/trunk/pypy/module/_rawffi/interp_rawffi.py
   pypy/trunk/pypy/module/_rawffi/test/test__rawffi.py
   pypy/trunk/pypy/rlib/libffi.py
   pypy/trunk/pypy/rlib/test/test_libffi.py
Log:
Try harder not to embed the prebuilt name of the libc library,
at least on Windows.


Modified: pypy/trunk/pypy/module/_rawffi/interp_rawffi.py
==============================================================================
--- pypy/trunk/pypy/module/_rawffi/interp_rawffi.py	(original)
+++ pypy/trunk/pypy/module/_rawffi/interp_rawffi.py	Tue Feb 17 00:29:42 2009
@@ -496,6 +496,6 @@
 
 def get_libc(space):
     try:
-        return space.wrap(W_CDLL(space, libc_name))
+        return space.wrap(W_CDLL(space, get_libc_name()))
     except OSError, e:
         raise wrap_oserror(space, e)

Modified: pypy/trunk/pypy/module/_rawffi/test/test__rawffi.py
==============================================================================
--- pypy/trunk/pypy/module/_rawffi/test/test__rawffi.py	(original)
+++ pypy/trunk/pypy/module/_rawffi/test/test__rawffi.py	Tue Feb 17 00:29:42 2009
@@ -165,11 +165,11 @@
     prepare_c_example = staticmethod(prepare_c_example)
     
     def setup_class(cls):
-        from pypy.rlib.libffi import libc_name
+        from pypy.rlib.libffi import get_libc_name
         space = gettestobjspace(usemodules=('_rawffi', 'struct'))
         cls.space = space
         cls.w_lib_name = space.wrap(cls.prepare_c_example())
-        cls.w_libc_name = space.wrap(libc_name)
+        cls.w_libc_name = space.wrap(get_libc_name())
         if sys.platform == 'win32':
             cls.w_iswin32 = space.wrap(True)
             cls.w_libm_name = space.wrap('msvcrt')

Modified: pypy/trunk/pypy/rlib/libffi.py
==============================================================================
--- pypy/trunk/pypy/rlib/libffi.py	(original)
+++ pypy/trunk/pypy/rlib/libffi.py	Tue Feb 17 00:29:42 2009
@@ -256,6 +256,9 @@
         pass # No check
     
     libc_name = ctypes.util.find_library('c')
+    def get_libc_name():
+        return libc_name
+    del libc_name
 
 if _WIN32:
     def dlopen(name):
@@ -314,9 +317,11 @@
 
     get_libc_handle = external('get_libc_handle', [], rwin32.HANDLE)
 
-    libc_name = rwin32.GetModuleFileName(get_libc_handle())
-    assert "msvcr" in libc_name.lower(), \
-           "Suspect msvcrt library: %s" % (libc_name,)
+    def get_libc_name():
+        return rwin32.GetModuleFileName(get_libc_handle())
+
+    assert "msvcr" in get_libc_name().lower(), \
+           "Suspect msvcrt library: %s" % (get_libc_name(),)
 
 
 FFI_OK = cConfig.FFI_OK

Modified: pypy/trunk/pypy/rlib/test/test_libffi.py
==============================================================================
--- pypy/trunk/pypy/rlib/test/test_libffi.py	(original)
+++ pypy/trunk/pypy/rlib/test/test_libffi.py	Tue Feb 17 00:29:42 2009
@@ -25,10 +25,10 @@
 
     def test_dlopen(self):
         py.test.raises(OSError, "dlopen(rffi.str2charp('xxxxxxxxxxxx'))")
-        assert dlopen(rffi.str2charp(libc_name))
+        assert dlopen(rffi.str2charp(get_libc_name()))
         
     def get_libc(self):
-        return CDLL(libc_name)
+        return CDLL(get_libc_name())
     
     def get_libm(self):
         if sys.platform == 'win32':
@@ -384,7 +384,7 @@
     
     def test_get_libc_handle(self):
         handle = get_libc_handle()
-        print libc_name
+        print get_libc_name()
         print hex(handle)
         assert handle != 0
         assert handle % 0x1000 == 0



More information about the Pypy-commit mailing list