diff options
author | Corneliu Stoicescu <corneliux.stoicescu@intel.com> | 2013-12-11 17:09:39 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-12-14 09:09:35 +0000 |
commit | b59466ec341e6596b7ade7f1813b25e454b11a32 (patch) | |
tree | 842d760d0838ba91b8e5187baa0731ca5996e507 /meta/lib/oeqa/selftest | |
parent | f07c2519c4ccfc847d7184d7eada6d7620950277 (diff) | |
download | openembedded-core-b59466ec341e6596b7ade7f1813b25e454b11a32.tar.gz openembedded-core-b59466ec341e6596b7ade7f1813b25e454b11a32.tar.bz2 openembedded-core-b59466ec341e6596b7ade7f1813b25e454b11a32.zip |
oe-selftest: implement add_command_to_tearDown method
Add a new method that can be used by the tester to add a command to the
executed in the tearDown stage of the test. This mechanism can be used to
make sure certain test-specific cleanup tasks are done in the case of a
test failure.
Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/lib/oeqa/selftest')
-rw-r--r-- | meta/lib/oeqa/selftest/base.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/meta/lib/oeqa/selftest/base.py b/meta/lib/oeqa/selftest/base.py index c3474a3da6..25ca84bd66 100644 --- a/meta/lib/oeqa/selftest/base.py +++ b/meta/lib/oeqa/selftest/base.py @@ -13,7 +13,7 @@ import logging import errno import oeqa.utils.ftools as ftools - +from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer class oeSelfTest(unittest.TestCase): @@ -25,6 +25,7 @@ class oeSelfTest(unittest.TestCase): self.localconf_path = os.path.join(self.builddir, "conf/local.conf") self.testinc_path = os.path.join(self.builddir, "conf/selftest.inc") self.testlayer_path = oeSelfTest.testlayer_path + self._extra_tear_down_commands = [] super(oeSelfTest, self).__init__(methodName) def setUp(self): @@ -49,11 +50,26 @@ class oeSelfTest(unittest.TestCase): pass def tearDown(self): + if self._extra_tear_down_commands: + failed_extra_commands = [] + for command in self._extra_tear_down_commands: + result = runCmd(command, ignore_status=True) + if not result.status == 0: + failed_extra_commands.append(command) + if failed_extra_commands: + self.log.warning("tearDown commands have failed: %s" % ', '.join(map(str, failed_extra_commands))) + self.log.debug("Trying to move on.") + self._extra_tear_down_commands = [] self.tearDownLocal() def tearDownLocal(self): pass + # add test specific commands to the tearDown method. + def add_command_to_tearDown(self, command): + self.log.debug("Adding command '%s' to tearDown for this test." % command) + self._extra_tear_down_commands.append(command) + # write to <builddir>/conf/selftest.inc def write_config(self, data): self.log.debug("Writing to: %s\n%s\n" % (self.testinc_path, data)) |