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:11:17 +0000 |
| commit | 6bc2df55a5d78356bb6375340db01999c49db1b0 (patch) | |
| tree | bbd3d0acf0f5c0328188066b46f848c5c3ec238d /meta/lib/oeqa/selftest/base.py | |
| parent | 90fa0fd4a7b071e914d0dabe8f9a3fc551c189b8 (diff) | |
| download | poky-6bc2df55a5d78356bb6375340db01999c49db1b0.tar.gz | |
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.
(From OE-Core rev: 358415cf604089cc2dab547e231d062b9dc068ee)
Signed-off-by: Corneliu Stoicescu <corneliux.stoicescu@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/selftest/base.py')
| -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 @@ | |||
| 9 | import unittest | 9 | import unittest |
| 10 | import os | 10 | import os |
| 11 | import sys | 11 | import sys |
| 12 | import shutil | ||
| 12 | import logging | 13 | import logging |
| 13 | import errno | 14 | import errno |
| 14 | 15 | ||
| @@ -26,6 +27,7 @@ class oeSelfTest(unittest.TestCase): | |||
| 26 | self.testinc_path = os.path.join(self.builddir, "conf/selftest.inc") | 27 | self.testinc_path = os.path.join(self.builddir, "conf/selftest.inc") |
| 27 | self.testlayer_path = oeSelfTest.testlayer_path | 28 | self.testlayer_path = oeSelfTest.testlayer_path |
| 28 | self._extra_tear_down_commands = [] | 29 | self._extra_tear_down_commands = [] |
| 30 | self._track_for_cleanup = [] | ||
| 29 | super(oeSelfTest, self).__init__(methodName) | 31 | super(oeSelfTest, self).__init__(methodName) |
| 30 | 32 | ||
| 31 | def setUp(self): | 33 | def setUp(self): |
| @@ -60,6 +62,15 @@ class oeSelfTest(unittest.TestCase): | |||
| 60 | self.log.warning("tearDown commands have failed: %s" % ', '.join(map(str, failed_extra_commands))) | 62 | self.log.warning("tearDown commands have failed: %s" % ', '.join(map(str, failed_extra_commands))) |
| 61 | self.log.debug("Trying to move on.") | 63 | self.log.debug("Trying to move on.") |
| 62 | self._extra_tear_down_commands = [] | 64 | self._extra_tear_down_commands = [] |
| 65 | |||
| 66 | if self._track_for_cleanup: | ||
| 67 | for path in self._track_for_cleanup: | ||
| 68 | if os.path.isdir(path): | ||
| 69 | shutil.rmtree(path) | ||
| 70 | if os.path.isfile(path): | ||
| 71 | os.remove(path) | ||
| 72 | self._track_for_cleanup = [] | ||
| 73 | |||
| 63 | self.tearDownLocal() | 74 | self.tearDownLocal() |
| 64 | 75 | ||
| 65 | def tearDownLocal(self): | 76 | def tearDownLocal(self): |
| @@ -69,6 +80,10 @@ class oeSelfTest(unittest.TestCase): | |||
| 69 | def add_command_to_tearDown(self, command): | 80 | def add_command_to_tearDown(self, command): |
| 70 | self.log.debug("Adding command '%s' to tearDown for this test." % command) | 81 | self.log.debug("Adding command '%s' to tearDown for this test." % command) |
| 71 | self._extra_tear_down_commands.append(command) | 82 | self._extra_tear_down_commands.append(command) |
| 83 | # add test specific files or directories to be removed in the tearDown method | ||
| 84 | def track_for_cleanup(self, path): | ||
| 85 | self.log.debug("Adding path '%s' to be cleaned up when test is over" % path) | ||
| 86 | self._track_for_cleanup.append(path) | ||
| 72 | 87 | ||
| 73 | # write to <builddir>/conf/selftest.inc | 88 | # write to <builddir>/conf/selftest.inc |
| 74 | def write_config(self, data): | 89 | def write_config(self, data): |
