diff options
Diffstat (limited to 'coin/instructions/cmake_run_ctest_enforce_exit_code.yaml')
-rw-r--r-- | coin/instructions/cmake_run_ctest_enforce_exit_code.yaml | 129 |
1 files changed, 114 insertions, 15 deletions
diff --git a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml b/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml index 5e57b50951..a7039b5015 100644 --- a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml +++ b/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml @@ -10,23 +10,33 @@ instructions: equals_value: Windows - type: EnvironmentVariable variableName: TESTRUNNER - variableValue: "python3 {{.SourceDir}}/coin_ctest_runner.py" + variableValue: "{{.Env.LIBEXEC_INSTALL_DIR}}qt-testrunner.py --" + # Running wasm tests with the coin testrunner is not yet implemented disable_if: - condition: or - conditions: - - condition: property - property: host.os - equals_value: Windows - - condition: property - property: features - contains_value: AndroidTestRun - - type: EnvironmentVariable + condition: property + property: target.osVersion + in_values: [WebAssembly] + - type: AppendToEnvironmentVariable variableName: TESTRUNNER - variableValue: "{{.SourceDir}}\\coin_ctest_runner.py" + variableValue: " {{.SourceDir}}/coin_qnx_qemu_runner.sh" enable_if: condition: property - property: host.os - equals_value: Windows + property: target.osVersion + in_values: [QNX_710] + - 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" @@ -41,9 +51,24 @@ instructions: condition: property property: host.os equals_value: Windows + + # Keep the testrun quiet for ASAN testruns, since there are FAILs happening all over the place... - type: EnvironmentVariable variableName: CTEST_ARGS - variableValue: "-V --rerun-failed --force-new-ctest-process --repeat until-pass:5" + variableValue: "-V" + disable_if: + condition: property + property: features + contains_value: UseAddressSanitizer + # ...and only print the output from a failing test, i.e. test with ASAN errors. + - type: EnvironmentVariable + variableName: CTEST_OUTPUT_ON_FAILURE + variableValue: "1" + enable_if: + condition: property + property: features + contains_value: UseAddressSanitizer + - type: AppendToEnvironmentVariable variableName: CTEST_ARGS variableValue: " --stop-on-failure" @@ -51,11 +76,85 @@ instructions: condition: property property: features contains_value: AbortTestingOnFirstFailure + + # Enable CTest's JUnit XML summary only for recent versions + - type: AppendToEnvironmentVariable + variableName: CTEST_ARGS + variableValue: " --output-junit {{.Env.COIN_CTEST_RESULTSDIR}}{{.Env.CI_PATH_SEP}}test_summary.ctest_junit_xml" + enable_if: + condition: runtime + env_var: CMAKE_MIN_SUPPORTED_BIN_PATH + equals_value: null + + - !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 + - type: ExecuteCommand command: "{{.Env.TESTS_ENV_PREFIX}} ctest {{.Env.CTEST_ARGS}}" executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution ignoreExitCode: false maxTimeInSeconds: 10800 - maxTimeBetweenOutput: 900 + maxTimeBetweenOutput: "{{.Env.COIN_COMMAND_OUTPUT_TIMEOUT}}" userMessageOnFailure: > Failed to run tests. + + - 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 |