sanitycheck: add option --emulation-only
This will only build/run on emulation platforms.
The decision is made based on the value of the 'simulation' key in the
platform yaml file.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
diff --git a/scripts/sanity_chk/sanitylib.py b/scripts/sanity_chk/sanitylib.py
index 633b202..9691146 100644
--- a/scripts/sanity_chk/sanitylib.py
+++ b/scripts/sanity_chk/sanitylib.py
@@ -2756,6 +2756,7 @@
device_testing_filter = kwargs.get('device_testing')
force_toolchain = kwargs.get('force_toolchain')
force_platform = kwargs.get('force_platform')
+ emu_filter = kwargs.get('emulation_only')
logger.debug("platform filter: " + str(platform_filter))
logger.debug(" arch_filter: " + str(arch_filter))
@@ -2763,9 +2764,12 @@
logger.debug(" exclude_tag: " + str(exclude_tag))
default_platforms = False
+ emulation_platforms = False
if platform_filter:
platforms = list(filter(lambda p: p.name in platform_filter, self.platforms))
+ elif emu_filter:
+ platforms = list(filter(lambda p: p.simulation != 'na', self.platforms))
else:
platforms = self.platforms
@@ -2773,9 +2777,12 @@
logger.info("Selecting all possible platforms per test case")
# When --all used, any --platform arguments ignored
platform_filter = []
- elif not platform_filter:
+ elif not platform_filter and not emu_filter:
logger.info("Selecting default platforms per test case")
default_platforms = True
+ elif emu_filter:
+ logger.info("Selecting emulation platforms per test case")
+ emulation_platforms = True
logger.info("Building initial testcase list...")
@@ -2905,6 +2912,10 @@
for instance in list(filter(lambda inst: not inst.platform.default, instance_list)):
discards[instance] = discards.get(instance, "Not a default test platform")
+ elif emulation_platforms:
+ self.add_instances(instance_list)
+ for instance in list(filter(lambda inst: not inst.platform.simulation != 'na', instance_list)):
+ discards[instance] = discards.get(instance, "Not an emulated platform")
else:
self.add_instances(instance_list)