Author: mattip <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit