Author: Armin Rigo <[email protected]>
Branch:
Changeset: r77553:e6c259d25dc6
Date: 2015-05-25 21:22 +0200
http://bitbucket.org/pypy/pypy/changeset/e6c259d25dc6/
Log: Fix the test by adding a _fake option that doesn't rely on a pypy-c
and libpypy-c.so to be actually built
diff --git a/pypy/tool/release/package.py b/pypy/tool/release/package.py
--- a/pypy/tool/release/package.py
+++ b/pypy/tool/release/package.py
@@ -89,7 +89,7 @@
kwds['stderr'] = subprocess.PIPE
return subprocess.call([str(pypy_c), '-c', 'pass'], **kwds) == 0
-def create_package(basedir, options):
+def create_package(basedir, options, _fake=False):
retval = 0
name = options.name
if not name:
@@ -105,13 +105,13 @@
pypy_c = basedir.join('pypy', 'goal', basename)
else:
pypy_c = py.path.local(override_pypy_c)
- if not pypy_c.check():
+ if not _fake and not pypy_c.check():
raise PyPyCNotFound(
'Expected but did not find %s.'
' Please compile pypy first, using translate.py,'
' or check that you gave the correct path'
' with --override_pypy_c' % pypy_c)
- if not pypy_runs(pypy_c):
+ if not _fake and not pypy_runs(pypy_c):
raise OSError("Running %r failed!" % (str(pypy_c),))
if not options.no_cffi:
try:
@@ -124,7 +124,7 @@
binaries = [(pypy_c, rename_pypy_c)]
if (sys.platform != 'win32' and # handled below
- os.path.getsize(str(pypy_c)) < 500000):
+ not _fake and os.path.getsize(str(pypy_c)) < 500000):
# This pypy-c is very small, so it means it relies on libpypy_c.so.
# If it would be bigger, it wouldn't. That's a hack.
libpypy_name = ('libpypy-c.so' if not sys.platform.startswith('darwin')
@@ -227,7 +227,11 @@
bindir.ensure(dir=True)
for source, target in binaries:
archive = bindir.join(target)
- shutil.copy(str(source), str(archive))
+ if not _fake:
+ shutil.copy(str(source), str(archive))
+ else:
+ open(str(archive), 'wb').close()
+ os.chmod(str(archive), 0755)
fix_permissions(pypydir)
old_dir = os.getcwd()
@@ -276,7 +280,7 @@
print "Ready in %s" % (builddir,)
return retval, builddir # for tests
-def package(*args):
+def package(*args, **kwds):
try:
import argparse
except ImportError:
@@ -337,7 +341,7 @@
from rpython.tool.udir import udir
options.builddir = udir.ensure("build", dir=True)
assert '/' not in options.pypy_c
- return create_package(basedir, options)
+ return create_package(basedir, options, **kwds)
if __name__ == '__main__':
diff --git a/pypy/tool/release/test/test_package.py
b/pypy/tool/release/test/test_package.py
--- a/pypy/tool/release/test/test_package.py
+++ b/pypy/tool/release/test/test_package.py
@@ -16,25 +16,10 @@
rename_pypy_c = 'pypy'
exe_name_in_archive = 'bin/pypy'
pypy_c = py.path.local(pypydir).join('goal', basename)
- if not pypy_c.check():
- if sys.platform == 'win32':
- import os, shutil
- for d in os.environ['PATH'].split(';'):
- if os.path.exists(os.path.join(d, 'cmd.exe')):
- shutil.copy(os.path.join(d, 'cmd.exe'), str(pypy_c))
- break
- else:
- assert False, 'could not find cmd.exe'
- else:
- pypy_c.write("#!/bin/sh")
- pypy_c.chmod(0755)
- fake_pypy_c = True
- else:
- fake_pypy_c = False
try:
retval, builddir = package.package(
'--without-cffi', str(py.path.local(pypydir).dirpath()),
- test, rename_pypy_c)
+ test, rename_pypy_c, _fake=True)
assert retval == 0
prefix = builddir.join(test)
cpyver = '%d.%d' % CPYTHON_VERSION[:2]
@@ -79,8 +64,7 @@
check_include('pypy_decl.h')
check_include('numpy/arrayobject.h')
finally:
- if fake_pypy_c:
- pypy_c.remove()
+ pass # to keep the indentation
def test_with_zipfile_module():
prev = package.USE_ZIPFILE_MODULE
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit