From 0be9f7537a51147e23457bcd6e19ab21668a793b Mon Sep 17 00:00:00 2001 From: rickwu4444 Date: Tue, 8 Oct 2024 09:50:34 +0800 Subject: [PATCH] Fix the logic of look up xtest Handle no xtest installed Handle find different snap of xtest and tee --- .../bin/look_up_xtest.py | 29 +++++++------------ .../bin/parse_optee_test.py | 9 +++--- .../bin/xtest_install_ta.py | 4 +-- 3 files changed, 17 insertions(+), 25 deletions(-) diff --git a/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/look_up_xtest.py b/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/look_up_xtest.py index 87ecaa7b8b..aabd9fe512 100755 --- a/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/look_up_xtest.py +++ b/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/look_up_xtest.py @@ -14,29 +14,20 @@ def list_apps(self, snaps): return self._get(self._apps, params={"names": snaps}) -def look_up_apps(apps, snap_name=None): +def look_up_xtest(): """Lookup xtest and tee-supplicant apps.""" + a = ExtendSanpd() + snap = os.environ.get("XTEST") + apps = a.list_apps(snap) results = {"xtest": None, "tee": None} - if apps: - for app in apps: + if apps["result"]: + for app in apps["result"]: if app["name"] == "xtest": results["xtest"] = "{}.xtest".format(app["snap"]) if app["name"] == "tee-supplicant": results["tee"] = "{}.tee-supplicant".format(app["snap"]) - if snap_name: - results["xtest"] = "{}.xtest".format(snap_name) - results["tee"] = "{}.tee-supplicant".format(snap_name) + if results["xtest"] is None or results["tee"] is None: + raise SystemError("Can not find xtest snap in the system.") + if results["xtest"].split('.')[0] != results["tee"].split('.')[0]: + raise SystemError("Find more then one xtest snap in the system.") return results - - -def main(): - a = ExtendSanpd() - snap = os.environ.get("XTEST") - - apps = a.list_apps() - app_results = look_up_apps(apps, snap) - return app_results - - -if __name__ == "__main__": - print(main()) diff --git a/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/parse_optee_test.py b/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/parse_optee_test.py index 5b3431b88e..f49a16858e 100755 --- a/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/parse_optee_test.py +++ b/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/parse_optee_test.py @@ -2,7 +2,7 @@ import json import argparse -import look_up_xtest +from look_up_xtest import look_up_xtest def parse_json_file(filepath, filter=False, xtest=None): @@ -38,10 +38,11 @@ def main(): ) args = parser.parse_args() try: - xtest = look_up_xtest.main() - except SystemExit: + xtest = look_up_xtest() + xtest = xtest["xtest"] + except SystemError: xtest = None - parse_json_file(args.filepath, args.pkcs11, xtest["xtest"]) + parse_json_file(args.filepath, args.pkcs11, xtest) if __name__ == "__main__": diff --git a/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/xtest_install_ta.py b/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/xtest_install_ta.py index 1de61f8665..f17dde3aab 100755 --- a/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/xtest_install_ta.py +++ b/contrib/checkbox-ce-oem/checkbox-provider-ce-oem/bin/xtest_install_ta.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import look_up_xtest +from look_up_xtest import look_up_xtest from subprocess import run, CalledProcessError @@ -52,7 +52,7 @@ def enable_tee_supplicant(tee): def main(): - xtest = look_up_xtest.main() + xtest = look_up_xtest() enable_tee_supplicant(xtest["tee"]) ta_path = find_ta_path() install_ta(xtest["xtest"], ta_path)