diff options
author | Christian Tismer <tismer@stackless.com> | 2019-04-28 15:17:34 +0200 |
---|---|---|
committer | Christian Tismer <tismer@stackless.com> | 2019-04-29 10:19:28 +0000 |
commit | 4840fd8440eb3d6cab005f3a5a6a27767c57ec91 (patch) | |
tree | e9dfaafea502ab3376ea1e983ce3d69071e0981c /testing | |
parent | f3f401315774687f74caa4f5aeb7ec8ef2d5587c (diff) |
Fix PyInstaller after removal of COIN glitches
After the COIN problems have been removed, the only remaining
problem is PyInstaller, which crashes on macOS with Python 2.7.16 .
For a full problem description, see the amendment to
"Current COIN Wheel Tester Problems"
To simplify a later problem analysis, "pip list" is included.
Fixes: PYSIDE-996
Change-Id: Ie607ac190ab703a0b8cbe20483b4b60f81634d9d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Diffstat (limited to 'testing')
-rw-r--r-- | testing/wheel_tester.py | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/testing/wheel_tester.py b/testing/wheel_tester.py index a6ee2d463..180526b33 100644 --- a/testing/wheel_tester.py +++ b/testing/wheel_tester.py @@ -51,6 +51,7 @@ looked up in your PATH. Make sure that some generated wheels already exist in the dist/ directory (e.g. setup.py bdist_wheel was already executed). """ +from __future__ import print_function, absolute_import import os, sys @@ -68,7 +69,7 @@ from build_scripts.options import OPTION_CMAKE from build_scripts.utils import find_files_using_glob from build_scripts.utils import find_glob_in_path -from build_scripts.utils import run_process +from build_scripts.utils import run_process, run_process_output from build_scripts.utils import rmtree import distutils.log as log import platform @@ -204,6 +205,19 @@ def generate_build_qmake(): log.info("") +def raise_error_pyinstaller(msg): + print() + print("PYINST: {msg}".format(**locals())) + print("PYINST: sys.version = {}".format(sys.version.splitlines()[0])) + print("PYINST: platform.platform() = {}".format(platform.platform())) + print("PYINST: See the error message above.") + print() + for line in run_process_output([sys.executable, "-m", "pip", "list"]): + print("PyInstaller pip list: ", line) + print() + raise(RuntimeError(msg)) + + def compile_using_pyinstaller(): src_path = os.path.join("..", "hello.py") spec_path = os.path.join("..", "hello_app.spec") @@ -213,14 +227,9 @@ def compile_using_pyinstaller(): # By using a spec file, we avoid all the probing that might disturb certain # platforms and also save some analysis time. if exit_code: - # raise RuntimeError("Failure while compiling script using PyInstaller.") - print("PYINST: Failure while compiling script using PyInstaller.") - print("PYINST: sys.version = {}".format(sys.version.splitlines()[0])) - print("PYINST: platform.platform() = {}".format(platform.platform())) - print("PYINST: See the error message above.") - return False + # 2019-04-28 Raising on error is again enabled + raise_error_pyinstaller("Failure while compiling script using PyInstaller.") log.info("") - return True def run_make(): @@ -256,7 +265,7 @@ def run_compiled_script(binary_path): args = [binary_path] exit_code = run_process(args) if exit_code: - raise RuntimeError("Failure while executing compiled script: {}".format(binary_path)) + raise_error_pyinstaller("Failure while executing compiled script: {}".format(binary_path)) log.info("") @@ -293,10 +302,8 @@ def try_build_examples(): src_path = os.path.join(examples_dir, "installer_test") prepare_build_folder(src_path, "pyinstaller") - # Currently, there are bugs in the COIN setup. - # That is currently not the subject of this test: - if compile_using_pyinstaller(): - run_compiled_script(os.path.join(src_path, + compile_using_pyinstaller() + run_compiled_script(os.path.join(src_path, "pyinstaller", "dist", "hello_app", "hello_app")) log.info("Attempting to build and run samplebinding using cmake.") |