blob: 1e07c8fa8b0e8ebaef567f5a6781d284ec8add4d [file] [log] [blame]
import os
import os.path
import subprocess
import colorama
from colorama import init,Fore, Back, Style
import argparse
init()
def msg(t):
print(Fore.CYAN + t + Style.RESET_ALL)
def processTest(test):
subprocess.call(["python","processTests.py","-e",test])
def build(build,fvp,test,custom=None):
result = "results_%s.txt" % test
resultPath = os.path.join(build,result)
current=os.getcwd()
try:
msg("Build %s" % test)
os.chdir(build)
subprocess.call(["make"])
msg("Run %s" % test)
with open(result,"w") as results:
if custom:
subprocess.call([fvp] + custom,stdout=results)
else:
subprocess.call([fvp,"-a","Testing"],stdout=results)
finally:
os.chdir(current)
msg("Parse result for %s" % test)
subprocess.call(["python","processResult.py","-e","-r",resultPath])
def processAndRun(buildfolder,fvp,test,custom=None):
processTest(test)
build(buildfolder,fvp,test,custom=custom)
parser = argparse.ArgumentParser(description='Parse test description')
parser.add_argument('-f', nargs='?',type = str, default="build_m7", help="Build folder")
parser.add_argument('-v', nargs='?',type = str, default="C:\\Program Files\\ARM\\Development Studio 2019.0\\sw\\models\\bin\\FVP_MPS2_Cortex-M7.exe", help="Fast Model")
parser.add_argument('-c', nargs='?',type = str, help="Custom args")
args = parser.parse_args()
if args.f is not None:
BUILDFOLDER=args.f
else:
BUILDFOLDER="build_m7"
if args.v is not None:
FVP=args.v
else:
FVP="C:\\Program Files\\ARM\\Development Studio 2019.0\\sw\\models\\bin\\FVP_MPS2_Cortex-M7.exe"
if args.c:
custom = args.c.split()
else:
custom = None
msg("Process test description file")
subprocess.call(["python", "preprocess.py","-f","desc.txt"])
msg("Generate all missing C files")
subprocess.call(["python","processTests.py", "-e"])
msg("Statistics Tests")
processAndRun(BUILDFOLDER,FVP,"StatsTests",custom=custom)
msg("Support Tests")
processAndRun(BUILDFOLDER,FVP,"SupportTests",custom=custom)
msg("Support Bar Tests F32")
processAndRun(BUILDFOLDER,FVP,"SupportBarTestsF32",custom=custom)
msg("Basic Tests")
processAndRun(BUILDFOLDER,FVP,"BasicTests",custom=custom)
msg("Interpolation Tests")
processAndRun(BUILDFOLDER,FVP,"InterpolationTests",custom=custom)
msg("Complex Tests")
processAndRun(BUILDFOLDER,FVP,"ComplexTests",custom=custom)
msg("Fast Maths Tests")
processAndRun(BUILDFOLDER,FVP,"FastMath",custom=custom)
msg("SVM Tests")
processAndRun(BUILDFOLDER,FVP,"SVMTests",custom=custom)
msg("Bayes Tests")
processAndRun(BUILDFOLDER,FVP,"BayesTests",custom=custom)
msg("Distance Tests")
processAndRun(BUILDFOLDER,FVP,"DistanceTests",custom=custom)
msg("Filtering Tests")
processAndRun(BUILDFOLDER,FVP,"FilteringTests",custom=custom)
msg("Matrix Tests")
processAndRun(BUILDFOLDER,FVP,"MatrixTests",custom=custom)
# Too many patterns to run the full transform directly
msg("Transform Tests CF64")
processAndRun(BUILDFOLDER,FVP,"TransformCF64",custom=custom)
msg("Transform Tests RF64")
processAndRun(BUILDFOLDER,FVP,"TransformRF64",custom=custom)
msg("Transform Tests CF32")
processAndRun(BUILDFOLDER,FVP,"TransformCF32",custom=custom)
msg("Transform Tests RF32")
processAndRun(BUILDFOLDER,FVP,"TransformRF32",custom=custom)
msg("Transform Tests CQ31")
processAndRun(BUILDFOLDER,FVP,"TransformCQ31",custom=custom)
msg("Transform Tests RQ31")
processAndRun(BUILDFOLDER,FVP,"TransformRQ31",custom=custom)
msg("Transform Tests CQ15")
processAndRun(BUILDFOLDER,FVP,"TransformCQ15",custom=custom)
msg("Transform Tests RQ15")
processAndRun(BUILDFOLDER,FVP,"TransformRQ15",custom=custom)