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.

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.

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.