summaryrefslogtreecommitdiffstats
path: root/util
Commit message (Collapse)AuthorAgeFilesLines
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-111-1/+1
| | | | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace, with manual unstaging of the actual definition and documentation in dist/, src/corelib/doc/ and src/corelib/global/. Task-number: QTBUG-99313 Change-Id: I4c7114444a325ad4e62d0fcbfd347d2bbfb21541 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
* Update UCD to Revision 30Ievgenii Meshcheriakov2022-10-1118-236/+967
| | | | | | | | | | | | | | | | | | This corresponds to Unicode version 15.0.0. Added the following scripts: * Kawi * Nag Mundari Full support of these scripts requires harfbuzz version 5.2.0, this version adds support for Unicode 15.0: https://github.com/harfbuzz/harfbuzz/releases/tag/5.2.0 Fixes: QTBUG-106810 Change-Id: Ib06c526e49b0f01ef9f21123bcf875c6b19f2601 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Provide visual output in page in WASM test runnerMikolaj Boc2022-10-054-1/+467
| | | | | | | | | | | There will now be a visual output in page if the qvisualoutput query parameter is supplied. This simplifies debugging. The main html resource has been renamed test_batch.html to reflect the name of the actual test unit, not functionality. Change-Id: Ib6cd4712de9c47cfcc5f670e7b34f998858f99b7 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Provide the wasm module correctly to the instantiateWasm callbackMikolaj Boc2022-10-011-1/+1
| | | | | | | | | The second parameter to the onDone callback in istantiateWasm was missing in qwasmjsrunner.js, which prevented the wasm module from working on the threaded qt build. Change-Id: I5d1be7a2e0d8043112f304b4d2530acdaae7b398 Reviewed-by: David Skoland <david.skoland@qt.io>
* Fix trivial typo in cldr.py doc-stringEdward Welbourne2022-09-141-1/+1
| | | | | Change-Id: I24b039f9256adb3dc7808cd04bd621226b1a5ed5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* testrunner: Use absolute path for JUnit XML result fileTor Arne Vestbø2022-09-131-5/+6
| | | | | | | | Amends 210020412c1d70b70993dfdec5041d486b28a8c4 Change-Id: Ibe3bbe0bab4370936f82a915ba59a7a89c292ea0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
* Adapt the js batched test runner to emrun interfaceMikolaj Boc2022-09-126-108/+302
| | | | | | | | | | This makes the js batched test runner cooperate with emrun. The runner sends back the output and exit messages to emrun to inform it about the test execution state. The code is based on emrun_postjs.js from the emsdk. Change-Id: I758f2c185797f4000810eb4314423eebc1c5d457 Reviewed-by: David Skoland <david.skoland@qt.io>
* testrunner: Generate JUnit result filesTor Arne Vestbø2022-09-091-3/+7
| | | | | | | | The JUnit format is easier to feed to tools that don't support the native Qt Test XML format. Change-Id: Ie9803cc0fb0577b3b7258b05faa78d8fb1aad1d1 Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
* xcb: use libxcb-cursor to replace Xlib/libXcursorLiang Qi2022-09-061-0/+7
| | | | | | | | | [ChangeLog][Linux/XCB] Used libxcb-cursor to replace Xlib/libXcursor Fixes: QTBUG-67373 Change-Id: I04a30e401467e48b431a5cc63984f7b70a09faf0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Liang Qi <liang.qi@qt.io>
* Add error message & format selection capability to batched test runnerMikolaj Boc2022-09-011-20/+37
| | | | | Change-Id: I6686bf951204672c3542148e85e59e14e83e73c4 Reviewed-by: David Skoland <david.skoland@qt.io>
* Implement new features in qt-wasmtestrunnerMikolaj Boc2022-08-311-52/+162
| | | | | | | | | | | | The script is now able to: - kill a test that is not responding after certain timeout - multicast output to files/streams (tee-like, but not only on posix) - forward requested format (xml/txt/etc.) to the test executable - run a batched test from a batch test package - interop with the js batched test runner Change-Id: Ia189d78a078e11b9efd25865c5a0ddc6a62d9b85 Reviewed-by: David Skoland <david.skoland@qt.io>
* Create a driver for running batched tests on WASMMikolaj Boc2022-08-245-0/+478
| | | | | | | | | | | | A driver application has been prepared in js for running batched tests. There is a convenient public API defined for reading the current test status & subscribing to changes thereof. The solution is modular - the module qwasmjsruntime can be used for any wasm instantiation, e.g. in the next iteration of qtloader. Change-Id: I00df88188c46a42f86d431285ca96d60d89b3f05 Pick-to: 6.4 Reviewed-by: David Skoland <david.skoland@qt.io>
* CMake: Rewrite double-conversion find moduleAlexandru Croitor2022-07-021-1/+2
| | | | | | | | | | | | | | | | | | | Rename FindWrapDoubleConversion.cmake into FindWrapSystemDoubleConversion.cmake. Merge contents of Finddouble-conversion.cmake into the one above. This allows users to provide their own Finddouble-conversion.cmake file (Conan can do it). Don't mark the system package as required, because we have a bundled one too. Add link to upstream. Make sure to show either Config file or library path when one is found. Pick-to: 6.2 6.3 6.4 Fixes: QTBUG-104541 Change-Id: I9ea2330697c6fc280328849ca11522291c4073d8 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* sanitizer-testrunner: enforce line bufferingDimitrios Apostolou2022-06-161-1/+1
| | | | | | | | Under coin-agent, the stdout/err are not a tty, so flushing needs to be forced. Change-Id: I06de43328a4f4d1c17df7188f31b5f7bc63e3335 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qt-testrunner: Commit forgotten README fileDimitrios Apostolou2022-06-161-0/+24
| | | | | | Pick-to: 6.4 6.3 6.2 Change-Id: Ie307b95947a6910bd65bb22ecf938fae9de22f9d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Add ASAN build for qtbaseDimitrios Apostolou2022-06-151-0/+49
| | | | | | | | | | | | | | | The test run is wrapped with a special TESTRUNNER script that ignores failing tests (there are several tests failing when built with ASAN) and also ignores LSAN errors (memory leaks - but still visible in the output). The test run only fails if a test reports ASAN errors or if it crashes (or times out, which is like a crash caused by qtestlib's watchdog timer). Fixes: QTQAINFRA-5025 Change-Id: I861756ab49388ac4a52409d3a780684244e469b1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Fix typosKai Köhne2022-06-132-2/+2
| | | | | | | | Found by codespell Pick-to: 6.4 Change-Id: I4907e423b6b345acf82f2d7e0ed62479719d694e Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Bump version to 6.5.0Jani Heikkinen2022-06-061-1/+1
| | | | | Change-Id: I83a4f915a914bdc18f6706bb902f3e3b13da074f Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
* Expose the qtloader object globallyDavid Skoland2022-06-031-12/+20
| | | | | | | | | | | | When testing, we need to query the state of the Qt application, so change the scope of qtloader from inside the init function to global scope. Additionally, adjust the test script accordingly to query and use this state to make good decisions on how to terminate. Change-Id: I6264ba20843716eb87340b160680617b718f6bd9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Core: make CLDR data constexprYuhang Zhao2022-05-272-12/+12
| | | | | | | Task-number: QTBUG-100485 Pick-to: 6.3 6.2 Change-Id: Ib8c5160ca0994662a5fdc2293dc734c1bdcac4f2 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Core: make Unicode Database constexprYuhang Zhao2022-05-261-11/+11
| | | | | | | | Task-number: QTBUG-100485 Pick-to: 6.3 6.2 Change-Id: I41480a34b14fd86a68a5c10b7e0f3d250e785d0f Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Unicode: Extract EastAsianWidth propertyIevgenii Meshcheriakov2022-05-242-2/+2695
| | | | | | | | | | This property is needed to properly implement the line breaking algorithm from UAX #14. Task-number: QTBUG-97537 Pick-to: 6.3 Change-Id: Ia83cc553c9ef19fae33560721630849d2a95af84 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Unicode: Remove obsolete word break classesIevgenii Meshcheriakov2022-05-241-12/+0
| | | | | | | | | | Remove E_Base, Glue_After_Zwj, E_Base_GAZ, and E_Modifier obsoleted by UTS #29, version 33 (Unicode 11.0.0). Task-number: QTBUG-97537 Pick-to: 6.2 6.3 Change-Id: If5dc36ae17cd8746bbe81b73bbcc0863181e4a7a Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Android: fix default name of the CI emulatorAssam Boudjelthia2022-05-191-1/+1
| | | | | | | | | | This name was changed in qt5/coin but wasn't reflected here. Currently, things works correctly because the test target provide the correct name as an env var. Pick-to: 6.2 6.3 Change-Id: I8968285de2c7759d16f303c48d6295295dffbef6 Reviewed-by: Simo Fält <simo.falt@qt.io>
* Add an exception in testrunner for QDocLuca Di Sera2022-05-191-1/+3
| | | | | | | | | | | | | | | QDoc recently added some tests that use Catch2 instead of testlib. Similarly to selftests, the normal behavior of `qt-testrunner.py` will fail, trying to pass an argument that is not supported by Catch2 when running the tests in CI. To avoid the issue, an exception for the test executables that QDoc uses was added to `qt-testrunner.py`, using the already available mechanism that is used for selftests. Change-Id: I5eb4b75f239eda0c493fb06ece164545d159372b Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-1690-2699/+204
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* util/x86simdgen: update with the copyright headerThiago Macieira2022-05-061-0/+1
| | | | | | | Matching update done in https://github.com/opendcdiag/opendcdiag/pull/78 Change-Id: I5ff8e16fcdcb4ffd9ab6fffd16ec02591cb5ed70 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Fix build of util/glgenJoerg Bornemann2022-05-063-2/+3
| | | | | | | | Don't use QSet::toList(), and fix an obvious typo. Also, core5compat is now needed due to the use of QRegExp. Change-Id: I766455996c07d354e97a4ed4939f1774fc449331 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Add a simple Qt 6/CMake-compatible script a la includemocs.pyMarc Mutz2022-05-051-0/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Perl is dead and I don't speak Python, so if someone wants to port it, be my guest. I needed something that I can use to roll out includemocs across all Qt modules, and this is it. It works for me™, so I don't expect to do much development with it. This is an automated committer script I've been using so far: # SRCDIR=~~~ # BUILDDIR=~~~~ cd $BUILDDIR find */src -name mocs_compilation.cpp | while read FILE; do if grep -qsE '^#include' "$FILE"; then DIR="$(dirname "$FILE")" LIB="$(basename "$DIR")" case "$LIB" in Q*) LIB="${LIB%%_autogen}" ;; *) LIB="Qt${LIB%%_autogen}" ;; esac DIR="${DIR%/*}" path/to/includemocs6.sh "$SRCROOT/$DIR" "$DIR" "$FILE" (cd "$SRCROOT/$DIR" && git commit -am "$LIB: includemocs $(cat "$SRCROOT/commit-msg.txt")" --no-edit) fi done If the script cannot associate a moc file with a cpp file, it will print a warning and continue. The script tries to include the moc-file right after the QT_END_NAMESPACE to work around many TUs ending in an #endif from some #if QT_CONFIG or other. If there's no QT_END_NAMESPACE, it appends the include and prints a warning. Fixes: QTBUG-102886 Pick-to: 6.3 6.2 Change-Id: I16c5a9f845777ea2e82f15611b4fdd32f98ce0bb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Generalize exclusion listDimitrios Apostolou2022-04-221-4/+8
| | | | | | | | | | It seems there are some tests in the various Qt modules that skip writing the XML testlog file. If there are good reasons for that (for example test is a custom shellscript) then it should be added to the DUMB_TESTS list. Change-Id: Iffb00e1fda42bb8e7338a94c9320e45900db1bc1 Reviewed-by: Daniel Smith <Daniel.Smith@qt.io>
* qt-testrunner: improve error loggingDimitrios Apostolou2022-04-221-9/+12
| | | | | | | | Do not print full stack traces when a controlled exception occurs, instead print just the exception name and the message. Change-Id: I5669862d2e98c550d88d1d11fb2bf49f197cfc17 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove the qmake2cmake wrapper scripts and document where they areJoerg Bornemann2022-04-123-6/+3
| | | | | | Pick-to: 6.3 Change-Id: Ib36f4e614845a3b375f4a86239fa7e6e26d7adea Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix generation of qsimd_x86 files to require no hand-editingEdward Welbourne2022-04-072-2/+8
| | | | | | | | | | | | | | | | | | Recent fixes to include the "We mean it" comment in the header also lead to that comment appearing in the generated .cpp file, which also lacked the "This is a generated file. DO NOT EDIT." comment. The generated header also lacked a blank line after the "We mean it" comment, so include that (and take it out, too, in the .cpp). The "Please see" line of the "DO NOT EDIT" comment also used the name of the generator script as seen from the Makefile that drives the regeneration; replace this with the README.md file that actually explains how to regenerate the files in corelib/global/. This amends commit 71af0d7059d47a199e1d26de6573d6a5038caa30 and commit b852584556bec3750bad7fac984b6fc5af4c870f Change-Id: I4b5b4dbef5954819632bb625d1914a9ec46e15d9 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qt-testrunner: be more strict if bad XML log files are writtenDimitrios Apostolou2022-04-052-11/+34
| | | | | | | | | | | | | | | | | | | | | | | If a test returns 0 but writes an XML logfile that contains FAIL or a corrupted XML file, then qt-testrunner considers it a CRASH and exits with 3. Previously any test execution returning 0 (success) was considered a PASS. Changing this behavior with this patch finds a lot of test crashes on Android (QTBUG-100470), because the tests are run indirectly on the emulator and the test wrapper process could not detect the crash, thus returning 0 to qt-testrunner. But the corrupt XML file is caught now. Likewise, if a test returns != 0 but the XML logfile contains only PASS, qt-testrunner considers it a FAIL. This used to be the case but now tests are added. Finally changed logging for such cases from INFO to WARNING. Task-number: QTBUG-100470 Change-Id: I404c9d2211c7de027bf776d1914519d37f513ca1 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* Add WASM testrunnerDavid Skoland2022-03-313-0/+261
| | | | | | | | | Add a python script that allows us to run wasm tests in CI, along with the necessary cmake logic to install the script and execute tests accordingly. Change-Id: I93b95c115538c4e27b2b833405acab8162be2a8a Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* pro2cmake: Introduce qmake2cmake convenience scriptsJoerg Bornemann2022-03-083-53/+111
| | | | | | | | | | | Add qmake2cmake[.bat] wrapper scripts that can be used to convert user projects to CMake. For now, user projects are internally handled as Qt examples with one difference: the generation of example-specific installation code is suppressed. Fixes: QTBUG-98655 Change-Id: I1a57f6d12efe0bdf383592ab33682a611692db80 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Handle QT_(MAJOR_|MINOR_|PATCH_)VERSION conditionsJoerg Bornemann2022-03-083-0/+38
| | | | | | Task-number: QTBUG-98852 Change-Id: I4c86fff7bbcc6c42cd04094f2409c3d04779597c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Remove INSTALL_LOCATION from qt_add_qml_module callsJoerg Bornemann2022-03-081-1/+1
| | | | | | | This function does not handle installation. Change-Id: I02fdc244f49b5935aa1ac51bff8a25970ad3a335 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Generate find_package call for Qt5/Qt6 for examplesJoerg Bornemann2022-03-082-5/+19
| | | | | | | | This makes the QT_VERSION_(MAJOR|MINOR|PATH) variables available. Task-number: QTBUG-98852 Change-Id: I7e40f2a7ac09975ce21e45cda384af928e1fa629 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Handle optional Qt modulesJoerg Bornemann2022-03-084-7/+54
| | | | | | | | | ...and write a separate find_package(Qt6 OPTIONAL_COMPONENTS Foo Bar) call for those. Task-number: QTBUG-96799 Change-Id: I3386487774c386edde6767dca92ce433bfed906e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Add a blackbox test for converting from qmake to CMakeJoerg Bornemann2022-03-082-0/+76
| | | | | | | | | If you can set the environment variable DEBUG_PRO2CMAKE_TEST_CONVERSION to 1, the output of pro2cmake is written to the temp directory. This helps analysing test failures. Change-Id: Ida42c5b76a67172d00ce0d2488adc7fb376c6b11 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Enable AUTOUIC only if the project has FORMSJoerg Bornemann2022-03-081-1/+5
| | | | | Change-Id: I1bf232fa3c389eb86707d3af04de6cf9eb09451a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Write only one find_package call for Qt packagesJoerg Bornemann2022-03-082-3/+21
| | | | | | Task-number: QTBUG-96799 Change-Id: I1eb8ac05f360b74e5ae1217b5535a33227b5084b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Add LibraryMapping.componentsJoerg Bornemann2022-03-081-248/+188
| | | | | | | | | | | | LibraryMapping.components is a list that holds the sub-components of a CMake package. Before, we held this information in LibraryMapping.extra as find_package argument. A subsequent patch will make use of LibraryMapping.components and doesn't have to do find_package argument parsing. Change-Id: Ie0d317245fb6ec1511e06b2e14c364292fced63a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Make generated examples use qt_add_qml_module()Joerg Bornemann2022-03-081-197/+342
| | | | | | | | | | | | | | | | We prefer it when the CMakeLists.txt project files for examples use qt_add_qml_module() when adding resource files, rather than qt6_add_resource(). A bit of refactoring was needed to re-use the code that extracts resource information from the .pro file. The new function write_qml_module is now responsible for writing qt_add_qml_module calls. Task-number: QTBUG-96799 Change-Id: I74dc2d681dcf4fc848e1147b3232ce9a9e0946c9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Re-add missing 'we mean it' headerKai Köhne2022-03-071-0/+10
| | | | | | | | | This got lost in commit b852584556bec3750bad7fac984b6fc5af4c870f . Also augment util/x86simdgen/header so that the header is automatically included when qsimd_x86_p.h is re-generated. Change-Id: I3e59b983f78b8c1aced3757e1aa5dceb6d653d97 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* pro2cmake: Fix indentation of INSTALL_EXAMPLESDIR assignmentJoerg Bornemann2022-03-031-1/+1
| | | | | Change-Id: If1f5d8b5afc76fac62fdf9836a17c4ab87ddc1b1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* pro2cmake: Fix static type errors in condition_simplifier_cache.pyJoerg Bornemann2022-03-031-5/+1
| | | | | | | | | | | | | | | | | Mypy reported the following: condition_simplifier_cache.py:111: error: Argument 1 has incompatible type "*List[str]"; expected "Optional[float]" file_handle = file_open_func(*file_open_args, **file_open_kwargs) ^ condition_simplifier_cache.py:111: error: Argument 2 has incompatible type "**Dict[str, object]"; expected "Union[str, Path]" file_handle = file_open_func(*file_open_args, **file_open_kwargs) Fix by calling portalocker.Lock directly. Change-Id: I538319791b1a4a1b6dffac0544d87c705e8809a7 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Rename FindZSTD to FindWrapZSTDAlexandru Croitor2022-02-281-1/+1
| | | | | | | | | | | | And the target ZSTD::ZSTD to WrapZSTD::WrapZSTD. This should allow building Qt with the -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON set. Pick-to: 6.2 6.3 Fixes: QTBUG-100537 Change-Id: I748601e4ad6f518323bf1034d6fc1de582c815e1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* pro2cmake: Update README.mdJoerg Bornemann2022-02-281-9/+3
| | | | | | | | | | | | | | Mention that flake8 and black can be run via Makefile targets. Remove the outdated list of flake8 warnings. The Makefile ignores more warnings/errors, and it doesn't seem to be useful to duplicate this list here. Also remove the description of the black tool's arguments for the same reason. Change-Id: I941c3ab68b7a3d2477f7fbb5d28603987d0b2cab Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>