qtbase/coin/instructions/cmake_run_ctest.yaml
Marianne Yrjänä 93e78b87bf Add QNX8.0 CI enablers
Task-number: QTBUG-131708
Pick-to: 6.8
Change-Id: I60c1be5fc117e5861147d9b194106b63a8b62aab
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit f673d381295ccafe9d993277655e57eaae630e89)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-03-24 18:27:25 +00:00

224 lines
7.6 KiB
YAML

type: Group
instructions:
- type: ScheduleUploadTestResults
- type: PrependToEnvironmentVariable
variableName: PATH
variableValue: "{{.Env.PYTHON3_PATH}}:"
disable_if:
condition: property
property: host.os
equals_value: Windows
- type: EnvironmentVariable
variableName: TESTRUNNER
variableValue: "{{.Env.LIBEXEC_INSTALL_DIR}}qt-testrunner.py --"
# Running wasm tests with the coin testrunner is not yet implemented
disable_if:
condition: property
property: target.osVersion
in_values: [WebAssembly]
- type: AppendToEnvironmentVariable
variableName: TESTRUNNER
variableValue: " {{.SourceDir}}/coin_qnx_qemu_runner.sh"
enable_if:
condition: property
property: target.os
equals_value: QNX
- type: AppendToEnvironmentVariable
variableName: TESTRUNNER
variableValue: " {{.AgentWorkingDir}}/coin_vxworks_qemu_runner.sh"
enable_if:
condition: property
property: target.osVersion
in_values: [VxWorks]
- type: Group
enable_if:
condition: property
property: features
contains_value: UseAddressSanitizer
instructions:
- type: EnvironmentVariable
variableName: ASAN_OPTIONS
variableValue: "malloc_context_size=100:detect_leaks=0"
- type: EnvironmentVariable
# Override qt-testrunner as we don't want to gather test statistics
# because many tests FAIL when built with ASAN.
variableName: TESTRUNNER
variableValue: "{{.Env.LIBEXEC_INSTALL_DIR}}sanitizer-testrunner.py"
- type: EnvironmentVariable
variableName: COIN_CTEST_RESULTSDIR
variableValue: "{{.AgentWorkingDir}}\\testresults"
enable_if:
condition: property
property: host.os
equals_value: Windows
- type: EnvironmentVariable
variableName: COIN_CTEST_RESULTSDIR
variableValue: "{{.AgentWorkingDir}}/testresults"
disable_if:
condition: property
property: host.os
equals_value: Windows
- !include "{{qt/qtbase}}/vxworks_test_env_setup.yaml"
# Only output verbose test output for failures, unless
# the VerboseCTestOutput feature is enabled. The full
# test output for all tests are still stored and uploaded
# to coin for deeper investigations (see LastTest.log below)
- type: AppendToEnvironmentVariable
variableName: CTEST_ARGS
variableValue: " --output-on-failure"
disable_if:
condition: property
property: features
contains_value: VerboseCTestOutput
- type: AppendToEnvironmentVariable
variableName: CTEST_ARGS
variableValue: " -V"
enable_if:
condition: property
property: features
contains_value: VerboseCTestOutput
- type: AppendToEnvironmentVariable
variableName: CTEST_ARGS
variableValue: " --stop-on-failure"
enable_if:
condition: property
property: features
contains_value: AbortTestingOnFirstFailure
- type: AppendToEnvironmentVariable
variableName: CTEST_ARGS
variableValue: " --no-label-summary"
# Enable CTest's JUnit XML summary
- type: AppendToEnvironmentVariable
variableName: CTEST_ARGS
variableValue: " --output-junit {{.Env.COIN_CTEST_RESULTSDIR}}{{.Env.CI_PATH_SEP}}test_summary.ctest_junit_xml"
disable_if: # CMake < v3.21 does not support it
condition: and
conditions:
- condition: runtime
env_var: CMAKE_MIN_SUPPORTED_BIN_PATH
not_equals_value: null
- condition: runtime
env_var: PATH
contains_value: "{{.Env.CMAKE_MIN_SUPPORTED_BIN_PATH}}"
- !include "{{qt/qtbase}}/coin_module_test_android_start_emulator.yaml"
- type: EnvironmentVariable
variableName: COIN_CROSS_PLATFORM_VERSION_TEST
variableValue: "TRUE"
enable_if:
condition: and
conditions:
- condition: property
property: platformDependency
not_equals_value: null
- condition: property
property: platformDependency.target.osVersion
not_equals_property: target.osVersion
- condition: property
property: features
contains_value: TestOnly
# Run CTest, with or without ignoring exit code
# FIXME: De-duplicate the CTest instruction when
# ignoreExitCode expands environment variables.
- type: Group
enable_if:
condition: runtime
env_var: COIN_CTEST_IGNORE_EXIT_CODE
not_equals_value: "1"
instructions:
- type: ExecuteCommand
command: "{{.Env.TESTS_ENV_PREFIX}} ctest {{.Env.CTEST_ARGS}}"
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
ignoreExitCode: false
maxTimeInSeconds: 14400
maxTimeBetweenOutput: 14400
userMessageOnFailure: >
Failed to run tests.
- type: ExecuteCommand
command: >
cmake -E copy
Testing{{.Env.CI_PATH_SEP}}Temporary{{.Env.CI_PATH_SEP}}LastTest.log
{{.Env.COIN_CTEST_RESULTSDIR}}{{.Env.CI_PATH_SEP}}CTest.log
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
ignoreExitCode: false
userMessageOnFailure: >
Failed to copy LastTest.log to testresults directory.
executeOn: always
- type: Group
enable_if:
condition: runtime
env_var: COIN_CTEST_IGNORE_EXIT_CODE
equals_value: "1"
instructions:
- type: ExecuteCommand
command: "{{.Env.TESTS_ENV_PREFIX}} ctest {{.Env.CTEST_ARGS}}"
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
ignoreExitCode: true
maxTimeInSeconds: 14400
maxTimeBetweenOutput: 14400
userMessageOnFailure: >
Failed to run tests.
- type: ExecuteCommand
command: >
cmake -E copy
Testing{{.Env.CI_PATH_SEP}}Temporary{{.Env.CI_PATH_SEP}}LastTest.log
{{.Env.COIN_CTEST_RESULTSDIR}}{{.Env.CI_PATH_SEP}}CTest.log
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
ignoreExitCode: true
userMessageOnFailure: >
Failed to copy LastTest.log to testresults directory.
executeOn: always
- type: Group
instructions:
# Qttestrunner does not work with bic tests.
- type: EnvironmentVariable
variableName: TESTRUNNER
variableValue: ""
- type: EnvironmentVariable
variableName: QT_MODULE_TO_TEST
variableValue: "{{.SourceDir}}"
- type: PrependToEnvironmentVariable
variableName: PATH
variableValue: "{{.InstallDir}}/bin:"
- type: InstallSourceArchive
maxTimeInSeconds: 600
maxTimeBetweenOutput: 600
project: qt/qtqa
ref: dev
directory: qt/qtqa
userMessageOnFailure: "Could not install qt/qtqa source archive. Please investigate why."
- type: ChangeDirectory
directory: "{{.AgentWorkingDir}}/qt/qtqa/tests/postbuild/bic"
- type: ExecuteCommand
command: ["{{.InstallDir}}/bin/qmake"]
maxTimeInSeconds: 7200
maxTimeBetweenOutput: 300
userMessageOnFailure: "Failed to execute qmake for bic tests"
- type: RunQtUnitTest
runTestCommand: ["make", "check", "-j1"]
directory: "{{.AgentWorkingDir}}/qt/qtqa/tests/postbuild/bic"
testRepetitionAllowance: 0
maxTimeInSeconds: 7200
maxTimeBetweenOutput: 300
userMessageOnFailure: "Running bic tests failed."
enable_if:
condition: and
conditions:
- condition: property
property: features
contains_value: Packaging
- condition: property
property: target.os
equals_value: Linux
- condition: property
property: features
contains_value: EnableBicTests