Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(258)

Side by Side Diff: bin/cbuildbot_unittest.py

Issue 5689003: Add ability to store the manifest in the manifest directory. (Closed) Base URL: http://git.chromium.org/git/crosutils.git@master
Patch Set: Issues while testing Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« bin/cbuildbot.py ('K') | « bin/cbuildbot.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 tempfile
14 import unittest 15 import unittest
15 16
16 # Fixes circular dependency error. 17 # Fixes circular dependency error.
17 import cbuildbot_comm 18 import cbuildbot_comm
18 import cbuildbot 19 import cbuildbot
19 from cros_build_lib import ReinterpretPathForChroot 20 from cros_build_lib import ReinterpretPathForChroot
20 21
22
21 class CBuildBotTest(mox.MoxTestBase): 23 class CBuildBotTest(mox.MoxTestBase):
22 24
23 def setUp(self): 25 def setUp(self):
24 mox.MoxTestBase.setUp(self) 26 mox.MoxTestBase.setUp(self)
25 # Always stub RunCommmand out as we use it in every method. 27 # Always stub RunCommmand out as we use it in every method.
26 self.mox.StubOutWithMock(cbuildbot, 'RunCommand') 28 self.mox.StubOutWithMock(cbuildbot, 'RunCommand')
27 self.tracking_branch = 'cros/master' 29 self.tracking_branch = 'cros/master'
28 self._test_repos = [['kernel', 'third_party/kernel/files'], 30 self._test_repos = [['kernel', 'third_party/kernel/files'],
29 ['login_manager', 'platform/login_manager'] 31 ['login_manager', 'platform/login_manager']
30 ] 32 ]
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 # cbuildbot._UprevPackages(self._buildroot, self._revision_file, 112 # cbuildbot._UprevPackages(self._buildroot, self._revision_file,
111 # self._test_board) 113 # self._test_board)
112 # self.mox.VerifyAll() 114 # self.mox.VerifyAll()
113 115
114 def testArchiveTestResults(self): 116 def testArchiveTestResults(self):
115 """Test if we can archive the latest results dir to Google Storage.""" 117 """Test if we can archive the latest results dir to Google Storage."""
116 # Set vars for call. 118 # Set vars for call.
117 buildroot = '/fake_dir' 119 buildroot = '/fake_dir'
118 board = 'fake-board' 120 board = 'fake-board'
119 test_results_dir = 'fake_results_dir' 121 test_results_dir = 'fake_results_dir'
120 gsutil_path='/fake/gsutil/path' 122 gsutil_path = '/fake/gsutil/path'
121 archive_dir = 1234 123 archive_dir = 1234
122 acl = 'fake_acl' 124 acl = 'fake_acl'
123 num_retries = 5 125 num_retries = 5
124 126
125 # Convenience variables to make archive easier to understand. 127 # Convenience variables to make archive easier to understand.
126 path_to_results = os.path.join(buildroot, 'chroot', test_results_dir) 128 path_to_results = os.path.join(buildroot, 'chroot', test_results_dir)
127 path_to_image = os.path.join(buildroot, 'src', 'build', 'images', board, 129 path_to_image = os.path.join(buildroot, 'src', 'build', 'images', board,
128 'latest', 'chromiumos_qemu_image.bin') 130 'latest', 'chromiumos_qemu_image.bin')
129 131
130 cbuildbot.RunCommand(['sudo', 'chmod', '-R', '+r', path_to_results]) 132 cbuildbot.RunCommand(['sudo', 'chmod', '-R', '+r', path_to_results])
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 binhost = 'http://www.example.com' 225 binhost = 'http://www.example.com'
224 binhosts = [binhost, None] 226 binhosts = [binhost, None]
225 check = mox.And(mox.IsA(list), mox.In(binhost), mox.Not(mox.In(None)), 227 check = mox.And(mox.IsA(list), mox.In(binhost), mox.Not(mox.In(None)),
226 mox.In('chromeos-images:/var/www/prebuilt/')) 228 mox.In('chromeos-images:/var/www/prebuilt/'))
227 cbuildbot.RunCommand(check, cwd='%s/src/scripts' % self._buildroot) 229 cbuildbot.RunCommand(check, cwd='%s/src/scripts' % self._buildroot)
228 self.mox.ReplayAll() 230 self.mox.ReplayAll()
229 cbuildbot._UploadPrebuilts(self._buildroot, self._test_board, 'private', 231 cbuildbot._UploadPrebuilts(self._buildroot, self._test_board, 'private',
230 binhosts) 232 binhosts)
231 self.mox.VerifyAll() 233 self.mox.VerifyAll()
232 234
235 def testGetChromeOSVersion(self):
236 """Tests that we can parse the correct chromeos version using method."""
237 fake_data = '\n'.join(['ChromeOS version information:',
238 ' SOME_OTHER_DATA=blah',
239 ' CHROMEOS_VERSION_STRING=9.0.232.1',
240 ' CHROMEOS_VERSION_CODENAME=test-bot',
241 ])
242 cbuildbot.RunCommand('./chromeos_version.sh',
243 cwd='src/scripts',
244 redirect_stderr=True,
245 redirect_stdout=True).AndReturn(fake_data)
246 self.mox.ReplayAll()
247 return_tuple = cbuildbot._GetChromeOSVersion('')
248 self.assertEquals('.'.join(return_tuple), '9.0.232.1')
249 self.mox.VerifyAll()
250
251 def testGetManifestPath(self):
252 """Tests whether our logic to get the manifest path is correct."""
253 self.mox.StubOutWithMock(cbuildbot, '_GetChromeOSVersion')
254 return_tuple = cbuildbot._GetChromeOSVersion('').AndReturn(
255 ('9', '0', '232', '1'))
256 self.mox.ReplayAll()
257 relative_path = cbuildbot._GetManifestPath('')
258 self.assertEquals(relative_path, '9.0/9.0.232.1.xml')
259 self.mox.VerifyAll()
260
261 def _CommonManifestTest(self, url, overlay_no_buildroot):
262 """Common method for dump manifest tests."""
263 self.mox.StubOutWithMock(cbuildbot, '_GetManifestPath')
264 self.mox.StubOutWithMock(shutil, 'copy')
265 self.mox.StubOutWithMock(os, 'symlink')
266 temp_root = tempfile.mkdtemp('_unittest')
267
268 overlay = overlay_no_buildroot % { 'buildroot': temp_root }
scottz 2010/12/11 00:01:53 {'
sosa 2010/12/13 18:46:39 Done.
269 relative_path = 'fake/manifest/path.xml'
270 full_path = os.path.join(overlay, 'manifests', relative_path)
271
272 cbuildbot._GetManifestPath(temp_root).AndReturn(relative_path)
273 cbuildbot.RunCommand(['repo', 'manifest', '-r', '-o', full_path],
274 cwd=temp_root)
275 os.symlink(relative_path, os.path.join(overlay, 'manifests', 'LATEST'))
276 cbuildbot.RunCommand(['git', 'add', 'manifests/' + relative_path],
277 cwd=overlay)
278 cbuildbot.RunCommand(['git', 'add', 'manifests/LATEST'], cwd=overlay)
279 shutil.copy(full_path, '/dev/stderr')
280
281 self.mox.ReplayAll()
282 cbuildbot._DumpManifest(temp_root, url)
283 self.mox.VerifyAll()
284
285 shutil.rmtree(temp_root)
286
287 def testDumpManifestPublic(self):
288 """Tests whether we push the manifest to the public overlay correctly."""
289 self._CommonManifestTest('http://some_url/manifest',
290 cbuildbot.PUBLIC_OVERLAY)
291
292 def testDumpManifestPrivate(self):
293 """Tests whether we push the manifest to the private overlay correctly."""
294 self._CommonManifestTest('http://some_url/manifest-internal',
295 cbuildbot.PRIVATE_OVERLAY)
296
233 297
234 if __name__ == '__main__': 298 if __name__ == '__main__':
235 unittest.main() 299 unittest.main()
OLDNEW
« bin/cbuildbot.py ('K') | « bin/cbuildbot.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698