binman: Fix up removal of temporary directories

At present 'make check' leaves some temporary directories around. Part of
this is because we call tools.PrepareOutputDir() twice in some cases,
without calling tools.FinaliseOutputDir() in between.

Fix this.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2018-10-01 21:12:41 -06:00
parent ed59e005e6
commit e0e6275f4c
5 changed files with 25 additions and 10 deletions

View File

@ -10,6 +10,7 @@ import unittest
import elf
import test_util
import tools
binman_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
@ -46,6 +47,10 @@ class FakeSection:
class TestElf(unittest.TestCase):
@classmethod
def setUpClass(self):
tools.SetInputDirs(['.'])
def testAllSymbols(self):
"""Test that we can obtain a symbol from the ELF file"""
fname = os.path.join(binman_dir, 'test', 'u_boot_ucode_ptr')

View File

@ -14,9 +14,14 @@ import fdt_util
import tools
class TestEntry(unittest.TestCase):
def setUp(self):
tools.PrepareOutputDir(None)
def tearDown(self):
tools.FinaliseOutputDir()
def GetNode(self):
binman_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
tools.PrepareOutputDir(None)
fname = fdt_util.EnsureCompiled(
os.path.join(binman_dir,('test/05_simple.dts')))
dtb = fdt.FdtScan(fname)
@ -35,7 +40,6 @@ class TestEntry(unittest.TestCase):
global entry
reload(entry)
entry.Entry.Create(None, self.GetNode(), 'u-boot-spl')
tools._RemoveOutputDir()
del entry
def testEntryContents(self):

View File

@ -21,6 +21,10 @@ class TestFdt(unittest.TestCase):
self._indir = tempfile.mkdtemp(prefix='binmant.')
tools.PrepareOutputDir(self._indir, True)
@classmethod
def tearDownClass(self):
tools._FinaliseForTest()
def TestFile(self, fname):
return os.path.join(self._binman_dir, 'test', fname)

View File

@ -115,7 +115,6 @@ class TestFunctional(unittest.TestCase):
TestFunctional._MakeInputFile('ecrw.bin', CROS_EC_RW_DATA)
TestFunctional._MakeInputDir('devkeys')
TestFunctional._MakeInputFile('bmpblk.bin', BMPBLK_DATA)
self._output_setup = False
# ELF file with a '_dt_ucode_base_size' symbol
with open(self.TestFile('u_boot_ucode_ptr')) as fd:
@ -230,14 +229,13 @@ class TestFunctional(unittest.TestCase):
Returns:
Contents of device-tree binary
"""
if not self._output_setup:
tools.PrepareOutputDir(self._indir, True)
self._output_setup = True
tools.PrepareOutputDir(None)
dtb = fdt_util.EnsureCompiled(self.TestFile(fname))
with open(dtb) as fd:
data = fd.read()
TestFunctional._MakeInputFile(outfile, data)
return data
tools.FinaliseOutputDir()
return data
def _GetDtbContentsForSplTpl(self, dtb_data, name):
"""Create a version of the main DTB for SPL or SPL

View File

@ -60,7 +60,7 @@ class TestFdt(unittest.TestCase):
@classmethod
def tearDownClass(cls):
tools._FinaliseForTest()
tools.FinaliseOutputDir()
def setUp(self):
self.dtb = fdt.FdtScan('tools/dtoc/dtoc_test_simple.dts')
@ -128,7 +128,7 @@ class TestNode(unittest.TestCase):
@classmethod
def tearDownClass(cls):
tools._FinaliseForTest()
tools.FinaliseOutputDir()
def setUp(self):
self.dtb = fdt.FdtScan('tools/dtoc/dtoc_test_simple.dts')
@ -209,7 +209,7 @@ class TestProp(unittest.TestCase):
@classmethod
def tearDownClass(cls):
tools._FinaliseForTest()
tools.FinaliseOutputDir()
def setUp(self):
self.dtb = fdt.FdtScan('tools/dtoc/dtoc_test_simple.dts')
@ -427,6 +427,10 @@ class TestFdtUtil(unittest.TestCase):
def setUpClass(cls):
tools.PrepareOutputDir(None)
@classmethod
def tearDownClass(cls):
tools.FinaliseOutputDir()
def setUp(self):
self.dtb = fdt.FdtScan('tools/dtoc/dtoc_test_simple.dts')
self.node = self.dtb.GetNode('/spl-test')