[Exporter tests] changing variable names and respecting requirement kwargs

pull/3172/head
Sarah Marsh 2016-10-31 16:47:27 -05:00
parent 986af0dd5e
commit b9bac0516b
5 changed files with 21 additions and 14 deletions

View File

@ -122,7 +122,7 @@ class IAR(Exporter):
self.gen_file(self.get_ewp_template(), ctx, self.project_name + ".ewp") self.gen_file(self.get_ewp_template(), ctx, self.project_name + ".ewp")
@staticmethod @staticmethod
def build(project_name, clean=True): def build(project_name, cleanup=True):
""" Build IAR project """ """ Build IAR project """
# > IarBuild [project_path] -build [project_name] # > IarBuild [project_path] -build [project_name]
@ -149,7 +149,7 @@ class IAR(Exporter):
if m is not None: if m is not None:
num_errors = int(m.group(1)) num_errors = int(m.group(1))
if clean: if cleanup:
os.remove(project_name + ".ewp") os.remove(project_name + ".ewp")
os.remove(project_name + ".ewd") os.remove(project_name + ".ewd")
os.remove(project_name + ".eww") os.remove(project_name + ".eww")

View File

@ -106,7 +106,7 @@ class Makefile(Exporter):
raise NotSupportedException("This make tool is in development") raise NotSupportedException("This make tool is in development")
@staticmethod @staticmethod
def build(project_name, build_log="build_log.txt", project_loc=None, clean=True): def build(project_name, log_name="build_log.txt", cleanup=True):
""" Build Make project """ """ Build Make project """
# > Make -C [project directory] -j # > Make -C [project directory] -j
cmd = ["make", "-j"] cmd = ["make", "-j"]
@ -114,7 +114,7 @@ class Makefile(Exporter):
ret = p.communicate() ret = p.communicate()
out, err = ret[0], ret[1] out, err = ret[0], ret[1]
ret_code = p.returncode ret_code = p.returncode
with open(build_log, 'w+') as f: with open(log_name, 'w+') as f:
f.write("=" * 10 + "OUT" + "=" * 10 + "\n") f.write("=" * 10 + "OUT" + "=" * 10 + "\n")
f.write(out) f.write(out)
f.write("=" * 10 + "ERR" + "=" * 10 + "\n") f.write("=" * 10 + "ERR" + "=" * 10 + "\n")
@ -123,13 +123,13 @@ class Makefile(Exporter):
f.write("SUCCESS") f.write("SUCCESS")
else: else:
f.write("FAILURE") f.write("FAILURE")
with open(build_log, 'r') as f: with open(log_name, 'r') as f:
print "\n".join(f.readlines()) print "\n".join(f.readlines())
sys.stdout.flush() sys.stdout.flush()
if clean: if cleanup:
remove("Makefile") remove("Makefile")
remove(build_log) remove(log_name)
if exists('.build'): if exists('.build'):
shutil.rmtree('.build') shutil.rmtree('.build')
if ret_code != 0: if ret_code != 0:

View File

@ -206,14 +206,14 @@ class Uvision(Exporter):
self.gen_file('uvision/uvision_debug.tmpl', ctx, self.project_name + ".uvoptx") self.gen_file('uvision/uvision_debug.tmpl', ctx, self.project_name + ".uvoptx")
@staticmethod @staticmethod
def build(project_name, log_name='build_log.txt', clean=True): def build(project_name, log_name='build_log.txt', cleanup=True):
success = 0 success = 0
warn = 1 warn = 1
cmd = ["UV4.exe", '-r', '-j0', '-o', log_name, project_name+".uvprojx"] cmd = ["UV4.exe", '-r', '-j0', '-o', log_name, project_name+".uvprojx"]
ret_code = subprocess.call(cmd) ret_code = subprocess.call(cmd)
with open(log_name, 'r') as build_log: with open(log_name, 'r') as build_log:
print build_log.read() print build_log.read()
if clean: if cleanup:
os.remove(log_name) os.remove(log_name)
os.remove(project_name+".uvprojx") os.remove(project_name+".uvprojx")
os.remove(project_name+".uvoptx") os.remove(project_name+".uvoptx")

View File

@ -59,7 +59,9 @@ def target_cross_toolchain(allowed_toolchains,
def target_cross_ide(allowed_ides, def target_cross_ide(allowed_ides,
targets=TARGET_MAP.keys()): features=[],
ides=SUPPORTED_IDES,
toolchains=SUPPORTED_TOOLCHAINS):
"""Generate pairs of target and ides """Generate pairs of target and ides
Args: Args:
@ -68,7 +70,11 @@ def target_cross_ide(allowed_ides,
""" """
for release_target, release_toolchains in get_mbed_official_release("5"): for release_target, release_toolchains in get_mbed_official_release("5"):
for ide in allowed_ides: for ide in allowed_ides:
if release_target in EXPORTERS[ide].TARGETS: if (release_target in EXPORTERS[ide].TARGETS and
EXPORTERS[ide].TOOLCHAIN in toolchains and
ide in ides and
all(feature in TARGET_MAP[release_target].features
for feature in features)):
yield release_target, ide yield release_target, ide
@ -101,7 +107,7 @@ def main():
def do_export(args): def do_export(args):
"""Do export and build step"""
def print_message(message, name): def print_message(message, name):
print(message+ " %s"%name) print(message+ " %s"%name)
sys.stdout.flush() sys.stdout.flush()
@ -114,7 +120,8 @@ def do_export(args):
if ex_name != "mbed-os-example-blinky": if ex_name != "mbed-os-example-blinky":
continue continue
os.chdir(ex_name) os.chdir(ex_name)
for target, ide in target_cross_ide(args.ide): for target, ide in target_cross_ide(args.ide,
**requirements):
example_name = "{} {} {}".format(ex_name, target, example_name = "{} {} {}".format(ex_name, target,
ide) ide)
print_message("Export:",example_name) print_message("Export:",example_name)

View File

@ -128,7 +128,7 @@ class ExportBuildTest(object):
cwd = os.getcwd() cwd = os.getcwd()
os.chdir(exporter.export_dir) os.chdir(exporter.export_dir)
res = EXPORTERS[exporter.NAME.lower()].build(exporter.project_name, clean=False) res = EXPORTERS[exporter.NAME.lower()].build(exporter.project_name, cleanup=False)
os.chdir(cwd) os.chdir(cwd)
if res: if res:
self.failures.append("%s::%s\t%s" % (test_case.mcu, self.failures.append("%s::%s\t%s" % (test_case.mcu,