mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-27 23:20:26 +09:00
buildman: Perform tests in a temporary directory
We may not always be able to write to the default output directory so have a temporary directory for our output be created. Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Stephen Warren <swarren@wwwdotorg.org> Suggested-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
65e05ddc1a
commit
aae62584a6
@ -175,6 +175,7 @@ class TestFunctional(unittest.TestCase):
|
||||
"""
|
||||
def setUp(self):
|
||||
self._base_dir = tempfile.mkdtemp()
|
||||
self._output_dir = tempfile.mkdtemp()
|
||||
self._git_dir = os.path.join(self._base_dir, 'src')
|
||||
self._buildman_pathname = sys.argv[0]
|
||||
self._buildman_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
|
||||
@ -207,6 +208,7 @@ class TestFunctional(unittest.TestCase):
|
||||
|
||||
def tearDown(self):
|
||||
shutil.rmtree(self._base_dir)
|
||||
shutil.rmtree(self._output_dir)
|
||||
|
||||
def setupToolchains(self):
|
||||
self._toolchains = toolchain.Toolchains()
|
||||
@ -421,7 +423,7 @@ class TestFunctional(unittest.TestCase):
|
||||
def testCurrentSource(self):
|
||||
"""Very simple test to invoke buildman on the current source"""
|
||||
self.setupToolchains();
|
||||
self._RunControl()
|
||||
self._RunControl('-o', self._output_dir)
|
||||
lines = terminal.GetPrintTestLines()
|
||||
self.assertIn('Building current source for %d boards' % len(boards),
|
||||
lines[0].text)
|
||||
@ -434,7 +436,7 @@ class TestFunctional(unittest.TestCase):
|
||||
def testBadToolchain(self):
|
||||
"""Test that missing toolchains are detected"""
|
||||
self.setupToolchains();
|
||||
ret_code = self._RunControl('-b', TEST_BRANCH)
|
||||
ret_code = self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
|
||||
lines = terminal.GetPrintTestLines()
|
||||
|
||||
# Buildman always builds the upstream commit as well
|
||||
@ -458,13 +460,13 @@ class TestFunctional(unittest.TestCase):
|
||||
|
||||
def testBranch(self):
|
||||
"""Test building a branch with all toolchains present"""
|
||||
self._RunControl('-b', TEST_BRANCH)
|
||||
self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
|
||||
self.assertEqual(self._builder.count, self._total_builds)
|
||||
self.assertEqual(self._builder.fail, 0)
|
||||
|
||||
def testCount(self):
|
||||
"""Test building a specific number of commitst"""
|
||||
self._RunControl('-b', TEST_BRANCH, '-c2')
|
||||
self._RunControl('-b', TEST_BRANCH, '-c2', '-o', self._output_dir)
|
||||
self.assertEqual(self._builder.count, 2 * len(boards))
|
||||
self.assertEqual(self._builder.fail, 0)
|
||||
# Each board has a mrproper, config, and then one make per commit
|
||||
@ -472,34 +474,34 @@ class TestFunctional(unittest.TestCase):
|
||||
|
||||
def testIncremental(self):
|
||||
"""Test building a branch twice - the second time should do nothing"""
|
||||
self._RunControl('-b', TEST_BRANCH)
|
||||
self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
|
||||
|
||||
# Each board has a mrproper, config, and then one make per commit
|
||||
self.assertEqual(self._make_calls, len(boards) * (self._commits + 2))
|
||||
self._make_calls = 0
|
||||
self._RunControl('-b', TEST_BRANCH, clean_dir=False)
|
||||
self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir, clean_dir=False)
|
||||
self.assertEqual(self._make_calls, 0)
|
||||
self.assertEqual(self._builder.count, self._total_builds)
|
||||
self.assertEqual(self._builder.fail, 0)
|
||||
|
||||
def testForceBuild(self):
|
||||
"""The -f flag should force a rebuild"""
|
||||
self._RunControl('-b', TEST_BRANCH)
|
||||
self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
|
||||
self._make_calls = 0
|
||||
self._RunControl('-b', TEST_BRANCH, '-f', clean_dir=False)
|
||||
self._RunControl('-b', TEST_BRANCH, '-f', '-o', self._output_dir, clean_dir=False)
|
||||
# Each board has a mrproper, config, and then one make per commit
|
||||
self.assertEqual(self._make_calls, len(boards) * (self._commits + 2))
|
||||
|
||||
def testForceReconfigure(self):
|
||||
"""The -f flag should force a rebuild"""
|
||||
self._RunControl('-b', TEST_BRANCH, '-C')
|
||||
self._RunControl('-b', TEST_BRANCH, '-C', '-o', self._output_dir)
|
||||
# Each commit has a mrproper, config and make
|
||||
self.assertEqual(self._make_calls, len(boards) * self._commits * 3)
|
||||
|
||||
def testErrors(self):
|
||||
"""Test handling of build errors"""
|
||||
self._error['board2', 1] = 'fred\n'
|
||||
self._RunControl('-b', TEST_BRANCH)
|
||||
self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir)
|
||||
self.assertEqual(self._builder.count, self._total_builds)
|
||||
self.assertEqual(self._builder.fail, 1)
|
||||
|
||||
@ -507,13 +509,13 @@ class TestFunctional(unittest.TestCase):
|
||||
# not be rebuilt
|
||||
del self._error['board2', 1]
|
||||
self._make_calls = 0
|
||||
self._RunControl('-b', TEST_BRANCH, clean_dir=False)
|
||||
self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir, clean_dir=False)
|
||||
self.assertEqual(self._builder.count, self._total_builds)
|
||||
self.assertEqual(self._make_calls, 0)
|
||||
self.assertEqual(self._builder.fail, 1)
|
||||
|
||||
# Now use the -F flag to force rebuild of the bad commit
|
||||
self._RunControl('-b', TEST_BRANCH, '-F', clean_dir=False)
|
||||
self._RunControl('-b', TEST_BRANCH, '-o', self._output_dir, '-F', clean_dir=False)
|
||||
self.assertEqual(self._builder.count, self._total_builds)
|
||||
self.assertEqual(self._builder.fail, 0)
|
||||
self.assertEqual(self._make_calls, 3)
|
||||
|
Loading…
Reference in New Issue
Block a user