diff --git a/scripts/sanity_chk/arches/arc.ini b/scripts/sanity_chk/arches/arc.ini index a3c1b00e83a..61ac455be6f 100644 --- a/scripts/sanity_chk/arches/arc.ini +++ b/scripts/sanity_chk/arches/arc.ini @@ -1,3 +1,4 @@ [arch] name = arc platforms = arduino_101_sss quark_se_sss_devboard em_starterkit +supported_toolchains = issm zephyr diff --git a/scripts/sanity_chk/arches/arm.ini b/scripts/sanity_chk/arches/arm.ini index 6f1793c92e0..5f17f6125e7 100644 --- a/scripts/sanity_chk/arches/arm.ini +++ b/scripts/sanity_chk/arches/arm.ini @@ -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 diff --git a/scripts/sanity_chk/arches/nios2.ini b/scripts/sanity_chk/arches/nios2.ini index de6885d0ca5..ef890369eea 100644 --- a/scripts/sanity_chk/arches/nios2.ini +++ b/scripts/sanity_chk/arches/nios2.ini @@ -1,6 +1,7 @@ [arch] name = nios2 platforms = qemu_nios2 altera_max10 +supported_toolchains = zephyr [qemu_nios2] qemu_support = true diff --git a/scripts/sanity_chk/arches/x86.ini b/scripts/sanity_chk/arches/x86.ini index 1d2b945c580..b62bdb9756f 100644 --- a/scripts/sanity_chk/arches/x86.ini +++ b/scripts/sanity_chk/arches/x86.ini @@ -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 diff --git a/scripts/sanitycheck b/scripts/sanitycheck index 366aacd253e..a326ab2b6a5 100755 --- a/scripts/sanitycheck +++ b/scripts/sanitycheck @@ -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)