Index: bin/cbuildbot_unittest.py |
diff --git a/bin/cbuildbot_unittest.py b/bin/cbuildbot_unittest.py |
deleted file mode 100755 |
index 9e727423f9fefc93f9ca9f41e2180b716442d0fb..0000000000000000000000000000000000000000 |
--- a/bin/cbuildbot_unittest.py |
+++ /dev/null |
@@ -1,237 +0,0 @@ |
-#!/usr/bin/python |
- |
-# Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-"""Unittests for cbuildbot. Needs to be run inside of chroot for mox.""" |
- |
-import __builtin__ |
-import mox |
-import os |
-import posix |
-import shutil |
-import tempfile |
-import unittest |
- |
-# Fixes circular dependency error. |
-import cbuildbot_comm |
-import cbuildbot |
-from cros_build_lib import ReinterpretPathForChroot |
- |
- |
-class CBuildBotTest(mox.MoxTestBase): |
- |
- def setUp(self): |
- mox.MoxTestBase.setUp(self) |
- # Always stub RunCommmand out as we use it in every method. |
- self.mox.StubOutWithMock(cbuildbot, 'RunCommand') |
- self.tracking_branch = 'cros/master' |
- self._test_repos = [['kernel', 'third_party/kernel/files'], |
- ['login_manager', 'platform/login_manager'] |
- ] |
- self._test_cros_workon_packages = \ |
- 'chromeos-base/kernel\nchromeos-base/chromeos-login\n' |
- self._test_board = 'test-board' |
- self._buildroot = '.' |
- self._test_dict = {'kernel' : ['chromos-base/kernel', 'dev-util/perf'], |
- 'cros' : ['chromos-base/libcros'] |
- } |
- self._test_string = "kernel.git@12345test cros.git@12333test" |
- self._test_string += " crosutils.git@blahblah" |
- self._revision_file = 'test-revisions.pfq' |
- self._test_parsed_string_array = [ |
- ['chromeos-base/kernel', '12345test'], |
- ['dev-util/perf', '12345test'], |
- ['chromos-base/libcros', '12345test'] |
- ] |
- self._overlays = ['%s/src/third_party/chromiumos-overlay' % self._buildroot] |
- self._chroot_overlays = [ |
- ReinterpretPathForChroot(p) for p in self._overlays |
- ] |
- |
- def testParseRevisionString(self): |
- """Test whether _ParseRevisionString parses string correctly.""" |
- return_array = cbuildbot._ParseRevisionString(self._test_string, |
- self._test_dict) |
- self.assertEqual(len(return_array), 3) |
- self.assertTrue( |
- 'chromeos-base/kernel', '12345test' in return_array) |
- self.assertTrue( |
- 'dev-util/perf', '12345test' in return_array) |
- self.assertTrue( |
- 'chromos-base/libcros', '12345test' in return_array) |
- |
- def testCreateDictionary(self): |
- self.mox.StubOutWithMock(cbuildbot, '_GetAllGitRepos') |
- self.mox.StubOutWithMock(cbuildbot, '_GetCrosWorkOnSrcPath') |
- cbuildbot._GetAllGitRepos(mox.IgnoreArg()).AndReturn(self._test_repos) |
- cbuildbot.RunCommand(mox.IgnoreArg(), |
- cwd='%s/src/scripts' % self._buildroot, |
- redirect_stdout=True, |
- redirect_stderr=True, |
- enter_chroot=True, |
- print_cmd=False).AndReturn( |
- self._test_cros_workon_packages) |
- cbuildbot._GetCrosWorkOnSrcPath(self._buildroot, self._test_board, |
- 'chromeos-base/kernel').AndReturn( |
- '/home/test/third_party/kernel/files') |
- cbuildbot._GetCrosWorkOnSrcPath(self._buildroot, self._test_board, |
- 'chromeos-base/chromeos-login').AndReturn( |
- '/home/test/platform/login_manager') |
- self.mox.ReplayAll() |
- repo_dict = cbuildbot._CreateRepoDictionary(self._buildroot, |
- self._test_board) |
- self.assertEqual(repo_dict['kernel'], ['chromeos-base/kernel']) |
- self.assertEqual(repo_dict['login_manager'], |
- ['chromeos-base/chromeos-login']) |
- self.mox.VerifyAll() |
- |
- # TODO(sosa): Re-add once we use cros_mark vs. cros_mark_all. |
- #def testUprevPackages(self): |
- # """Test if we get actual revisions in revisions.pfq.""" |
- # self.mox.StubOutWithMock(cbuildbot, '_CreateRepoDictionary') |
- # self.mox.StubOutWithMock(cbuildbot, '_ParseRevisionString') |
- # self.mox.StubOutWithMock(cbuildbot, '_UprevFromRevisionList') |
- # self.mox.StubOutWithMock(__builtin__, 'open') |
- |
- # # Mock out file interaction. |
- # m_file = self.mox.CreateMock(file) |
- # __builtin__.open(self._revision_file).AndReturn(m_file) |
- # m_file.read().AndReturn(self._test_string) |
- # m_file.close() |
- |
- # cbuildbot._CreateRepoDictionary(self._buildroot, |
- # self._test_board).AndReturn(self._test_dict) |
- # cbuildbot._ParseRevisionString(self._test_string, |
- # self._test_dict).AndReturn( |
- # self._test_parsed_string_array) |
- # cbuildbot._UprevFromRevisionList(self._buildroot, |
- # self._test_parsed_string_array) |
- # self.mox.ReplayAll() |
- # cbuildbot._UprevPackages(self._buildroot, self._revision_file, |
- # self._test_board) |
- # self.mox.VerifyAll() |
- |
- def testArchiveTestResults(self): |
- """Test if we can archive the latest results dir to Google Storage.""" |
- # Set vars for call. |
- buildroot = '/fake_dir' |
- board = 'fake-board' |
- test_results_dir = 'fake_results_dir' |
- gsutil_path = '/fake/gsutil/path' |
- archive_dir = 1234 |
- acl = 'fake_acl' |
- num_retries = 5 |
- |
- # Convenience variables to make archive easier to understand. |
- path_to_results = os.path.join(buildroot, 'chroot', test_results_dir) |
- path_to_image = os.path.join(buildroot, 'src', 'build', 'images', board, |
- 'latest', 'chromiumos_qemu_image.bin') |
- |
- cbuildbot.RunCommand(['sudo', 'chmod', '-R', '+r', path_to_results]) |
- cbuildbot.RunCommand([gsutil_path, 'cp', '-R', path_to_results, |
- archive_dir], num_retries=num_retries) |
- cbuildbot.RunCommand([gsutil_path, 'setacl', acl, archive_dir]) |
- cbuildbot.RunCommand(['gzip', '-f', '--fast', path_to_image]) |
- cbuildbot.RunCommand([gsutil_path, 'cp', path_to_image + '.gz', |
- archive_dir], num_retries=num_retries) |
- |
- self.mox.ReplayAll() |
- cbuildbot._ArchiveTestResults(buildroot, board, test_results_dir, |
- gsutil_path, archive_dir, acl) |
- self.mox.VerifyAll() |
- |
- # TODO(sosa): Remove once we un-comment above. |
- def testUprevPackages(self): |
- """Test if we get actual revisions in revisions.pfq.""" |
- self.mox.StubOutWithMock(__builtin__, 'open') |
- |
- # Mock out file interaction. |
- m_file = self.mox.CreateMock(file) |
- __builtin__.open(self._revision_file).AndReturn(m_file) |
- m_file.read().AndReturn(self._test_string) |
- m_file.close() |
- |
- drop_file = cbuildbot._PACKAGE_FILE % {'buildroot': self._buildroot} |
- cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', |
- '--board=%s' % self._test_board, |
- '--overlays=%s' % ':'.join(self._chroot_overlays), |
- '--tracking_branch=cros/master', |
- '--drop_file=%s' % ReinterpretPathForChroot(drop_file), |
- 'commit'], |
- cwd='%s/src/scripts' % self._buildroot, |
- enter_chroot=True) |
- |
- self.mox.ReplayAll() |
- cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, |
- self._revision_file, self._test_board, |
- self._overlays) |
- self.mox.VerifyAll() |
- |
- def testUprevAllPackages(self): |
- """Test if we get None in revisions.pfq indicating Full Builds.""" |
- self.mox.StubOutWithMock(__builtin__, 'open') |
- |
- # Mock out file interaction. |
- m_file = self.mox.CreateMock(file) |
- __builtin__.open(self._revision_file).AndReturn(m_file) |
- m_file.read().AndReturn('None') |
- m_file.close() |
- |
- drop_file = cbuildbot._PACKAGE_FILE % {'buildroot': self._buildroot} |
- cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', |
- '--board=%s' % self._test_board, |
- '--overlays=%s' % ':'.join(self._chroot_overlays), |
- '--tracking_branch=cros/master', |
- '--drop_file=%s' % ReinterpretPathForChroot(drop_file), |
- 'commit'], |
- cwd='%s/src/scripts' % self._buildroot, |
- enter_chroot=True) |
- |
- self.mox.ReplayAll() |
- cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, |
- self._revision_file, self._test_board, |
- self._overlays) |
- self.mox.VerifyAll() |
- |
- def testGetPortageEnvVar(self): |
- """Basic test case for _GetPortageEnvVar function.""" |
- envvar = 'EXAMPLE' |
- cbuildbot.RunCommand(mox.And(mox.IsA(list), mox.In(envvar)), |
- cwd='%s/src/scripts' % self._buildroot, |
- redirect_stdout=True, enter_chroot=True, |
- error_ok=True).AndReturn('RESULT\n') |
- self.mox.ReplayAll() |
- result = cbuildbot._GetPortageEnvVar(self._buildroot, self._test_board, |
- envvar) |
- self.mox.VerifyAll() |
- self.assertEqual(result, 'RESULT') |
- |
- def testUploadPublicPrebuilts(self): |
- """Test _UploadPrebuilts with a public location.""" |
- binhost = 'http://www.example.com' |
- binhosts = [binhost, None] |
- check = mox.And(mox.IsA(list), mox.In(binhost), mox.Not(mox.In(None)), |
- mox.In('gs://chromeos-prebuilt')) |
- cbuildbot.RunCommand(check, cwd='%s/src/scripts' % self._buildroot) |
- self.mox.ReplayAll() |
- cbuildbot._UploadPrebuilts(self._buildroot, self._test_board, 'public', |
- binhosts) |
- self.mox.VerifyAll() |
- |
- def testUploadPrivatePrebuilts(self): |
- """Test _UploadPrebuilts with a private location.""" |
- binhost = 'http://www.example.com' |
- binhosts = [binhost, None] |
- check = mox.And(mox.IsA(list), mox.In(binhost), mox.Not(mox.In(None)), |
- mox.In('chromeos-images:/var/www/prebuilt/')) |
- cbuildbot.RunCommand(check, cwd='%s/src/scripts' % self._buildroot) |
- self.mox.ReplayAll() |
- cbuildbot._UploadPrebuilts(self._buildroot, self._test_board, 'private', |
- binhosts) |
- self.mox.VerifyAll() |
- |
- |
-if __name__ == '__main__': |
- unittest.main() |