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 | |
19 | 20 |
20 class CBuildBotTest(mox.MoxTestBase): | 21 class CBuildBotTest(mox.MoxTestBase): |
21 | 22 |
22 def setUp(self): | 23 def setUp(self): |
23 mox.MoxTestBase.setUp(self) | 24 mox.MoxTestBase.setUp(self) |
24 # Always stub RunCommmand out as we use it in every method. | 25 # Always stub RunCommmand out as we use it in every method. |
25 self.mox.StubOutWithMock(cbuildbot, 'RunCommand') | 26 self.mox.StubOutWithMock(cbuildbot, 'RunCommand') |
26 self.tracking_branch = 'cros/master' | 27 self.tracking_branch = 'cros/master' |
27 self._test_repos = [['kernel', 'third_party/kernel/files'], | 28 self._test_repos = [['kernel', 'third_party/kernel/files'], |
28 ['login_manager', 'platform/login_manager'] | 29 ['login_manager', 'platform/login_manager'] |
29 ] | 30 ] |
30 self._test_cros_workon_packages = \ | 31 self._test_cros_workon_packages = \ |
31 'chromeos-base/kernel\nchromeos-base/chromeos-login\n' | 32 'chromeos-base/kernel\nchromeos-base/chromeos-login\n' |
32 self._test_board = 'test-board' | 33 self._test_board = 'test-board' |
33 self._buildroot = '.' | 34 self._buildroot = '.' |
34 self._test_dict = {'kernel' : ['chromos-base/kernel', 'dev-util/perf'], | 35 self._test_dict = {'kernel' : ['chromos-base/kernel', 'dev-util/perf'], |
35 'cros' : ['chromos-base/libcros'] | 36 'cros' : ['chromos-base/libcros'] |
36 } | 37 } |
37 self._test_string = "kernel.git@12345test cros.git@12333test" | 38 self._test_string = "kernel.git@12345test cros.git@12333test" |
38 self._test_string += " crosutils.git@blahblah" | 39 self._test_string += " crosutils.git@blahblah" |
39 self._revision_file = 'test-revisions.pfq' | 40 self._revision_file = 'test-revisions.pfq' |
40 self._test_parsed_string_array = [ | 41 self._test_parsed_string_array = [ |
41 ['chromeos-base/kernel', '12345test'], | 42 ['chromeos-base/kernel', '12345test'], |
42 ['dev-util/perf', '12345test'], | 43 ['dev-util/perf', '12345test'], |
43 ['chromos-base/libcros', '12345test'] | 44 ['chromos-base/libcros', '12345test'] |
44 ] | 45 ] |
46 self._overlays = [ '%s/src/third_party/chromiumos-overlay' % self._buildroot ] | |
diandersAtChromium
2010/11/12 22:09:35
NIT: line too long
davidjames
2010/11/12 22:31:25
Done.
| |
47 self._chroot_overlays = [ ReinterpretPathForChroot(self._overlays[0]) ] | |
diandersAtChromium
2010/11/12 22:09:35
NIT: [ ReinterpretPathForChroot(p) for p in self._
davidjames
2010/11/12 22:31:25
Done.
| |
45 | 48 |
46 def testParseRevisionString(self): | 49 def testParseRevisionString(self): |
47 """Test whether _ParseRevisionString parses string correctly.""" | 50 """Test whether _ParseRevisionString parses string correctly.""" |
48 return_array = cbuildbot._ParseRevisionString(self._test_string, | 51 return_array = cbuildbot._ParseRevisionString(self._test_string, |
49 self._test_dict) | 52 self._test_dict) |
50 self.assertEqual(len(return_array), 3) | 53 self.assertEqual(len(return_array), 3) |
51 self.assertTrue( | 54 self.assertTrue( |
52 'chromeos-base/kernel', '12345test' in return_array) | 55 'chromeos-base/kernel', '12345test' in return_array) |
53 self.assertTrue( | 56 self.assertTrue( |
54 'dev-util/perf', '12345test' in return_array) | 57 'dev-util/perf', '12345test' in return_array) |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
161 self.mox.StubOutWithMock(__builtin__, 'open') | 164 self.mox.StubOutWithMock(__builtin__, 'open') |
162 | 165 |
163 # Mock out file interaction. | 166 # Mock out file interaction. |
164 m_file = self.mox.CreateMock(file) | 167 m_file = self.mox.CreateMock(file) |
165 __builtin__.open(self._revision_file).AndReturn(m_file) | 168 __builtin__.open(self._revision_file).AndReturn(m_file) |
166 m_file.read().AndReturn(self._test_string) | 169 m_file.read().AndReturn(self._test_string) |
167 m_file.close() | 170 m_file.close() |
168 | 171 |
169 cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', | 172 cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', |
170 '--board=%s' % self._test_board, | 173 '--board=%s' % self._test_board, |
171 '--tracking_branch="cros/master"', 'commit'], | 174 '--overlays=%s' % ':'.join(self._chroot_overlays), |
175 '--tracking_branch=cros/master', 'commit'], | |
172 cwd='%s/src/scripts' % self._buildroot, | 176 cwd='%s/src/scripts' % self._buildroot, |
173 enter_chroot=True) | 177 enter_chroot=True) |
174 | 178 |
175 self.mox.ReplayAll() | 179 self.mox.ReplayAll() |
176 cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, | 180 cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, |
177 self._revision_file, self._test_board) | 181 self._revision_file, self._test_board, self._overla ys) |
diandersAtChromium
2010/11/12 22:09:35
NIT: > 80 characters
davidjames
2010/11/12 22:31:25
Done.
| |
178 self.mox.VerifyAll() | 182 self.mox.VerifyAll() |
179 | 183 |
180 def testUprevAllPackages(self): | 184 def testUprevAllPackages(self): |
181 """Test if we get None in revisions.pfq indicating Full Builds.""" | 185 """Test if we get None in revisions.pfq indicating Full Builds.""" |
182 self.mox.StubOutWithMock(__builtin__, 'open') | 186 self.mox.StubOutWithMock(__builtin__, 'open') |
183 | 187 |
184 # Mock out file interaction. | 188 # Mock out file interaction. |
185 m_file = self.mox.CreateMock(file) | 189 m_file = self.mox.CreateMock(file) |
186 __builtin__.open(self._revision_file).AndReturn(m_file) | 190 __builtin__.open(self._revision_file).AndReturn(m_file) |
187 m_file.read().AndReturn('None') | 191 m_file.read().AndReturn('None') |
188 m_file.close() | 192 m_file.close() |
189 | 193 |
190 cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', | 194 cbuildbot.RunCommand(['./cros_mark_as_stable', '--all', |
191 '--board=%s' % self._test_board, | 195 '--board=%s' % self._test_board, |
192 '--tracking_branch="cros/master"', 'commit'], | 196 '--overlays=%s' % ':'.join(self._chroot_overlays), |
197 '--tracking_branch=cros/master', 'commit'], | |
193 cwd='%s/src/scripts' % self._buildroot, | 198 cwd='%s/src/scripts' % self._buildroot, |
194 enter_chroot=True) | 199 enter_chroot=True) |
195 | 200 |
196 self.mox.ReplayAll() | 201 self.mox.ReplayAll() |
197 cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, | 202 cbuildbot._UprevPackages(self._buildroot, self.tracking_branch, |
198 self._revision_file, self._test_board) | 203 self._revision_file, self._test_board, self._overla ys) |
diandersAtChromium
2010/11/12 22:09:35
NIT: > 80 characters
davidjames
2010/11/12 22:31:25
Done.
| |
199 self.mox.VerifyAll() | 204 self.mox.VerifyAll() |
200 | 205 |
201 | 206 |
202 if __name__ == '__main__': | 207 if __name__ == '__main__': |
203 unittest.main() | 208 unittest.main() |
OLD | NEW |