Precheck

Gerrit has functionality to start a precheck in Coin for a given change. Precheck runs specified preset or configurations and posts a comment in gerrit of the outcome.

Note

At the moment insignificant configurations are excluded in all cases, if trying to schedule insignificant configuration via precheck it will either result in either missing config or no configs at all.

Types

Precheck has 3 types: default, full and custom.

Default

Default runs configurations from precheck.yaml in product repository.

Full

Full precheck runs all configurations that normal integration would, excluding insignificant configs.

Downstream check

The downstream check will allow testing a change as part of qt5. Mainly this is to test what effects will the change have in downstream modules.

The downstream check can be triggered from any qt5 submodules. The change where the downstream check is triggered will be used as a checkout in place of the module in current qt5 HEAD.

For configurations default precheck set is used.

Custom

The custom precheck can be used to run a custom set of targets. This is useful if the change only affects some kind of platforms or will to test only on a certain platform.

The custom precheck takes a string as input in format of attribute value pairs which can be optionally chained with “and” and “or” operators:

"<attribute>: <value> [operator]"

The custom precheck supports the following attributes:

  • os

  • osversion

  • arch

  • compiler

  • feature

  • id

Os, osversion, arch and compiler are matched against target. The target values can be seen in Coin logs at around line 13, those look like:

Target: os: Windows, osVersion: WebAssembly, compiler: Clang, arch: X86_64

Feature is matched against configuration’s features. Id is the platform configuration id and can be found in the logs around line 10 and in the first column in configure listings. examples:

"id: wayland" Matches to all configurations which have wayland in the id.
"id: windows-11_22h2-llvm" Exact id of known problematic platform.
"osversion: qemu" All QEMU targets.
"os: qnx" All QNX targets.
"feature: testdocs" Targets with testdocs feature.

“and” and “or” operators can be used in the string:

"osversion: rhel or ubuntu" rhel and ubuntu configurations.
"os: macos or windows and compiler: clang" macOS and windows targets with clang compiler.
"feature: bar and arch: arm" targets with bar feature and arm arch.

Negate operator is supported:

"os: windows and compiler: -mingw" windows platforms without mingw targets.
"os: -mac" everything else than macOS.