aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add rudimentary support for address sanitizer buildsAlexandru Croitor2018-02-233-0/+41
| | | | | | | | | | | | | | | | | | | | This change adds a new setup.py option called --sanitize-address which will build all executables and shared libraries with address sanitizer enabled. The builds will only succeed on Linux and macOS machines that have new enough gcc / clang versions, so it is a "use at your own risk" build configuration. This change was necessitated by the random crashes that are sometimes observed on the CI machines, and due to valgrind not working properly on new macOS versions, using AddressSanitizer is the next best thing. Note that when running tests with address sanitizer builds, you might need to export a LD_PRELOAD / DYLD_INSERT_LIBRARIES environment variable pointing to the address sanitizer runtime library path, which will be provided by the crashed application. Change-Id: I93014002e5c5e94bcc808ba2fb830d60724cfb69 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Signature: make the parser more complete for 5.11Christian Tismer2018-02-231-1/+13
| | | | | | | | | | | | | | | | | | | The parser regex could not handle angle bracket pairs with commas in it. This is needed for template parameter lists. When they contain commata between the angle brackets, the parser did not recognize that. This fix allows for one level of angle brackets with whatever content. It will probably be needed in 5.11, but the syntax that the regex recognizes should always be complete. I had a hard time to understand this split regex again, so I added some more documentation, and it should now be simple to extend it even more. Task-number: PYSIDE-510 Task-number: PYSIDE-616 Change-Id: Ic854852f35af8b4526a63ffe920f2c01204c1f31 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deprecate --iculib-url optionAlexandru Croitor2018-02-231-6/+2
| | | | | | | | | | The option is not being used anymore since commit c605d686f8cc4c8d370ec4d6260fca4b423f5526 , but we need to keep the name around, so that setup.py doesn't error out in Coin because we still pass that option. Change-Id: I6f3433d1feacd8940aa48ba7e1113fe44a19ed9b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove _utils.py module from packageAlexandru Croitor2018-02-225-366/+9
| | | | | | | | | | | | | | | | | | | | In Qt4 days, _utils.py was used to register a custom qt.conf file into the Qt Resource System, which contained a Prefix (and other locations like binaries / QML imports) so that QtCore can find the correct location of the QPA plugin, and all other requirements. The code was not adopted to work for Qt5, and was silently failing without doing anything. It is not needed anymore though, since the qt.conf registration is now done in C++ in libpyside shared library, since the commit e455d995be989cbdfef2bcd54fd7057a9b036b52 . Thus remove the _util.py file, and adjust __init__.py accordingly. Task-number: PYSIDE-600 Change-Id: I76e3ea442a6e9b9df4996e628ffffcc7384b7f82 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Make sure wheel names contain both PySide2 and Qt versionAlexandru Croitor2018-02-221-5/+31
| | | | | | Task-number: PYSIDE-613 Change-Id: Iad411a46618d157b17f62b403591f348acd98a4e Reviewed-by: Christian Tismer <tismer@stackless.com>
* Don't copy duplicate libraries on package installationAlexandru Croitor2018-02-229-29/+48
| | | | | | | | | | | | | | | | | This change makes sure to resolve symlinks and copy only one file for every dynamic shared library used (vs 3 before -> 2 symlinks + 1 actual library). This avoids duplicate files, as well as saves space when creating wheel (e.g. no 3 copies of standalone WebEngine library). This filtering happens copying from CMake install dir into pyside_package_dir (the symlinks are still present in the CMake dir, but that shouldn't harm anybody, and might be useful for users of shiboken only for example). Task-number: PYSIDE-495 Change-Id: I0fe454e16c6b254a8682aa7b1c702ec01a3064f0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix setup.py install to work on macOSAlexandru Croitor2018-02-211-0/+16
| | | | | | | | | | | | | This change amends e0a4372160d9b1ab1550589784cc456b93d28cab to allow running setup.py install without getting exceptions from distutils. Specifically the problem was that distutils did some additional checks to make sure that plat_name == get_platform(), which will not be the case because of the modified minimum deployment target. The fix is to disable that check via a flag. Change-Id: I066c0d4b7a6b27fceaf094c15bace7aba3c873bb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix wheel packages on macOS to contain min correct deployment targetAlexandru Croitor2018-02-211-20/+73
| | | | | | | | | | | | | | | | | | | Python's distutils does not know about the minimum deployment target of extensions, but only the version that was used when building the Python interpreter itself. This value is propagated to the final wheel name, and confuses users on which macOS version can the package be used. This patch computes the correct minimum deployment target, and forces distutils (and wheel) to use it in the wheel name. Unfortunately it requires a slightly dirty hack to circumvent a rigid check in distutils itself. Task-number: PYSIDE-612 Change-Id: I4380ee81840f9746b210579700cc5d69d3865810 Reviewed-by: Fredrik Averpil <fredrik@averpil.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix rpath of QtWebEngineProcess in standalone macOS framework buildAlexandru Croitor2018-02-201-0/+12
| | | | | | | | | | | The rpath already present assumes the presence of some symlinks, which are not present when copying over the Qt frameworks. Thus the rpath needs adjustment. Task-number: PYSIDE-605 Change-Id: I2fec6f53c8b617a6e755718e9174cadd2c485b5e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix MACOSX_DEPLOYMENT_TARGET being set by distutils.spawn()Alexandru Croitor2018-02-201-0/+11
| | | | | | | | | | | | | | | | | Even though a user might specify a CMAKE_OSX_DEPLOYMENT_TARGET value, this will not automatically set the regular MACOSX_DEPLOYMENT_TARGET environment variable, which is picked up by the compiler to decide which standard library to use. Because CMake is invoked via run_process -> distutils.spawn(), spawn might decide to set its own value of MACOSX_DEPLOYMENT_TARGET. That is undesirable. Make sure to always specify the environment variable based on given value, or current OS version. (cherry picked from commit 6945dfb657a17fd66fd547e086c6fa9c76f06074) Change-Id: I7f2dcc546c447d30fc1585cda220e3437cee9491 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix heap corruption crash on macOS 10.8 CI machineAlexandru Croitor2018-02-201-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The macOS 10.8, PySide2 branch 5.6 integrations were misteriously failing with crashes on exit in the objecttype_test.py test, with a stack trace similar to: 0x00007fff8899e90a _sigtramp + 26 0x0000000100784710 0x0 + 4302849808 (note the 0x0 address) 0x0000000100055408 dict_traverse + 168 0x0000000100107f77 collect + 407 0x00000001001089f4 PyGC_Collect + 52 0x00000001000ef503 Py_Finalize + 259 0x00000001000eefca handle_system_exit + 250 0x00000001000ef235 PyErr_PrintEx + 469 0x00000001000efebb PyRun_SimpleFileExFlags + 299 0x00000001001071dd Py_Main + 3101 Reproducing it on a CI VM was very difficult, requring dubious manipulation of PATH, PYTHONPATH and LD_LIBRARY_PATH environment variables. In the end the issue was diagnosed to be heap corruption, and thus the difficulty in reproducing it. The testParentFromCpp test in objecttype_test.py calls the destroyCppParent method to delete its parent. Because the deletion of the parent invokes the destructor ~ObjectType(), that in turn deletes the child. This lead to head corruption, because the child "o" by destroying its parent, destroys itself, and once the "delete m_parent" is done, the next "m_parent = 0" would write to invalid (freed) memory. In a release build of the Python interpreter, this ends up in accessing the freed memory in the GC collection phase (but under a debugger this crashed in several other random places). The fix is to delete the "m_parent = 0;" statement, so that nothing is written to freed memory. Change-Id: I2d7a41b99a3255ebb300e6157b3dd0d78eb27a54 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix typo in libicu detectionAlexandru Croitor2018-02-151-1/+1
| | | | | | | | | | When libicu libraries are present in the qt lib dir, this caused trying to copy the files into the same folder where they are located which will obviously fail. Change-Id: Ibcabec2e44dac70e0c3c56e52ff0c8ac7749dbc0 Reviewed-by: Fredrik Averpil <fredrik@averpil.com> Reviewed-by: Simo Fält <simo.falt@qt.io>
* Fix deployment of Qt libraries on macOS for standalone packagesAlexandru Croitor2018-02-061-14/+8
| | | | | | | | | | | | | | | | | | | Previously there was a selection process to choose which libraries to copy over in order to save time and space by not copying libraries for which there are no bindings. The logic was incomplete, and it would be a burden to always update it. Instead it seems that WebEngine is the predominant time consumer when copying, so just simplify the logic to the following: 1) If WebEngine bindings were generated, copy WebEngine Qt libraries 2) If not, don't 3) Copy all other Qt libraries Task-number: PYSIDE-604 Change-Id: Iaa832b5281c9c328f056fd5f9f42e251d55be75f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add setup.py option to set the OS X minimum deployment targetAlexandru Croitor2018-02-061-0/+16
| | | | | | | | | This is necessary to create binaries that will run on systems older than the system on which the binaries are build. Task-number: PYSIDE-603 Change-Id: Iab1e155d63f0a0cde5de7bbf54ca2c906d8bf188 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add setup.py option to output compiler command line invocationAlexandru Croitor2018-02-061-0/+5
| | | | | | | | Useful for debugging incorrect command line arguments (especially for CI builds). Change-Id: I2c291c1ede5c2e17cdd877f788e8b62876568367 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Embeds $ORIGIN rpath into QtCore and libICU librariesAlexandru Croitor2018-02-061-0/+62
| | | | | | | | | | | | | | | In case if Qt is configured without "-R ." which adds the $ORIGIN rpath value, the linker will not try to find the copied over ICU libraries (because the RPATH of a library higher in the dependency tree does not get inherited by its children). We want to make sure that the linker does attempt to find the ICU libraries in the destination Qt libdir, so we prepend the additional rpath value to the QtCore library, and also to the ICU libraries. Change-Id: Idbbf578d58ee12806b61610e6fd21f7c1ac48e3d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Improve libICU deployment on LinuxAlexandru Croitor2018-02-062-60/+172
| | | | | | | | | | | | | | Previously the --standalone build process would download and extract an archive of ICU libraries, regardless of which ICU Qt was built against. The build process will now detect which ICU libraries QtCore depends on and copy the libraries over to the destintation libdir. Something similar might be needed in the future for macOS and Windows. Change-Id: I0db0c8c628d3c095a8a4a1e361f8fafe18da2ec3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Rename usage of 'dist_dir' to 'pyside_package_dir'Alexandru Croitor2018-02-061-62/+62
| | | | | | | | | | The value of 'dist_dir' always meant the 'pyside_package' directory, yet it always added some confusion that it might be something else. Thus remove all mentions of 'dist_dir' to make things more clear. Change-Id: I5037d7a272e96d89424a333adb9c6dc4510d492a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Improve logging of all relevant build folders that are written toAlexandru Croitor2018-02-061-7/+36
| | | | | | | | | | | | | This change improves the output of which directories are used when a build is done, as well as adds output for the correct final installation destination (deduced automatically by setuptools, or specified by --prefix option). The change aims to reduce the usual confusion of figuring out which files are written where. Change-Id: I038be7bc657a7fa68e242c38076ffc4ba0548a0b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix QTabWidget.clear to avoid double obj removalCristian Maureira-Fredes2018-02-023-2/+69
| | | | | | | | | | | Replacing shiboken call setParent with releaseOwnership so Python will not delete the underlying C++ object. A test case is provided to check that the error is not happening. Task-number: PYSIDE-213 Change-Id: Ic0f383c3d93b905885f76788d32d62ba37ed9d2f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Improve documentation about OpenSSLAlexandru Croitor2018-02-021-8/+22
| | | | | | Task-number: PYSIDE-599 Change-Id: Iea11cca0c5de0aec82ce504ce8ac14d9778c08dd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix QSsl classes to be picked up on LinuxAlexandru Croitor2018-02-021-0/+9
| | | | | | | | | | | | | The compile tests that checked for QSsl classes silently failed because of two different reasons: 1) If Qt was compiled with -fPIC, but the tests weren't, we hit a compilation error. Solution is to compile with -fPIC if necessary. 2) For some reason when linking, the linker can't find the qt version tag symbol. Solution is to simply not use the version tag. Task-number: PYSIDE-599 Change-Id: If8a6ea38b45091bcaced6179a71195d25589ef18 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix signature extension disablingChristian Tismer2018-02-021-1/+3
| | | | | | | | | | | | | | | | | The signature extension is a feature that can switch itself off, using the expression PY_VERSION_HEX >= 0x03040000 || \ (PY_VERSION_HEX < 0x03000000 && PY_VERSION_HEX >= 0x02070000) Unfortunately, the use of this constant when disabled became inconsistent over time. This patch corrects that and also adds a cosmetic improvement that was lost. Task-number: PYSIDE-510 Change-Id: Id1653c391d921a2c51008db2bc222d6f4bec9e90 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* setup.py: Fix bundling of pyside2uic.CompilerFredrik Averpil2018-01-171-1/+3
| | | | | | | | | | Add the compiler. Task-number: PYSIDE-357 Change-Id: I7138c583382d60933a921fd2f0dc4ef880a0c31b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Fredrik Averpil <fredrik@averpil.com>
* qinstallmsghandler_test.py: Test qDebug() in debug builds onlyFriedemann Kleint2018-01-161-3/+4
| | | | | | | Otherwise, messages are suppressed and the test fails. Change-Id: Ie7fb8192e542a09822f6e1f70392100f4cdc0f11 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Do not link shared libraries against the python shared library on UnixAlexandru Croitor2018-01-151-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | There is no need to link against the python shared library (or static library) on Linux / macOS because the python symbols will already be loaded by the dynamic linker, by the time when a PySide2 module is imported. This is especially relevant on Debian distributions, which ship a statically built python interpreter, as well as a python shared library (which is not used by the interpreter). The python shared library package is intended for native application that want to embed a Python interpreter inside the application. So far PySide2 would have linked against the python shared library, which means that on Debian distributions when running a PySide2 example, the executable would load two versions of the same python symbols (one from the static interpreter, and one from the shared library), and this might cause issues. On Windows we still need to link against the python.lib import library, because otherwise the python symbols would not be resolved. Task-number: PYSIDE-522 Change-Id: I4483ded96461c04f8e7a17d39068d07f772a973c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Extract iculibs for linux standalone wheelSimo Fält2018-01-112-0/+67
| | | | | | | | | When creating PIP wheel for linux from Qt CI binaries we have to include ICU libs among Qt binaries. Change-Id: I30adf7041784cf3558c064d6ab6ad295ed1f5551 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Enhance testrunner to ignore old test logsChristian Tismer2018-01-051-0/+8
| | | | | | | | | | | | | Testrunner had a virtual problem: When running testrunner without building the project again, and the test skips some runs that were not skipped before, then it will fetch an old test log from the former run. Cure: We check all logfiles first. If a file exists and skip is not set, then we remove the file. Then normal testing starts. Change-Id: Ib91baca97d3b0a5c0b68a8022fca52202b20e862 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Signature existence tests: Fix generation of the signature fileFriedemann Kleint2018-01-042-5/+7
| | | | | | | | Amends cd1037060e0cbc263e601fb67fbd40d85c8801a1. Task-number: PYSIDE-510 Change-Id: Ic93a6ef4ab846b07b369f691f52240aeedbfbec3 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Remove sync.profile which is no longer usedChristian Tismer2017-12-281-19/+0
| | | | | | | | | | | | | | | | sync.profile was checked in on 2016-07-29 and since then never changed. I asked Simo Fällt about its future: """ Sync.profile was used to declare ci dependencies between modules. Each and every Qt tmodule had its own sync.profile listing its had and soft dependendencies. I added that file for Pyside (when 5.6 was only branch), but soon after that, COIN stopped supporting that way of specifying dependencies. So in other words, that file is useless. """ Change-Id: I0a2aafd94a80542d94d8be44e0b322493fbc2d0c Reviewed-by: Simo Fält <simo.falt@qt.io>
* small enhancement for testrunnerChristian Tismer2017-12-223-20/+18
| | | | | | | | | | | | The new testrunner now has the multiple test feature. We refine and correct the summary view a little bit, remove more dead code, add some comments and improve the output slightly. Change-Id: I152bf5cbe2171fb07de7e88054a42fc767dc14c0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Simo Fält <simo.falt@qt.io>
* testrunner 5: Improve the algorithmChristian Tismer2017-12-215-67/+245
| | | | | | | | | | | | | | | | | | | | | | Testrunner checks if it is running in COIN. If so, it runs each tested project 5 times and reports an error if 3 errors were found in a test function and not blacklisted. The time is measured, so we know if we can run all the tests five times or if we can run only the failed tests. At the moment, the option COIN_RERUN_FAILED_ONLY is activated by default. We can configure it by setting to false. Since this change turns the registry existence test into a flaky test (te tests generates it's missing file in the first run), the registry existence test is no more blacklisted. We simulate our own tee command now with decorated output. Task-number: PYSIDE-578 Change-Id: I6390cd50398a97a168c85c6bb778984c6a5b90fc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* testrunner 4: Improve the error listingChristian Tismer2017-12-212-3/+3
| | | | | | | | A simple change that makes the "FAIL!" entries easy to find. Task-number: PYSIDE-578 Change-Id: I953bf94912f101208c1cddb7772aa0c34e9ca1a8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* testrunner 3: Replace (n)make and tee by ctestChristian Tismer2017-12-212-60/+73
| | | | | | | | | | | | | Before working on the algorithm, we simplify the testrunner by using ctest directly. This has also the advantage that we can control much better how the output is generated. By interrogating the Makefile, we can now detect early if ctest was configured in setup.py . Task-number: PYSIDE-578 Change-Id: I1157576bf5806044465d7a1409c3d26810f33f62 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* testrunner 2: Remove unused code and clean upChristian Tismer2017-12-212-235/+14
| | | | | | | | | | | Testrunner contains old learning code for blacklist that was never used. We remove that code. The new display of environment was correctly placed and reformatted. Task-number: PYSIDE-578 Change-Id: Ia508314aa1a87d07522386342059c14cb1254400 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* testrunner 1: Turn into a packageChristian Tismer2017-12-218-787/+1100
| | | | | | | | | | | | | Testrunner is a medium-large module that has a number of different purposes. Since we want to improve the testing logic, it is better to clean the module up before adding even more code. For compatibitity, the testrunner module will stay in place, but redirect everything into the new "testing" package. Task-number: PYSIDE-578 Change-Id: I3d14f3c4c421cdd2bb7777691b56677aa4786dd8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* blacklist.txt: Remove duplicate entryFriedemann Kleint2017-12-211-4/+0
| | | | | Change-Id: Ie1b0e43f876cb4ac4228457ccb49ab43e63affe1 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Signature existence tests: Fall back to previous patch releasesFriedemann Kleint2017-12-212-18/+51
| | | | | | | | | | | In case the reference file for a given patch release does not exist, fall back to a previous one. Replace variables in the init_platform module by functions getEffectiveRefPath(), getRefPath(). Task-number: PYSIDE-510 Change-Id: I208f4618be6e20be5023938850ca0eacc43b0101 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Adjust inheritance_diagram.py exception to Python 3 syntaxChristian Tismer2017-12-211-1/+1
| | | | | | | | The file inheritance_diagram.py still had the old python 2 syntax. Obviously nobody tried to build documentation in Python 3... Change-Id: I0e245940a2593a1a5e93c7f538d8e73ca1001a0f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix QtCore test bug829 to run on WindowsFriedemann Kleint2017-12-192-7/+20
| | | | | | | | | | | | | | The test used Python functionality to create a temporary file which caused an access error on Windows, apparently due to the file still being open. Besides, the temporary file was leaked. Rewrite using QTemporaryFile and make sure the file is closed and the QTemporaryFile is deleted before using it and delete it in __del__(). Task-number: PYSIDE-431 Change-Id: I5d63e76ead7169d9f3f2267ee53aa91b601a3968 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Blacklist flaky QtCore::qthread_prod_cons_test testAlexandru Croitor2017-12-051-0/+4
| | | | | | Change-Id: I4813d79f6f4acb4dc47ec7dbfdee111de76a2fde Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Unify signature registry for py2 / py3 and clean upChristian Tismer2017-12-056-88/+161
| | | | | | | | | | | | | | | | | | | | | | | | | It turned out that there are tiny differences between Python2 and Python3 which make the versions of the registry almost, but not totally equal. There are functions which are slot wrappers in Python2 instead of method wrappers in Python3, and we currently don't support slot wrappers. There are other tiny differences when we switch to Qt 5.9, too. Initially, I thought to split the files for Python2 and Python3, but then it turned out that the problems vanish when we ignore the 'next' and '__next__' functions in both python versions. The filter function is both applied to the generating function and the testing function. Therefore we can keep the existing data intact. I further removed an indentation leftover in cppgenerator.cpp, fixed handling of duplicate entries and improved modularisation of the signature enumerator and formatter. This part will later be moved into the signature library. Task-number: PYSIDE-510 Change-Id: I18f5e8f08fb9b07534003919abe55ab4dafeb2c2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix signature registry on Python2 with .pyc files, part 2Christian Tismer2017-12-043-49/+45
| | | | | | | | | | | | | | There is unfortunately another bad side effect with .pyc files. I had to make sure that not the __file__ attribute is used, but the correct filename is computed, because __file__ can refer to the .pyc file under certain circumstances. Improved error handling, more file type checks and short filenames relative to the project path added for convenience. Task-number: PYSIDE-510 Change-Id: Ia0002fdfb382b7d3681156b1aef42739eb22dcc9 Reviewed-by: Simo Fält <simo.falt@qt.io>
* libpyside: Fix code forwarding Python exceptions to JSFriedemann Kleint2017-11-301-14/+4
| | | | | Change-Id: I6dffab506814e1d33812ed23b3e3920882b6c4e6 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix signature registry on Python2 with .pyc filesChristian Tismer2017-11-302-8/+11
| | | | | | | | | | | | | | | | | There was a problem on Python2 when ci was activated. Because there are .pyc files in the same folder, a leftover .pyc file would be imported and lead to weird results. This problem is not recognized now, but would have effects when we turn on the multiple testing. The intended behavior is that a tests generates an error and a listing once and succeeds for the repeated test runs. This worked in Python3. Now this works the same with Python2. Task-number: PYSIDE-510 Change-Id: Id892715faa8eee1322b28c7e109f3b0b7329f12c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Fix testrunner to parse blacklist correctly on Qt5.xx.yChristian Tismer2017-11-301-12/+4
| | | | | | | | | | | | | testrunner had a simple extension that propagated classifiers like Qt5.6.4 to Qt5.6 and Qt5. This extension was not able to recognize Qt5.11.0 . It was a known omission in testrunner.py that was commented but ignored in the reviews. (#35 on 2016-09-16 and #42 on 2016-09-22) This patch corrects that omission. Change-Id: I0b17c40b46af0572123a503a83db115b488bb87a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* FIXUP: Make standalone option work on LinuxAlexandru Croitor2017-11-281-1/+1
| | | | | | | | | There was an indentation error in the rpath linux handling function, which ended up not adding any rpaths in regular builds, thus breaking PySide2 module importing. Change-Id: I18488f78aca50435f69ce091e46a77e4ec55d396 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Blacklist existence test for dev=5.11Christian Tismer2017-11-281-0/+3
| | | | | | | At the moment, we don't want to activate this. Change-Id: Ie5ccb3513dce776cff20ee29b992a6aadc88320f Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* signature: Support a new constant for QOpenGLChristian Tismer2017-11-282-1/+2
| | | | | | | | | | | There are QOpenGLFunctions::glGetString() etc. Some platforms have new, unrecognized constants. I also reverted a change to parser.py to accept all regular exceptions, again. It makes little sense to be explicit, here. Change-Id: I7e0289ed074c1452ad163f68fdc6d35f046844e2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Blacklist flaky QtCore_qthread_signal_testAlexandru Croitor2017-11-271-0/+4
| | | | | Change-Id: I772d789bd3c8628594f35c60738f2decf5e96aa1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>