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>
This commit is contained in:
parent
90fa0fd4a7
commit
6bc2df55a5
|
@ -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):
|
||||
|
|
Loading…
Reference in New Issue