buildman: Create temp directory in test setup

Rather than having a few tests handle this themselves, create the
temporary directory in the setUp() method and remove it in tearDown().
This will make it easier to add more tests.

Only testOutput and testGit() actually need it, but it doesn't add to the
test time noticeably to do this for all tests in this file.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2020-04-09 15:08:31 -06:00
parent c3bc4f1fca
commit af43065f8d

View File

@ -143,9 +143,14 @@ class TestBuild(unittest.TestCase):
terminal.SetPrintTestMode() terminal.SetPrintTestMode()
self._col = terminal.Color() self._col = terminal.Color()
def Make(self, commit, brd, stage, *args, **kwargs): self.base_dir = tempfile.mkdtemp()
global base_dir if not os.path.isdir(self.base_dir):
os.mkdir(self.base_dir)
def tearDown(self):
shutil.rmtree(self.base_dir)
def Make(self, commit, brd, stage, *args, **kwargs):
result = command.CommandResult() result = command.CommandResult()
boardnum = int(brd.target[-1]) boardnum = int(brd.target[-1])
result.return_code = 0 result.return_code = 0
@ -156,7 +161,7 @@ class TestBuild(unittest.TestCase):
boardnum == 4 and commit.sequence == 6): boardnum == 4 and commit.sequence == 6):
result.return_code = commit.return_code result.return_code = commit.return_code
result.stderr = (''.join(commit.error_list) result.stderr = (''.join(commit.error_list)
% {'basedir' : base_dir + '/.bm-work/00/'}) % {'basedir' : self.base_dir + '/.bm-work/00/'})
result.combined = result.stdout + result.stderr result.combined = result.stdout + result.stderr
return result return result
@ -178,12 +183,7 @@ class TestBuild(unittest.TestCase):
This does a line-by-line verification of the summary output. This does a line-by-line verification of the summary output.
""" """
global base_dir build = builder.Builder(self.toolchains, self.base_dir, None, 1, 2,
base_dir = tempfile.mkdtemp()
if not os.path.isdir(base_dir):
os.mkdir(base_dir)
build = builder.Builder(self.toolchains, base_dir, None, 1, 2,
checkout=False, show_unknown=False) checkout=False, show_unknown=False)
build.do_make = self.Make build.do_make = self.Make
board_selected = self.boards.GetSelectedDict() board_selected = self.boards.GetSelectedDict()
@ -320,19 +320,14 @@ class TestBuild(unittest.TestCase):
'\n'.join(expect).replace('\n', '\nw+')) '\n'.join(expect).replace('\n', '\nw+'))
self.assertEqual(line.colour, col.MAGENTA) self.assertEqual(line.colour, col.MAGENTA)
shutil.rmtree(base_dir)
def _testGit(self): def _testGit(self):
"""Test basic builder operation by building a branch""" """Test basic builder operation by building a branch"""
base_dir = tempfile.mkdtemp()
if not os.path.isdir(base_dir):
os.mkdir(base_dir)
options = Options() options = Options()
options.git = os.getcwd() options.git = os.getcwd()
options.summary = False options.summary = False
options.jobs = None options.jobs = None
options.dry_run = False options.dry_run = False
#options.git = os.path.join(base_dir, 'repo') #options.git = os.path.join(self.base_dir, 'repo')
options.branch = 'test-buildman' options.branch = 'test-buildman'
options.force_build = False options.force_build = False
options.list_tool_chains = False options.list_tool_chains = False
@ -345,7 +340,6 @@ class TestBuild(unittest.TestCase):
options.keep_outputs = False options.keep_outputs = False
args = ['tegra20'] args = ['tegra20']
control.DoBuildman(options, args) control.DoBuildman(options, args)
shutil.rmtree(base_dir)
def testBoardSingle(self): def testBoardSingle(self):
"""Test single board selection""" """Test single board selection"""