sanitycheck: support for multiple toolchain
Added support for multiple toolchain usage. Every arch contains a list of supported toolchain. Each board can override the supported toolchain list. If the board is not supported in the current toolchain, will be discarded. The current toolchain is defined by ZEPHYR_GCC_VARIANT. Added support for toolchain ISSM and ZEPHYR. Change-Id: I31e9b39ba01f6e9bdc4557702428cd09e05f492a Jira: ZEP-592 Signed-off-by: Javier B Perez <javier.b.perez.hernandez@intel.com>
This commit is contained in:
parent
8af3a1e678
commit
4b554baa87
5 changed files with 22 additions and 4 deletions
|
@ -1,3 +1,4 @@
|
|||
[arch]
|
||||
name = arc
|
||||
platforms = arduino_101_sss quark_se_sss_devboard em_starterkit
|
||||
supported_toolchains = issm zephyr
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
name = arm
|
||||
platforms = qemu_cortex_m3 frdm_k64f arduino_due nucleo_f103rb stm32_mini_a15
|
||||
olimexino_stm32 nrf52_nitrogen nrf52_pca10040
|
||||
supported_toolchains = zephyr
|
||||
|
||||
[qemu_cortex_m3]
|
||||
qemu_support = true
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[arch]
|
||||
name = nios2
|
||||
platforms = qemu_nios2 altera_max10
|
||||
supported_toolchains = zephyr
|
||||
|
||||
[qemu_nios2]
|
||||
qemu_support = true
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[arch]
|
||||
name = x86
|
||||
platforms = qemu_x86_iamcu arduino_101 qemu_x86 minnowboard galileo quark_d2000_crb quark_se_devboard
|
||||
supported_toolchains = zephyr
|
||||
|
||||
[qemu_x86]
|
||||
qemu_support = true
|
||||
|
@ -17,9 +18,12 @@ qemu_support = false
|
|||
[quark_d2000_crb]
|
||||
qemu_support = false
|
||||
microkernel_support = false
|
||||
supported_toolchains = issm zephyr
|
||||
|
||||
[arduino_101]
|
||||
qemu_support = false
|
||||
supported_toolchains = issm zephyr
|
||||
|
||||
[quark_se_devboard]
|
||||
qemu_support = false
|
||||
supported_toolchains = issm zephyr
|
||||
|
|
|
@ -801,11 +801,13 @@ class MakeGenerator:
|
|||
# XXX Be sure to update __doc__ if you change any of this!!
|
||||
|
||||
arch_valid_keys = {"name" : {"type" : "str", "required" : True},
|
||||
"platforms" : {"type" : "list", "required" : True}}
|
||||
"platforms" : {"type" : "list", "required" : True},
|
||||
"supported_toolchains" : {"type" : "list", "required" : True}}
|
||||
|
||||
platform_valid_keys = {"qemu_support" : {"type" : "bool", "default" : False},
|
||||
"microkernel_support" : {"type" : "bool",
|
||||
"default" : True}}
|
||||
"default" : True},
|
||||
"supported_toolchains" : {"type" : "list", "default" : []}}
|
||||
|
||||
testcase_valid_keys = {"tags" : {"type" : "set", "required" : True},
|
||||
"extra_args" : {"type" : "list"},
|
||||
|
@ -962,6 +964,9 @@ class Platform:
|
|||
self.qemu_support = plat_dict["qemu_support"]
|
||||
self.microkernel_support = plat_dict["microkernel_support"]
|
||||
self.arch = arch
|
||||
self.supported_toolchains = arch.supported_toolchains
|
||||
if plat_dict["supported_toolchains"]:
|
||||
self.supported_toolchains = plat_dict["supported_toolchains"]
|
||||
# Gets populated in a separate step
|
||||
self.defconfig = {"micro" : None, "nano" : None}
|
||||
pass
|
||||
|
@ -1011,6 +1016,7 @@ class Architecture:
|
|||
arch = cp.get_section("arch", arch_valid_keys)
|
||||
|
||||
self.name = arch["name"]
|
||||
self.supported_toolchains = arch["supported_toolchains"]
|
||||
|
||||
for plat_name in arch["platforms"]:
|
||||
verbose("Platform: %s" % plat_name)
|
||||
|
@ -1203,7 +1209,7 @@ class TestSuite:
|
|||
|
||||
def apply_filters(self, platform_filter, arch_filter, tag_filter,
|
||||
config_filter, testcase_filter, last_failed, all_plats,
|
||||
platform_limit):
|
||||
platform_limit, toolchain):
|
||||
instances = []
|
||||
discards = {}
|
||||
verbose("platform filter: " + str(platform_filter))
|
||||
|
@ -1349,6 +1355,10 @@ class TestSuite:
|
|||
discards[instance] = "No microkernel support for platform"
|
||||
continue
|
||||
|
||||
if toolchain and toolchain not in plat.supported_toolchains:
|
||||
discards[instance] = "Not supported by the toolchain"
|
||||
continue
|
||||
|
||||
defconfig = {"ARCH" : arch.name, "PLATFORM" : plat.name}
|
||||
defconfig.update(os.environ)
|
||||
for tcase, tdefconfig in tc.defconfig.items():
|
||||
|
@ -1688,6 +1698,7 @@ def main():
|
|||
start_time = time.time()
|
||||
global VERBOSE, INLINE_LOGS, CPU_COUNTS
|
||||
args = parse_arguments()
|
||||
toolchain = os.environ.get("ZEPHYR_GCC_VARIANT", None)
|
||||
|
||||
if args.size:
|
||||
for fn in args.size:
|
||||
|
@ -1710,7 +1721,7 @@ def main():
|
|||
ts = TestSuite(args.arch_root, args.testcase_root, args.outdir)
|
||||
discards = ts.apply_filters(args.platform, args.arch, args.tag, args.config,
|
||||
args.test, args.only_failed, args.all,
|
||||
args.platform_limit)
|
||||
args.platform_limit, toolchain)
|
||||
|
||||
if args.discard_report:
|
||||
ts.discard_report(args.discard_report)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue