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