diff options
author | Al Semjonovs <asemjonovs@google.com> | 2022-09-12 14:35:57 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-15 04:05:10 +0000 |
commit | aed543817f66b5f011f23393b5de7b9a02b85f54 (patch) | |
tree | 42f64fbc05d231510eba54563048dc3f8c2e5ce4 | |
parent | 73efce162d439ee704c6522cf0e40492a03f74f7 (diff) | |
download | chrome-ec-aed543817f66b5f011f23393b5de7b9a02b85f54.tar.gz |
zephyr: upload test results for local runs
Upload test results for local twister runs
BUG=None
BRANCH=NONE
TEST=./twister -T zephyr/test --no-upload-cros-rdb;
./twister -T zephyr/test
Signed-off-by: Al Semjonovs <asemjonovs@google.com>
Change-Id: I1ce87ab44fcfcf5ad96f3eb7c6f097bc36643985
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3891682
Commit-Queue: Yuval Peress <peress@google.com>
Reviewed-by: Yuval Peress <peress@google.com>
-rwxr-xr-x | util/twister_launcher.py | 53 | ||||
-rwxr-xr-x | zephyr/firmware_builder.py | 1 |
2 files changed, 54 insertions, 0 deletions
diff --git a/util/twister_launcher.py b/util/twister_launcher.py index 1dc178a34d..6fd871d31b 100755 --- a/util/twister_launcher.py +++ b/util/twister_launcher.py @@ -64,6 +64,7 @@ parameters that may be used, please consult the Twister documentation. import argparse import os +import re import shlex import subprocess import sys @@ -133,6 +134,51 @@ def find_modules(mod_dir: Path) -> list: return modules +def is_rdb_login(): + """Checks if user is logged into rdb""" + cmd = ["rdb", "auth-info"] + ret = subprocess.run(cmd, capture_output=True, text=True, check=False) + + if ret.returncode == 0: + print("\nrdb auth-info: " + ret.stdout.split("\n")[0]) + else: + print("\nrdb auth-info: " + ret.stderr) + + return ret.returncode == 0 + + +def upload_results(ec_base): + """Uploads Zephyr Test results to ResultDB""" + flag = False + + if is_rdb_login(): + json_path = ec_base / "twister-out" / "twister.json" + cmd = [ + "rdb", + "stream", + "-new", + "-realm", + "chromium:public", + "--", + str(ec_base / "util/zephyr_to_resultdb.py"), + "--result=" + str(json_path), + "--upload=True", + ] + + ret = subprocess.run(cmd, capture_output=True, text=True, check=True) + + # Extract URL to test report from captured output + rdb_url = re.search( + r"(?P<url>https?://[^\s]+)", ret.stderr.split("\n")[0] + ).group("url") + print("\nTEST RESULTS: " + rdb_url + "\n") + flag = ret.returncode == 0 + else: + print("Unable to upload test results, please run 'rdb auth-login'\n") + + return flag + + def main(): """Run Twister using defaults for the EC project.""" @@ -192,6 +238,10 @@ def main(): parser.add_argument( "--gcov-tool", default=str(ec_base / "util" / "llvm-gcov.sh") ) + parser.add_argument( + "--no-upload-cros-rdb", dest="upload_cros_rdb", action="store_false" + ) + intercepted_args, other_args = parser.parse_known_args() for _ in range(intercepted_args.verbose): @@ -248,6 +298,9 @@ def main(): else: print("TEST EXECUTION FAILED") + if intercepted_args.upload_cros_rdb: + upload_results(ec_base) + sys.exit(result.returncode) diff --git a/zephyr/firmware_builder.py b/zephyr/firmware_builder.py index 2bb5f95c41..436760361a 100755 --- a/zephyr/firmware_builder.py +++ b/zephyr/firmware_builder.py @@ -45,6 +45,7 @@ def run_twister(platform_ec, code_coverage=False, extra_args=None): "native_posix", "-p", "unit_testing", + "--no-upload-cros-rdb", ] if extra_args: |