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.