aboutsummaryrefslogtreecommitdiff
path: root/verif/frameworks/write_test_json.py
diff options
context:
space:
mode:
authorJeremy Johnson <jeremy.johnson@arm.com>2022-02-23 12:15:03 +0000
committerJeremy Johnson <jeremy.johnson@arm.com>2022-03-02 16:45:28 +0000
commit015c3550301fdc6d37606995322e144df0940ba2 (patch)
treef51448044ea8262f36aa964ce4b769406bb2cb7e /verif/frameworks/write_test_json.py
parentc0fe04d4105884b61b5eeca4c0a932846a77b6e2 (diff)
downloadreference_model-015c3550301fdc6d37606995322e144df0940ba2.tar.gz
Add framework unit test generation scripts
And fixes in tosa_verif_run_tests: * support for no-color printing * stop double printing of error messages on verbose * differentiate result code pass from results check Change-Id: I26e957013a8d18f7d3d3691067dfb778008a1eea Signed-off-by: Jeremy Johnson <jeremy.johnson@arm.com>
Diffstat (limited to 'verif/frameworks/write_test_json.py')
-rw-r--r--verif/frameworks/write_test_json.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/verif/frameworks/write_test_json.py b/verif/frameworks/write_test_json.py
new file mode 100644
index 0000000..68dfc8f
--- /dev/null
+++ b/verif/frameworks/write_test_json.py
@@ -0,0 +1,70 @@
+# Copyright (c) 2020-2022, ARM Limited.
+# SPDX-License-Identifier: Apache-2.0
+import json
+
+# Used by basic_test_generator to create test description
+
+
+def write_test_json(
+ filename,
+ tf_model_filename=None,
+ tf_result_npy_filename=None,
+ tf_result_name=None,
+ tflite_model_filename=None,
+ tflite_result_npy_filename=None,
+ tflite_result_name=None,
+ ifm_name=None,
+ ifm_file=None,
+ ifm_shape=None,
+ framework_exclusions=None,
+ quantized=False,
+):
+
+ test_desc = dict()
+
+ if tf_model_filename:
+ test_desc["tf_model_filename"] = tf_model_filename
+
+ if tf_result_npy_filename:
+ test_desc["tf_result_npy_filename"] = tf_result_npy_filename
+
+ if tf_result_name:
+ test_desc["tf_result_name"] = tf_result_name
+
+ if tflite_model_filename:
+ test_desc["tflite_model_filename"] = tflite_model_filename
+
+ if tflite_result_npy_filename:
+ test_desc["tflite_result_npy_filename"] = tflite_result_npy_filename
+
+ if tflite_result_name:
+ test_desc["tflite_result_name"] = tflite_result_name
+
+ if ifm_file:
+ if not isinstance(ifm_file, list):
+ ifm_file = [ifm_file]
+ test_desc["ifm_file"] = ifm_file
+
+ # Make sure these arguments are wrapped as lists
+ if ifm_name:
+ if not isinstance(ifm_name, list):
+ ifm_name = [ifm_name]
+ test_desc["ifm_name"] = ifm_name
+
+ if ifm_shape:
+ if not isinstance(ifm_shape, list):
+ ifm_shape = [ifm_shape]
+ test_desc["ifm_shape"] = ifm_shape
+
+ # Some tests cannot be used with specific frameworks.
+ # This list indicates which tests should be excluded from a given framework.
+ if framework_exclusions:
+ if not isinstance(framework_exclusions, list):
+ framework_exclusions = [framework_exclusions]
+ test_desc["framework_exclusions"] = framework_exclusions
+
+ if quantized:
+ test_desc["quantized"] = 1
+
+ with open(filename, "w") as f:
+ json.dump(test_desc, f, indent=" ")