diff options
author | Corneliu Stoicescu <corneliux.stoicescu@intel.com> | 2013-12-11 17:09:40 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-12-14 09:09:35 +0000 |
commit | 358415cf604089cc2dab547e231d062b9dc068ee (patch) | |
tree | 6105e52a661272c0f4769d99dbd850075cdb6f9e | |
parent | b59466ec341e6596b7ade7f1813b25e454b11a32 (diff) | |
download | openembedded-core-358415cf604089cc2dab547e231d062b9dc068ee.tar.gz openembedded-core-358415cf604089cc2dab547e231d062b9dc068ee.tar.bz2 openembedded-core-358415cf604089cc2dab547e231d062b9dc068ee.zip |
oe-selftest: Add track_for_cleanup method to be used in cleanup tasks
Added a track_for_cleanup(path) method that removes the given path in the
tearDown method. This mechanism can be used to make sure a file or directory
we created will be removed at the end of a test, regardless of what happens.
Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
-rw-r--r-- | meta/lib/oeqa/selftest/base.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/meta/lib/oeqa/selftest/base.py b/meta/lib/oeqa/selftest/base.py index 25ca84bd66..fc880e9d26 100644 --- a/meta/lib/oeqa/selftest/base.py +++ b/meta/lib/oeqa/selftest/base.py @@ -9,6 +9,7 @@ import unittest import os import sys +import shutil import logging import errno @@ -26,6 +27,7 @@ class oeSelfTest(unittest.TestCase): self.testinc_path = os.path.join(self.builddir, "conf/selftest.inc") self.testlayer_path = oeSelfTest.testlayer_path self._extra_tear_down_commands = [] + self._track_for_cleanup = [] super(oeSelfTest, self).__init__(methodName) def setUp(self): @@ -60,6 +62,15 @@ class oeSelfTest(unittest.TestCase): 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 = [] + + if self._track_for_cleanup: + for path in self._track_for_cleanup: + if os.path.isdir(path): + shutil.rmtree(path) + if os.path.isfile(path): + os.remove(path) + self._track_for_cleanup = [] + self.tearDownLocal() def tearDownLocal(self): @@ -69,6 +80,10 @@ class oeSelfTest(unittest.TestCase): 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) + # add test specific files or directories to be removed in the tearDown method + def track_for_cleanup(self, path): + self.log.debug("Adding path '%s' to be cleaned up when test is over" % path) + self._track_for_cleanup.append(path) # write to <builddir>/conf/selftest.inc def write_config(self, data): |