| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 | 2 |
| 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 | 6 |
| 7 """Unittests for cbuildbot. Needs to be run inside of chroot for mox.""" | 7 """Unittests for cbuildbot. Needs to be run inside of chroot for mox.""" |
| 8 | 8 |
| 9 import __builtin__ | 9 import __builtin__ |
| 10 import mox | 10 import mox |
| 11 import os | 11 import os |
| 12 import posix | 12 import posix |
| 13 import shutil | 13 import shutil |
| 14 import unittest | 14 import unittest |
| 15 | 15 |
| 16 # Fixes circular dependency error. | 16 # Fixes circular dependency error. |
| 17 import cbuildbot_comm | 17 import cbuildbot_comm |
| 18 import cbuildbot | 18 import cbuildbot |
| 19 from cros_build_lib import ReinterpretPathForChroot | |
| 20 | 19 |
| 21 class CBuildBotTest(mox.MoxTestBase): | 20 class CBuildBotTest(mox.MoxTestBase): |
| 22 | 21 |
| 23 def setUp(self): | 22 def setUp(self): |
| 24 mox.MoxTestBase.setUp(self) | 23 mox.MoxTestBase.setUp(self) |
| 25 # Always stub RunCommmand out as we use it in every method. | 24 # Always stub RunCommmand out as we use it in every method. |
| 26 self.mox.StubOutWithMock(cbuildbot, 'RunCommand') | 25 self.mox.StubOutWithMock(cbuildbot, 'RunCommand') |
| 27 self.tracking_branch = 'cros/master' | 26 self.tracking_branch = 'cros/master' |
| 28 self._test_repos = [['kernel', 'third_party/kernel/files'], | 27 self._test_repos = [['kernel', 'third_party/kernel/files'], |
| 29 ['login_manager', 'platform/login_manager'] | 28 ['login_manager', 'platform/login_manager'] |
| 30 ] | 29 ] |
| 31 self._test_cros_workon_packages = \ | 30 self._test_cros_workon_packages = \ |
| 32 'chromeos-base/kernel\nchromeos-base/chromeos-login\n' | 31 'chromeos-base/kernel\nchromeos-base/chromeos-login\n' |
| 33 self._test_board = 'test-board' | 32 self._test_board = 'test-board' |
| 34 self._buildroot = '.' | 33 self._buildroot = '.' |
| 35 self._test_dict = {'kernel' : ['chromos-base/kernel', 'dev-util/perf'], | 34 self._test_dict = {'kernel' : ['chromos-base/kernel', 'dev-util/perf'], |
| 36 'cros' : ['chromos-base/libcros'] | 35 'cros' : ['chromos-base/libcros'] |
| 37 } | 36 } |
| 38 self._test_string = "kernel.git@12345test cros.git@12333test" | 37 self._test_string = "kernel.git@12345test cros.git@12333test" |
| 39 self._test_string += " crosutils.git@blahblah" | 38 self._test_string += " crosutils.git@blahblah" |
| 40 self._revision_file = 'test-revisions.pfq' | 39 self._revision_file = 'test-revisions.pfq' |
| 41 self._test_parsed_string_array = [ | 40 self._test_parsed_string_array = [ |
| 42 ['chromeos-base/kernel', '12345test'], | 41 ['chromeos-base/kernel', '12345test'], |
| 43 ['dev-util/perf', '12345test'], | 42 ['dev-util/perf', '12345test'], |
| 44 ['chromos-base/libcros', '12345test'] | 43 ['chromos-base/libcros', '12345test'] |
| 45 ] | 44 ] |
| 46 self._overlays = ['%s/src/third_party/chromiumos-overlay' % self._buildroot] | |
| 47 self._chroot_overlays = [ | |
| 48 ReinterpretPathForChroot(p) for p in self._overlays | |
| 49 ] | |
| 50 | 45 |
| 51 def testParseRevisionString(self): | 46 def testParseRevisionString(self): |
| 52 """Test whether _ParseRevisionString parses string correctly.""" | 47 """Test whether _ParseRevisionString parses string correctly.""" |
| 53 return_array = cbuildbot._ParseRevisionString(self._test_string, | 48 return_array = cbuildbot._ParseRevisionString(self._test_string, |
| 54 self._test_dict) | 49 self._test_dict) |
| 55 self.assertEqual(len(return_array), 3) | 50 self.assertEqual(len(return_array), 3) |
| 56 self.assertTrue( | 51 self.assertTrue( |
| 57 'chromeos-base/kernel', '12345test' in return_array) | 52 'chromeos-base/kernel', '12345test' in return_array) |
| 58 self.assertTrue( | 53 self.assertTrue( |
| 59 'dev-util/perf', '12345test' in return_array) | 54 'dev-util/perf', '12345test' in return_array) |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 166 self.mox.StubOutWithMock(__builtin__, 'open') | 161 self.mox.StubOutWithMock(__builtin__, 'open') |
| 167 | 162 |
| 168 # Mock out file interaction. | 163 # Mock out file interaction. |
| 169 m_file = self.mox.CreateMock(file) | 164 m_file = self.mox.CreateMock(file) |
| 170 __builtin__.open(self._revision_file).AndReturn(m_file) | 165 __builtin__.open(self._revision_file).AndReturn(m_file) |
| 171 m_file.read().AndReturn(self._test_string) | 166 m_file.read().AndReturn(self._test_string) |
| 172 m_file.close() | 167 m_file.close() |
| 173 | 168 |
| 174 cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', | 169 cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', |
| 175 '--board=%s' % self._test_board, | 170 '--board=%s' % self._test_board, |
| 176 '--overlays=%s' % ':'.join(self._chroot_overlays), | 171 '--tracking_branch="cros/master"', 'commit'], |
| 177 '--tracking_branch=cros/master', 'commit'], | |
| 178 cwd='%s/src/scripts' % self._buildroot, | 172 cwd='%s/src/scripts' % self._buildroot, |
| 179 enter_chroot=True) | 173 enter_chroot=True) |
| 180 | 174 |
| 181 self.mox.ReplayAll() | 175 self.mox.ReplayAll() |
| 182 cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, | 176 cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, |
| 183 self._revision_file, self._test_board, | 177 self._revision_file, self._test_board) |
| 184 self._overlays) | |
| 185 self.mox.VerifyAll() | 178 self.mox.VerifyAll() |
| 186 | 179 |
| 187 def testUprevAllPackages(self): | 180 def testUprevAllPackages(self): |
| 188 """Test if we get None in revisions.pfq indicating Full Builds.""" | 181 """Test if we get None in revisions.pfq indicating Full Builds.""" |
| 189 self.mox.StubOutWithMock(__builtin__, 'open') | 182 self.mox.StubOutWithMock(__builtin__, 'open') |
| 190 | 183 |
| 191 # Mock out file interaction. | 184 # Mock out file interaction. |
| 192 m_file = self.mox.CreateMock(file) | 185 m_file = self.mox.CreateMock(file) |
| 193 __builtin__.open(self._revision_file).AndReturn(m_file) | 186 __builtin__.open(self._revision_file).AndReturn(m_file) |
| 194 m_file.read().AndReturn('None') | 187 m_file.read().AndReturn('None') |
| 195 m_file.close() | 188 m_file.close() |
| 196 | 189 |
| 197 cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', | 190 cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', |
| 198 '--board=%s' % self._test_board, | 191 '--board=%s' % self._test_board, |
| 199 '--overlays=%s' % ':'.join(self._chroot_overlays), | 192 '--tracking_branch="cros/master"', 'commit'], |
| 200 '--tracking_branch=cros/master', 'commit'], | |
| 201 cwd='%s/src/scripts' % self._buildroot, | 193 cwd='%s/src/scripts' % self._buildroot, |
| 202 enter_chroot=True) | 194 enter_chroot=True) |
| 203 | 195 |
| 204 self.mox.ReplayAll() | 196 self.mox.ReplayAll() |
| 205 cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, | 197 cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, |
| 206 self._revision_file, self._test_board, | 198 self._revision_file, self._test_board) |
| 207 self._overlays) | |
| 208 self.mox.VerifyAll() | 199 self.mox.VerifyAll() |
| 209 | 200 |
| 210 | 201 |
| 211 if __name__ == '__main__': | 202 if __name__ == '__main__': |
| 212 unittest.main() | 203 unittest.main() |
| OLD | NEW |