Author: mattip <matti.pi...@gmail.com>
Branch: embedding-pypy-win32
Changeset: r2616:6b5048b944cf
Date: 2016-01-30 20:50 +0200
http://bitbucket.org/cffi/cffi/changeset/6b5048b944cf/

Log:    allow embedding tests to run on pypy win32

diff --git a/cffi/api.py b/cffi/api.py
--- a/cffi/api.py
+++ b/cffi/api.py
@@ -549,24 +549,25 @@
             if value not in lst:
                 lst.append(value)
         #
-        if '__pypy__' in sys.builtin_module_names:
-            if hasattr(sys, 'prefix'):
-                import os
-                ensure('library_dirs', os.path.join(sys.prefix, 'bin'))
-            pythonlib = "pypy-c"
+        if sys.platform == "win32":
+            # XXX pypy should not reuse the same import library name
+            template = "python%d%d"
+            if hasattr(sys, 'gettotalrefcount'):
+                template += '_d'
         else:
-            if sys.platform == "win32":
-                template = "python%d%d"
-                if hasattr(sys, 'gettotalrefcount'):
-                    template += '_d'
+            if '__pypy__' in sys.builtin_module_names:
+                if hasattr(sys, 'prefix'):
+                    import os
+                    ensure('library_dirs', os.path.join(sys.prefix, 'bin'))
+                pythonlib = "pypy-c"
             else:
                 template = "python%d.%d"
                 if sysconfig.get_config_var('DEBUG_EXT'):
                     template += sysconfig.get_config_var('DEBUG_EXT')
-            pythonlib = (template %
-                    (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff))
-            if hasattr(sys, 'abiflags'):
-                pythonlib += sys.abiflags
+        pythonlib = (template %
+                (sys.hexversion >> 24, (sys.hexversion >> 16) & 0xff))
+        if hasattr(sys, 'abiflags'):
+            pythonlib += sys.abiflags
         ensure('libraries', pythonlib)
         if sys.platform == "win32":
             ensure('extra_link_args', '/MANIFEST')
diff --git a/testing/embedding/test_basic.py b/testing/embedding/test_basic.py
--- a/testing/embedding/test_basic.py
+++ b/testing/embedding/test_basic.py
@@ -118,12 +118,18 @@
     def execute(self, name):
         path = self.get_path()
         env_extra = {'PYTHONPATH': prefix_pythonpath()}
-        libpath = os.environ.get('LD_LIBRARY_PATH')
-        if libpath:
-            libpath = path + ':' + libpath
+        if sys.platform == 'win32':
+            _path = os.environ.get('PATH')
+            # for libpypy-c.dll or Python27.dll
+            _path += ';' + os.path.split(sys.executable)[0]
+            env_extra['PATH'] = _path
         else:
-            libpath = path
-        env_extra['LD_LIBRARY_PATH'] = libpath
+            libpath = os.environ.get('LD_LIBRARY_PATH')
+            if libpath:
+                libpath = path + ':' + libpath
+            else:
+                libpath = path
+            env_extra['LD_LIBRARY_PATH'] = libpath
         print('running %r in %r' % (name, path))
         executable_name = name
         if sys.platform == 'win32':
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to