aboutsummaryrefslogtreecommitdiffstats
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* ConfigureBuildQt: Reconfigure standalone parts alsoCristian Le2025-06-072-0/+71
| | | | | Change-Id: Iaa985d43206d365b7e9138925801fc0dbccbde2e Reviewed-by: Alexandru Croitor <[email protected]>
* ConfigureBuildQt: Move the standalone name constructionCristian Le2025-06-071-20/+49
| | | | | | | | Moved the name construction to a dedicated function so that it can be reused in `call_cmake_in_qt_build_dir` Change-Id: Iace4130e79cd08f622e762e2861948db5f2bd972 Reviewed-by: Alexandru Croitor <[email protected]>
* ConfigureBuildQt: Do another round of configureCristian Le2025-06-071-0/+33
| | | | | | | | | | | | | | After all repos are configured and built, do another round of reconfigure. This can catch issues in the find_package of plugins. E.g. when running the builds for qtbase -> qtdeclarative -> qtmultimedia, during the first pass qtdeclarative is reconfigured without any plugins present, but in the second pass additional plugins will be added in the `find_package` chain. Change-Id: I298492463e38e57f250ee22f1e8c7f880ce9940a Reviewed-by: Alexandru Croitor <[email protected]>
* ConfigureBuildQt: expose EXCLUDE_OPTIONAL_DEPS optionCristian Le2025-06-071-6/+19
| | | | | | | | This is enabled by default and replaces the hard-coded qtdeclarative dependencies. Change-Id: I58dbf4f801aeacf73a0f38a5cbdb856418bddae4 Reviewed-by: Alexandru Croitor <[email protected]>
* ConfigureBuildQt: Allow to test with local sourcesCristian Le2025-06-071-16/+30
| | | | | | | | When using local sources, the sync step is replaced with setting up symlinks to the current source folders. Change-Id: I16500c130b35b962e9d0398498e0c83d71bdc149 Reviewed-by: Alexandru Croitor <[email protected]>
* ConfigureBuildQt: Add CMAKE_GENERATOR option to standalone partsCristian Le2025-06-071-0/+7
| | | | | | | Also `configure_qt` did not have `CMAKE_GENERATOR` defined in the args. Change-Id: I84a2aed1b992d8169d92fe727094708d8bd447b0 Reviewed-by: Alexandru Croitor <[email protected]>
* Load RunCMake variables from cacheCristian Le2025-06-071-0/+11
| | | | | | | | Allow to define variables used in `ConfigureBuildQt` at configure time. The preference is local var -> environment var -> cache var -> default. Change-Id: Ib4bc4f31b3764a6c734e24562d18418560c3a8a8 Reviewed-by: Alexandru Croitor <[email protected]>
* CMake: Add RunCMake test to configure and build Qt in various waysAlexandru Croitor2025-05-174-0/+1503
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Coin CI only tests 'prefix' builds of Qt, because that's what we use for packaging. But many developers configure and build Qt in various ways which are not covered by tests. Introduce a new suite of RunCMake tests that configure and build Qt in all the different permutations that we know people use. This includes various combinations of: - prefix vs no-prefix - out-of-source vs in-source - per-repo vs top-level - building tests and examples in-tree vs out-of-tree - building examples as in-tree vs external projects - building more than one repo The aim is to run all or some subset of these tests in a nightly Coin CI run. It can also be a useful way to test "risky" unmerged changes in an automated way, instead of manually doing the various builds. The current default set of repos that are built are: qtbase, qtshadertools and qtdeclarative. The submodules that are built can be controlled by setting various cmake or env vars when configuring or running the test: - QT_CI_BUILD_QT_SYNC_MODULE - the main repo that should be checked out. Its dependencies will also be checked out, based on its dependencies.yaml info. - QT_CI_BUILD_QT_PIN_GIT_REF - the git sha1 or ref of the main repo that should be checked out - QT_CI_BUILD_QT_SKIP_SUBMODULES - a list of submodules that should be skipped, can be useful to skip optional dependencies - QT_CI_BUILD_QT_EXTRA_CHECKOUT_CHANGES - a list of gerrit commit sha1s or refs for each submodule to be checked out to specifically. - QT_CI_BUILD_QT_EXTRA_CHERRYPICK_CHANGES - a list of gerrit commit sha1s or refs to be cherry-picked on top of whatever commits the submodules were synced to. - QT_CI_BUILD_QT_FILTER - a list of filters to include or exclude test cases to run. Sample usage: mkdir build && cd build cmake ~/qt5/tests/manual/RunCMake # Run regular tests ctest -V -R RunCMake.ConfigureBuildQt # Skip some optional submodules of qtdeclarative export QT_CI_BUILD_QT_SYNC_MODULE=qtdeclarative export QT_CI_BUILD_QT_SKIP_SUBMODULES='qtimageformats,qtlanguageserver" ctest -V -R RunCMake.ConfigureBuildQt # Cherry-pick extra changes on top of the synced commits # repos are split by '|', commits by ',' export QT_CI_BUILD_QT_EXTRA_CHERRYPICK_CHANGES='qtbase aaabbbccc|qtshadertools a12,b23,b45,refs/changes/57/628457/2' ctest -V -R RunCMake.ConfigureBuildQt # Checkout specific commits for each submodule export QT_CI_BUILD_QT_EXTRA_CHECKOUT_CHANGES='qtbase refs/changes/54/634554/5|qtshadertools 3bb8a41c44fa69c30f6887685ad70ef7e84c10a6' ctest -V -R RunCMake.ConfigureBuildQt # Only run top-level no-prefix, but not in-source source builds export QT_CI_BUILD_QT_FILTER='top_level,no_prefix,-per_repo,-in_source' ctest -V -R RunCMake.ConfigureBuildQt Change-Id: I355084081dd7b48cdf75c03eb001b64ab7ba96fb Reviewed-by: Alexey Edelev <[email protected]> Reviewed-by: Cristian Le <[email protected]>
* CMake: Make the InitRepository test work in Coin CIAlexandru Croitor2025-04-021-3/+22
| | | | | | | | | | | | | Coin CI doesn't provide git info for the qt5.git repo, but only a source archive. The InitRepository test needs the git info to work correctly. When we detect that the test is run in the CI, instead of using the source archive, clone the qt5.git repo from code.qt.io instead. Then fetch and checkout the exact tested ref. Change-Id: I892545c083288a8d32d3f8957bfc64984d52f5fc Reviewed-by: Alexey Edelev <[email protected]>
* CMake: Make the InitRepository test stdout checking more robustAlexandru Croitor2025-04-024-12/+12
| | | | | | | | | | The previous stdout regular expressions were expect the build dir to be in the source dir. Relax that constraint, so any build dir can be used. Keep the generated 'tmp' part as the indicator for the build dir. Change-Id: Ib8c2bf31f80926b9209948a5c70859e086ed71a1 Reviewed-by: Alexey Edelev <[email protected]>
* CMake: Add check.cmake to check for errors in commandsAlexandru Croitor2025-04-022-1/+22
| | | | | | | | | | | | RunCMake uses SEND_ERROR instead of FATAL_ERROR in run_cmake(), which means that the script will continue to run even if a command fails. This change adds a check.cmake file and modifies run_suite_command to ensure that we exit early if a command fails. Change-Id: I8175ddc91144e3d0dea131857138af7940626208 Reviewed-by: Alexey Edelev <[email protected]>
* CMake: Adjust InitRepository test std output to current stateAlexandru Croitor2025-04-021-2/+3
| | | | | | | | | | The test has bit-rotted a bit since the last manual run. Adapt the modified litehtml submodule URL. Add the additional git config command to the output. Change-Id: I240274a0772d6024401e8d08f6c150d4f12ac8cb Reviewed-by: Alexey Edelev <[email protected]>
* CMake: Adjust to new location of RunCMakeTestHelpers in qtbaseAlexandru Croitor2025-04-023-7/+17
| | | | | | | | | | | | | | | | | | | Adjust the path to where expect to find the QtRunCMakeTestHelpers module in qtbase. Replace the usage of 'QtIRRunCMake' with 'RunCMake' in the root test CMakeLists.txt. Pass the current source dir as an extra module path to the RunCMake test, so it can find the Common module without relying on relative paths, so that any build dir works. Remove the unnecessary forwarding of CMAKE_SYSTEM_NAME. Amends e552513c9f4d5cf3ab31be4a6bf72462a965b6e1 Change-Id: If804bcb36a0bd3df6e4617e56c146094793138c4 Reviewed-by: Alexey Edelev <[email protected]>
* Remove `RunCMake` helpers from top-level repoCristian Le2025-02-121-1/+9
| | | | | | | These test helpers are moved to qtbase submodule. Change-Id: If8aa31fe1d9a93f2667249abd90ae9b8cb81d07a Reviewed-by: Alexandru Croitor <[email protected]>
* CMake: Add a test for init-repositoryAlexandru Croitor2024-02-288-0/+274
The new test uses the recently introduced upstream cmake test infrastructure module, to ensure the execution log output is identical between the old perl script and new the cmake script for a few basic use cases. It is not an exhaustive test of all features. It should work on Windows, macOS, Linux (assuming perl is installed). There are also a few tests that only apply to the cmake-script version for features that exist only in the latter (like the 'existing' module-subset key). The test is a 'manual' test instead of an 'auto' test because we don't really want to clone so many submodules as part of every qt5.git integration in Coin. In the future, we could potentially add a nightly Jenkins job to run the tests. Task-number: QTBUG-120030 Change-Id: I4201d734c2877109102518b073dec24bb63edc24 Reviewed-by: Tor Arne Vestbø <[email protected]> Reviewed-by: Joerg Bornemann <[email protected]> Reviewed-by: Alexey Edelev <[email protected]>