Update framework tools to add name in json
Name of the test can now come from the json description
rather than inferred from the directory. Old method remains to
keep functionality with older tests
Change-Id: I79f872103ae6a101b5cc799af91c933839f28dfb
diff --git a/verif/frameworks/tosa_verif_framework_compiler_runner.py b/verif/frameworks/tosa_verif_framework_compiler_runner.py
index 28e4369..fb33cfc 100755
--- a/verif/frameworks/tosa_verif_framework_compiler_runner.py
+++ b/verif/frameworks/tosa_verif_framework_compiler_runner.py
@@ -14,6 +14,7 @@
from datetime import datetime
from enum import IntEnum
from enum import unique
+from pathlib import Path
import numpy as np
from checker.tosa_result_checker import LogColors
@@ -278,30 +279,25 @@
def run_test(args, test, framework):
- # parse test_name from test directory path
- test_path = test.split("/")
+ test_path = Path(test)
+ msg = ""
+
+ try:
+ with open(test_path / "test.json", "r") as f:
+ test_desc = json.load(f)
+ except Exception:
+ raise Exception(f"Could not load or parse test from {test_path / 'test.json'}")
+
test_name = None
- for t in test_path[::-1]:
- if len(t) != 0:
- test_name = t
- break
+ if "name" in test_desc:
+ test_name = test_desc["name"]
+ else:
+ test_name = test_path.name
if not test_name:
raise Exception("Could not parse test_name from {}".format(test))
print_color(LogColors.GREEN, "## Running {} test {}".format(framework, test_name))
- msg = ""
-
- try:
- with open(os.path.join(test, "test.json"), "r") as f:
- test_desc = json.load(f)
- except Exception:
- raise Exception(
- "Could not load or parse test from {}".format(
- os.path.join(test, "test.json")
- )
- )
-
try:
if not args.override_exclusions:
for excl in test_desc["framework_exclusions"]:
diff --git a/verif/frameworks/tosa_verif_framework_generator.py b/verif/frameworks/tosa_verif_framework_generator.py
index 124bf6e..ec009c6 100755
--- a/verif/frameworks/tosa_verif_framework_generator.py
+++ b/verif/frameworks/tosa_verif_framework_generator.py
@@ -1288,6 +1288,8 @@
# Assume single result tensor now
tflite_result_name = output_details[0]["name"]
+ _, test_name = os.path.split(test_dir)
+
# Write out test descriptor
write_test_json(
filename=os.path.join(test_dir, "test.json"),
@@ -1302,6 +1304,7 @@
ifm_shape=placeholder_shapes,
framework_exclusions=excluded_framework_list,
quantized=is_quantized,
+ test_name=test_name,
)
except Exception as e:
msg = "Error running task: {}".format(e)
diff --git a/verif/frameworks/write_test_json.py b/verif/frameworks/write_test_json.py
index 68dfc8f..d52a777 100644
--- a/verif/frameworks/write_test_json.py
+++ b/verif/frameworks/write_test_json.py
@@ -18,10 +18,14 @@
ifm_shape=None,
framework_exclusions=None,
quantized=False,
+ test_name=None,
):
test_desc = dict()
+ if test_name:
+ test_desc["name"] = test_name
+
if tf_model_filename:
test_desc["tf_model_filename"] = tf_model_filename