summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAl Semjonovs <asemjonovs@google.com>2022-09-12 14:35:57 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-15 04:05:10 +0000
commitaed543817f66b5f011f23393b5de7b9a02b85f54 (patch)
tree42f64fbc05d231510eba54563048dc3f8c2e5ce4
parent73efce162d439ee704c6522cf0e40492a03f74f7 (diff)
downloadchrome-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-xutil/twister_launcher.py53
-rwxr-xr-xzephyr/firmware_builder.py1
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: