CMSIS-DSP: New testing framework
(For our internal use. In short term, we won't give support about it).
CMSIS-DSP: Update to cmake build for the testing framework
CMSIS-NN:Implementation of arm_fully_connected_s8
Use API and quantization compatible with TF Lite.
diff --git a/CMSIS/DSP/Testing/processTests.py b/CMSIS/DSP/Testing/processTests.py
new file mode 100644
index 0000000..d2caba8
--- /dev/null
+++ b/CMSIS/DSP/Testing/processTests.py
@@ -0,0 +1,73 @@
+import argparse
+import TestScripts.NewParser as parse
+import TestScripts.CodeGen
+from collections import deque
+
+# When deprecation is forced on some nodes
+# we ensure that a parent of a valid node is also valid
+def correctDeprecation(node):
+ current = node.data["deprecated"]
+ for c in node.children:
+ if not correctDeprecation(c):
+ current = False
+ node.data["deprecated"] = current
+ return(current)
+
+def deprecateRec(root,others,deprecated):
+ if others:
+ newOthers=others.copy()
+ newOthers.popleft()
+ if root.kind == TestScripts.Parser.TreeElem.TEST:
+ if others[0].isdigit() and int(root.id) == int(others[0]):
+ root.data["deprecated"]=False
+ for c in root.children:
+ deprecateRec(c,newOthers,False)
+ else:
+ root.data["deprecated"]=True
+ for c in root.children:
+ deprecateRec(c,others,deprecated)
+ else:
+ if root.data["class"] == others[0]:
+ root.data["deprecated"]=False
+ for c in root.children:
+ deprecateRec(c,newOthers,False)
+ else:
+ root.data["deprecated"]=deprecated
+ for c in root.children:
+ deprecateRec(c,others,deprecated)
+
+def deprecate(root,others):
+ if others:
+ deprecateRec(root,deque(others),True)
+ correctDeprecation(root)
+
+parser = argparse.ArgumentParser(description='Parse test description')
+parser.add_argument('-f', nargs='?',type = str, default="test.txt", help="File path")
+
+parser.add_argument('-p', nargs='?',type = str, default="Patterns", help="Pattern dir path")
+parser.add_argument('-d', nargs='?',type = str, default="Parameters", help="Parameter dir path")
+
+# -e true when no semihosting
+# Input is include files
+# Output is only one stdout
+# So the .h for include files need to be generated.
+parser.add_argument('-e', action='store_true', help="Embedded test")
+
+parser.add_argument('others', nargs=argparse.REMAINDER)
+
+args = parser.parse_args()
+
+
+if args.f is not None:
+ # Create a treeelemt object
+ p = parse.Parser()
+ # Create a codegen object
+ c = TestScripts.CodeGen.CodeGen(args.p,args.d, args.e)
+ # Parse the test description.
+ root = p.parse(args.f)
+ deprecate(root,args.others)
+ print(root)
+ # Generate code with the tree of tests
+ c.genCodeForTree(root)
+else:
+ parser.print_help()
\ No newline at end of file