| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- import os
- import os.path
- import subprocess
- import colorama
- from colorama import init,Fore, Back, Style
- import argparse
- GROUPS = [
- "BasicBenchmarks",
- "ComplexBenchmarks",
- "FIR",
- "MISC",
- "DECIM",
- "BIQUAD",
- "Controller",
- "FastMath",
- "SupportBarF32",
- "Support",
- "Unary",
- "Binary",
- "Transform"
- ]
- init()
- def msg(t):
- print(Fore.CYAN + t + Style.RESET_ALL)
- def processTest(test):
- subprocess.call(["python","processTests.py","-e",test])
- def addToDB(cmd):
- for g in GROUPS:
- msg("Add group %s" % g)
- subprocess.call(["python",cmd,g])
- def run(build,fvp,custom=None):
- result = "results.txt"
- resultPath = os.path.join(build,result)
- current=os.getcwd()
- try:
- msg("Build" )
- os.chdir(build)
- subprocess.call(["make"])
- msg("Run")
- 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")
- subprocess.call(["python","processResult.py","-e","-r",resultPath])
- msg("Regression computations")
- subprocess.call(["python","summaryBench.py","-r",resultPath])
- msg("Add results to benchmark database")
- addToDB("addToDB.py")
- msg("Add results to regression database")
- addToDB("addToRegDB.py")
- def processAndRun(buildfolder,fvp,custom=None):
- processTest("DSPBenchmarks")
- run(buildfolder,fvp,custom=custom)
- parser = argparse.ArgumentParser(description='Parse test description')
- parser.add_argument('-f', nargs='?',type = str, default="build_benchmark_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_benchmark_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
- print(Fore.RED + "bench.db and reg.db databases must exist before running this script" + Style.RESET_ALL)
- msg("Process benchmark description file")
- subprocess.call(["python", "preprocess.py","-f","bench.txt"])
- msg("Generate all missing C files")
- subprocess.call(["python","processTests.py", "-e"])
- processAndRun(BUILDFOLDER,FVP,custom=custom)
|