autotest: Add a base predicate to skylab dynamic_suite.
BUG=chromium:920393
TEST=Ran run_suite_skylab locally.
Change-Id: Ic7fe50aa78768c3236da08d75708528ca1d01bc9
Reviewed-on: https://chromium-review.googlesource.com/c/1405899
Tested-by: Xixuan Wu <xixuan@chromium.org>
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Allen Li <ayatane@chromium.org>
diff --git a/server/cros/dynamic_suite/suite.py b/server/cros/dynamic_suite/suite.py
index b9bca4f..fbca315 100644
--- a/server/cros/dynamic_suite/suite.py
+++ b/server/cros/dynamic_suite/suite.py
@@ -700,7 +700,7 @@
@return a callable that takes a ControlData and looks for |name| in that
ControlData object's suite member.
"""
- return lambda t: name in t.suite_tag_parts
+ return suite_common.name_in_tag_predicate(name)
def create_fs_getter(autotest_dir):
@@ -1322,7 +1322,8 @@
find_and_parse_tests = _deprecated_suite_method(find_and_parse_tests)
find_possible_tests = _deprecated_suite_method(find_possible_tests)
create_fs_getter = _deprecated_suite_method(create_fs_getter)
- name_in_tag_predicate = _deprecated_suite_method(name_in_tag_predicate)
+ name_in_tag_predicate = _deprecated_suite_method(
+ suite_common.name_in_tag_predicate)
name_in_tag_similarity_predicate = _deprecated_suite_method(
name_in_tag_similarity_predicate)
test_name_equals_predicate = _deprecated_suite_method(
@@ -1409,7 +1410,7 @@
build = suite_common.get_test_source_build(builds, **dargs)
cf_getter = _create_ds_getter(build, devserver)
- return cls([name_in_tag_predicate(name)],
+ return cls([suite_common.name_in_tag_predicate(name)],
name, builds, board, cf_getter, **dargs)
diff --git a/server/cros/dynamic_suite/suite_common.py b/server/cros/dynamic_suite/suite_common.py
index 88b3f70..1430039 100644
--- a/server/cros/dynamic_suite/suite_common.py
+++ b/server/cros/dynamic_suite/suite_common.py
@@ -383,3 +383,16 @@
control_data.ControlData.get_test_time_index(t.time),
reverse=True)
return tests
+
+
+def name_in_tag_predicate(name):
+ """Returns predicate that takes a control file and looks for |name|.
+
+ Builds a predicate that takes in a parsed control file (a ControlData)
+ and returns True if the SUITE tag is present and contains |name|.
+
+ @param name: the suite name to base the predicate on.
+ @return a callable that takes a ControlData and looks for |name| in that
+ ControlData object's suite member.
+ """
+ return lambda t: name in t.suite_tag_parts
diff --git a/venv/skylab_suite/cros_suite.py b/venv/skylab_suite/cros_suite.py
index 4c73401..d13554b 100644
--- a/venv/skylab_suite/cros_suite.py
+++ b/venv/skylab_suite/cros_suite.py
@@ -404,7 +404,8 @@
self.test_source_build, self.ds)
tests = suite_common.retrieve_for_suite(
cf_getter, self.suite_name)
- return suite_common.filter_tests(tests)
+ return suite_common.filter_tests(
+ tests, suite_common.name_in_tag_predicate(self.suite_name))
def _get_available_bots(self):
"""Get available bots for suites."""