From c1b6fdd0d96107cf3b8dd2f14d698e01149eb4a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simo=20F=C3=A4lt?= Date: Mon, 15 Mar 2021 16:50:28 +0200 Subject: Add instructions to collect results from COIN test run Change adds coin_ctest_runner.py which is used to pass test arguments for testcase. Results are stored to xml files, which are then parsed by COIN. Data that we are interested in, is injected to influx db. Task-number: COIN-643 Change-Id: Ib1c99fc8aacc6a6b5863d282f3435fe1cfdcd013 Reviewed-by: Alexandru Croitor --- .../cmake_run_ctest_enforce_exit_code.yaml | 41 ++++++++++++++++++++++ .../cmake_setup_running_tests_env_vars.yaml | 32 +++++++++++++++++ 2 files changed, 73 insertions(+) (limited to 'coin/instructions') diff --git a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml b/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml index 0d99faddcd..5e57b50951 100644 --- a/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml +++ b/coin/instructions/cmake_run_ctest_enforce_exit_code.yaml @@ -1,5 +1,46 @@ 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: "python3 {{.SourceDir}}/coin_ctest_runner.py" + disable_if: + condition: or + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: features + contains_value: AndroidTestRun + - type: EnvironmentVariable + variableName: TESTRUNNER + variableValue: "{{.SourceDir}}\\coin_ctest_runner.py" + enable_if: + condition: property + property: host.os + equals_value: Windows + - 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 - type: EnvironmentVariable variableName: CTEST_ARGS variableValue: "-V --rerun-failed --force-new-ctest-process --repeat until-pass:5" diff --git a/coin/instructions/cmake_setup_running_tests_env_vars.yaml b/coin/instructions/cmake_setup_running_tests_env_vars.yaml index ac909a95cc..be0f81dfa7 100644 --- a/coin/instructions/cmake_setup_running_tests_env_vars.yaml +++ b/coin/instructions/cmake_setup_running_tests_env_vars.yaml @@ -3,6 +3,38 @@ instructions: - type: EnvironmentVariable variableName: QTEST_ENVIRONMENT variableValue: "ci" + - type: WriteFile + fileContents: | + #!/usr/bin/python3 + import subprocess + import calendar + import datetime + import time + import sys + import os + import re + from os.path import expanduser + home = expanduser("~") + + file=os.path.basename(sys.argv[1]) + timestamp = str(round(time.time() * 1000)) + results_file = home + "/work/testresults/" + file +"-" + timestamp + ".xml,xml" + testargs = ["-o", results_file, "-o", "-,txt"] + if re.search("testlib.selftests.tst_selftests", sys.argv[1]): + testargs = [] + exit(subprocess.call([sys.argv[1]] + testargs)) + filename: "{{.SourceDir}}/coin_ctest_runner.py" + fileMode: 755 + - type: ExecuteCommand + command: "chmod 755 {{.SourceDir}}/coin_ctest_runner.py" + maxTimeInSeconds: 10 + maxTimeBetweenOutput: 10 + userMessageOnFailure: > + Failed to change file permission. + disable_if: + condition: property + property: host.os + equals_value: Windows - type: Group instructions: - type: EnvironmentVariable -- cgit v1.2.3