提交 aae62584 编写于 作者: T Tom Rini

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: NStephen Warren <swarren@wwwdotorg.org>
Suggested-by: NStephen Warren <swarren@wwwdotorg.org>
Signed-off-by: NTom Rini <trini@konsulko.com>
上级 65e05ddc
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册