1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
from __future__ import print_function
from unittest import TextTestRunner, TestSuite
from sys import argv, stderr, exit
from vcdtestutil import VCDTestLoader
from simtestutil import SimTestLoader, PyTestLoader
def parseTargetName(name):
n = name.split(".")
l = n[0].split("_")
if len(l) == 1 and n[1].lower() == "py":
return l[0] # just a python file
return "_".join(l[:-1])
def parseTargetType(name):
return name.split(".")[-1].lower()
targetLoader = {
"vcd": VCDTestLoader,
"elf": SimTestLoader,
"py": PyTestLoader,
}
def getTests(targets):
l = list()
for name in targets:
try:
m = __import__(parseTargetName(name))
l.append(targetLoader[parseTargetType(name)](name).loadTestsFromModule(m))
except Exception as e:
print("error: %s" % str(e), file=stderr)
return TestSuite(l)
if __name__ == '__main__':
res = TextTestRunner(verbosity=2).run(getTests(argv[1:]))
if res.wasSuccessful():
exit(0)
else:
exit(1)
# EOF
|