From 4a5d9f1ba755394e0e2547210c3b99b6e1b935cc Mon Sep 17 00:00:00 2001 From: Brett Chabot Date: Thu, 18 Feb 2010 20:01:11 -0800 Subject: [PATCH] Replace runtest --cts option with more generic --suite option. This will allow you to run a the set of test_defs with attribute suite="foo" like this: runtest --suite foo Bug 2401250 --- testrunner/runtest.py | 14 +++--- testrunner/test_defs.xml | 56 ++++++++++++------------ testrunner/test_defs.xsd | 5 +-- testrunner/test_defs/test_defs.py | 10 ++--- testrunner/test_defs/test_suite.py | 17 ++++--- testrunner/test_defs/test_walker.py | 3 +- testrunner/test_defs/xml_suite_helper.py | 6 +-- 7 files changed, 55 insertions(+), 56 deletions(-) diff --git a/testrunner/runtest.py b/testrunner/runtest.py index a3135db6e..495b6a746 100755 --- a/testrunner/runtest.py +++ b/testrunner/runtest.py @@ -138,10 +138,9 @@ class TestRunner(object): parser.add_option("--timeout", dest="timeout", default=300, help="Set a timeout limit (in sec) for " "running native tests on a device (default: 300 secs)") - parser.add_option("--cts", dest="cts_tests", - default=False, action="store_true", + parser.add_option("--suite", dest="suite", help="Run all tests defined as part of the " - "compatibility test suite") + "the given test suite") group = optparse.OptionGroup( parser, "Targets", "Use these options to direct tests to a specific " "Android target") @@ -158,7 +157,7 @@ class TestRunner(object): if (not self._options.only_list_tests and not self._options.all_tests and not self._options.continuous_tests - and not self._options.cts_tests + and not self._options.suite and not self._options.test_path and len(self._test_args) < 1): parser.print_help() @@ -285,8 +284,9 @@ class TestRunner(object): self._tests_to_run = self._known_tests.GetTests() elif self._options.continuous_tests: self._tests_to_run = self._known_tests.GetContinuousTests() - elif self._options.cts_tests: - self._tests_to_run = self._known_tests.GetCtsTests() + elif self._options.suite: + self._tests_to_run = \ + self._known_tests.GetTestsInSuite(self._options.suite) elif self._options.test_path: walker = test_walker.TestWalker() self._tests_to_run = walker.FindTests(self._options.test_path) @@ -303,7 +303,7 @@ class TestRunner(object): def _IsCtsTests(self, test_list): """Check if any cts tests are included in given list of tests to run.""" for test in test_list: - if test.IsCts(): + if test.GetSuite() == 'cts': return True return False diff --git a/testrunner/test_defs.xml b/testrunner/test_defs.xml index e97bcdf29..4da30501d 100644 --- a/testrunner/test_defs.xml +++ b/testrunner/test_defs.xml @@ -187,7 +187,7 @@ See test_defs.xsd for more information. runner="android.test.InstrumentationTestRunner" coverage_target="framework" continuous="true" - cts="true" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> + suite="cts" /> @@ -573,7 +573,7 @@ See test_defs.xsd for more information. build_path="cts/tests/appsecurity-tests" class="com.android.cts.appsecurity.AppSecurityTests" jar_name="CtsAppSecurityTests.jar" - cts="true" /> + suite="cts" /> - - + + diff --git a/testrunner/test_defs/test_defs.py b/testrunner/test_defs/test_defs.py index 6d885fa50..c305620b3 100644 --- a/testrunner/test_defs/test_defs.py +++ b/testrunner/test_defs/test_defs.py @@ -109,13 +109,9 @@ class TestDefinitions(object): con_tests.append(test) return con_tests - def GetCtsTests(self): - """Return list of cts tests.""" - cts_tests = [] - for test in self.GetTests(): - if test.IsCts(): - cts_tests.append(test) - return cts_tests + def GetTestsInSuite(self, suite): + """Return list of tests in given suite.""" + return [t for t in self.GetTests() if t.GetSuite() == suite] def GetTest(self, name): return self._testname_map.get(name, None) diff --git a/testrunner/test_defs/test_suite.py b/testrunner/test_defs/test_suite.py index 42a0de152..90d57927f 100644 --- a/testrunner/test_defs/test_suite.py +++ b/testrunner/test_defs/test_suite.py @@ -19,14 +19,17 @@ class AbstractTestSuite(object): - """Represents a generic test suite definition.""" + """Represents a generic test suite definition. + + TODO: rename this as AbstractTestDef. + """ def __init__(self): self._name = None self._build_path = None self._build_dependencies = [] self._is_continuous = False - self._is_cts = False + self._suite = None self._description = '' self._extra_build_args = '' @@ -61,12 +64,12 @@ class AbstractTestSuite(object): self._is_continuous = continuous return self._is_continuous - def IsCts(self): - """Returns true if test is part of the compatibility test suite""" - return self._is_cts + def GetSuite(self): + """Returns the name of test' suite, or None.""" + return self._suite - def SetCts(self, cts): - self._is_cts = cts + def SetSuite(self, suite): + self._suite = suite return self def GetDescription(self): diff --git a/testrunner/test_defs/test_walker.py b/testrunner/test_defs/test_walker.py index 973cac16f..834b3d26f 100755 --- a/testrunner/test_defs/test_walker.py +++ b/testrunner/test_defs/test_walker.py @@ -290,7 +290,8 @@ class TestWalker(object): # package name, this is a cts test # this logic can be removed altogether when cts tests no longer require # custom build steps - suite.SetCts(suite.GetPackageName().startswith('com.android.cts')) + if suite.GetPackageName().startswith('com.android.cts'): + suite.SetSuite('cts') tests.append(suite) return tests diff --git a/testrunner/test_defs/xml_suite_helper.py b/testrunner/test_defs/xml_suite_helper.py index c2ed1ddbd..b7ed83be7 100644 --- a/testrunner/test_defs/xml_suite_helper.py +++ b/testrunner/test_defs/xml_suite_helper.py @@ -36,7 +36,7 @@ class XmlSuiteParser(object): _NAME_ATTR = 'name' _BUILD_ATTR = 'build_path' _CONTINUOUS_ATTR = 'continuous' - _CTS_ATTR = 'cts' + _SUITE_ATTR = 'suite' _DESCRIPTION_ATTR = 'description' _EXTRA_BUILD_ARGS_ATTR = 'extra_build_args' @@ -71,8 +71,8 @@ class XmlSuiteParser(object): test_suite.SetContinuous(self._ParseAttribute(suite_element, self._CONTINUOUS_ATTR, False, default_value=False)) - test_suite.SetCts(self._ParseAttribute(suite_element, self._CTS_ATTR, False, - default_value=False)) + test_suite.SetSuite(self._ParseAttribute(suite_element, self._SUITE_ATTR, False, + default_value=None)) test_suite.SetDescription(self._ParseAttribute(suite_element, self._DESCRIPTION_ATTR, False,