From f626c58c325bfbf5fce1b5b2defafee9c6b74ea3 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Thu, 9 Apr 2015 02:24:24 -0700 Subject: testimage: sort modules based on dependencies TEST_SUITES="auto" is useful to run all suitable tests without having to hard-code the list. However, it did not take test dependencies into account, which can be an issue for tests which really depend on some other test to run first. To fix this, modules get loaded in the order determined by TESTS_SUITES, but then get re-ordered based on dependencies derived from @skipUnlessPassed before running them. The original order is used to break ties when there are no dependencies, so reordering only occurs when really necessary. @skipUnlessPassed gets extended such that it makes the test name a method depends on available for inspection by the test loader in oetest.py. Unfortunately Python's unittest offers no API to inspect tests in a TestSuite, so the code has to rely on implementation details to find all tests. The worst that can happen when the implementation changes is that tests are not found and reordering does not happen. (From OE-Core rev: 6e4543a35836c572b23b9f8162b19d1e038d3ed2) Signed-off-by: Patrick Ohly Signed-off-by: Richard Purdie --- meta/lib/oeqa/utils/decorators.py | 1 + 1 file changed, 1 insertion(+) (limited to 'meta/lib/oeqa/utils/decorators.py') diff --git a/meta/lib/oeqa/utils/decorators.py b/meta/lib/oeqa/utils/decorators.py index ff5f278bc1..1e5a890fdd 100644 --- a/meta/lib/oeqa/utils/decorators.py +++ b/meta/lib/oeqa/utils/decorators.py @@ -85,6 +85,7 @@ class skipUnlessPassed(object): raise unittest.SkipTest("Testcase dependency not met: %s" % self.testcase) return f(*args) wrapped_f.__name__ = f.__name__ + wrapped_f._depends_on = self.testcase return wrapped_f class testcase(object): -- cgit 1.2.3-korg