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

Side by Side Diff: buildbot/prebuilt_unittest.py

Issue 6851021: Update prebuilt.py to support uploading a board tarball to Google Storage. (Closed) Base URL: http://git.chromium.org/git/chromite.git@master
Patch Set: Address review feedback. Created 9 years, 8 months 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
« no previous file with comments | « buildbot/prebuilt.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 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 2 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import copy 6 import copy
7 import mox 7 import mox
8 import os 8 import os
9 import multiprocessing
9 import shutil 10 import shutil
10 import sys 11 import sys
11 import tempfile 12 import tempfile
12 import unittest 13 import unittest
13 import urllib 14 import urllib
14 15
15 import constants 16 import constants
16 sys.path.append(constants.SOURCE_ROOT) 17 sys.path.append(constants.SOURCE_ROOT)
17 import prebuilt 18 import prebuilt
18 from chromite.lib import cros_build_lib 19 from chromite.lib import cros_build_lib
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 448
448 def tearDown(self): 449 def tearDown(self):
449 self.mox.UnsetStubs() 450 self.mox.UnsetStubs()
450 self.mox.VerifyAll() 451 self.mox.VerifyAll()
451 452
452 def testSyncHostPrebuilts(self): 453 def testSyncHostPrebuilts(self):
453 package_path = os.path.join(self.build_path, 454 package_path = os.path.join(self.build_path,
454 prebuilt._HOST_PACKAGES_PATH) 455 prebuilt._HOST_PACKAGES_PATH)
455 url_suffix = prebuilt._REL_HOST_PATH % {'version': self.version, 456 url_suffix = prebuilt._REL_HOST_PATH % {'version': self.version,
456 'target': prebuilt._HOST_TARGET } 457 'target': prebuilt._HOST_TARGET }
457 self.uploader._UploadPrebuilt(package_path, url_suffix) 458 packages_url_suffix = '%s/packages' % url_suffix.rstrip('/')
459 self.uploader._UploadPrebuilt(package_path, packages_url_suffix)
458 url_value = '%s/%s/' % (self.binhost.rstrip('/'), url_suffix.rstrip('/')) 460 url_value = '%s/%s/' % (self.binhost.rstrip('/'), url_suffix.rstrip('/'))
459 prebuilt.RevGitFile(mox.IgnoreArg(), url_value, key=self.key) 461 prebuilt.RevGitFile(mox.IgnoreArg(), url_value, key=self.key)
460 prebuilt.UpdateBinhostConfFile(mox.IgnoreArg(), self.key, url_value) 462 prebuilt.UpdateBinhostConfFile(mox.IgnoreArg(), self.key, url_value)
461 self.mox.ReplayAll() 463 self.mox.ReplayAll()
462 self.uploader._SyncHostPrebuilts(self.build_path, self.version, self.key, 464 self.uploader._SyncHostPrebuilts(self.build_path, self.version, self.key,
463 True, True) 465 True, True)
464 466
465 def testSyncBoardPrebuilts(self): 467 def testSyncBoardPrebuilts(self):
466 board = 'x86-generic' 468 board = 'x86-generic'
467 board_path = os.path.join(self.build_path, 469 board_path = os.path.join(self.build_path,
468 prebuilt._BOARD_PATH % {'board': board}) 470 prebuilt._BOARD_PATH % {'board': board})
469 package_path = os.path.join(board_path, 'packages') 471 package_path = os.path.join(board_path, 'packages')
470 url_suffix = prebuilt._REL_BOARD_PATH % {'version': self.version, 472 url_suffix = prebuilt._REL_BOARD_PATH % {'version': self.version,
471 'board': board } 473 'board': board }
472 self.uploader._UploadPrebuilt(package_path, url_suffix) 474 packages_url_suffix = '%s/packages' % url_suffix.rstrip('/')
475 process = None
476 self.mox.StubOutWithMock(multiprocessing.Process, '__init__')
477 self.mox.StubOutWithMock(multiprocessing.Process, 'exitcode')
478 self.mox.StubOutWithMock(multiprocessing.Process, 'start')
479 self.mox.StubOutWithMock(multiprocessing.Process, 'join')
480 multiprocessing.Process.__init__(target=self.uploader._UploadBoardTarball,
481 args=(board_path, url_suffix))
482 multiprocessing.Process.start()
483 self.uploader._UploadPrebuilt(package_path, packages_url_suffix)
484 multiprocessing.Process.join()
485 multiprocessing.Process.exitcode = 0
473 url_value = '%s/%s/' % (self.binhost.rstrip('/'), url_suffix.rstrip('/')) 486 url_value = '%s/%s/' % (self.binhost.rstrip('/'), url_suffix.rstrip('/'))
474 prebuilt.DeterminePrebuiltConfFile(self.build_path, board).AndReturn('foo') 487 prebuilt.DeterminePrebuiltConfFile(self.build_path, board).AndReturn('foo')
475 prebuilt.RevGitFile('foo', url_value, key=self.key) 488 prebuilt.RevGitFile('foo', url_value, key=self.key)
476 prebuilt.UpdateBinhostConfFile(mox.IgnoreArg(), self.key, url_value) 489 prebuilt.UpdateBinhostConfFile(mox.IgnoreArg(), self.key, url_value)
477 self.mox.ReplayAll() 490 self.mox.ReplayAll()
478 self.uploader._SyncBoardPrebuilts(board, self.build_path, self.version, 491 self.uploader._SyncBoardPrebuilts(board, self.build_path, self.version,
479 self.key, True, True) 492 self.key, True, True, True)
480 493
481 494
482 class TestMain(unittest.TestCase): 495 class TestMain(unittest.TestCase):
483 496
484 def setUp(self): 497 def setUp(self):
485 self.mox = mox.Mox() 498 self.mox = mox.Mox()
486 499
487 def tearDown(self): 500 def tearDown(self):
488 self.mox.UnsetStubs() 501 self.mox.UnsetStubs()
489 self.mox.VerifyAll() 502 self.mox.VerifyAll()
490 503
491 def testMain(self): 504 def testMain(self):
492 """Test that the main function works.""" 505 """Test that the main function works."""
493 options = mox.MockObject(object) 506 options = mox.MockObject(object)
494 old_binhost = 'http://prebuilt/1' 507 old_binhost = 'http://prebuilt/1'
495 options.previous_binhost_url = [old_binhost] 508 options.previous_binhost_url = [old_binhost]
496 options.board = 'x86-generic' 509 options.board = 'x86-generic'
497 options.build_path = '/trunk' 510 options.build_path = '/trunk'
498 options.private = True 511 options.private = True
499 options.sync_host = True 512 options.sync_host = True
500 options.git_sync = True 513 options.git_sync = True
514 options.upload_board_tarball = True
501 options.upload = 'gs://upload/' 515 options.upload = 'gs://upload/'
502 options.binhost_base_url = options.upload 516 options.binhost_base_url = options.upload
503 options.prepend_version = True 517 options.prepend_version = True
504 options.filters = True 518 options.filters = True
505 options.key = 'PORTAGE_BINHOST' 519 options.key = 'PORTAGE_BINHOST'
506 options.sync_binhost_conf = True 520 options.sync_binhost_conf = True
507 self.mox.StubOutWithMock(prebuilt, 'ParseOptions') 521 self.mox.StubOutWithMock(prebuilt, 'ParseOptions')
508 prebuilt.ParseOptions().AndReturn(options) 522 prebuilt.ParseOptions().AndReturn(options)
509 self.mox.StubOutWithMock(prebuilt, 'LoadPrivateFilters') 523 self.mox.StubOutWithMock(prebuilt, 'LoadPrivateFilters')
510 prebuilt.LoadPrivateFilters(options.build_path) 524 prebuilt.LoadPrivateFilters(options.build_path)
511 self.mox.StubOutWithMock(prebuilt, 'GrabRemotePackageIndex') 525 self.mox.StubOutWithMock(prebuilt, 'GrabRemotePackageIndex')
512 prebuilt.GrabRemotePackageIndex(old_binhost).AndReturn(True) 526 prebuilt.GrabRemotePackageIndex(old_binhost).AndReturn(True)
513 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '__init__') 527 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '__init__')
514 self.mox.StubOutWithMock(prebuilt, 'GetBoardPathFromCrosOverlayList') 528 self.mox.StubOutWithMock(prebuilt, 'GetBoardPathFromCrosOverlayList')
515 fake_overlay_path = '/fake_path' 529 fake_overlay_path = '/fake_path'
516 acl_path = prebuilt.GetBoardPathFromCrosOverlayList( 530 acl_path = prebuilt.GetBoardPathFromCrosOverlayList(
517 options.build_path, options.board).AndReturn(fake_overlay_path) 531 options.build_path, options.board).AndReturn(fake_overlay_path)
518 expected_gs_acl_path = os.path.join(fake_overlay_path, 532 expected_gs_acl_path = os.path.join(fake_overlay_path,
519 prebuilt._GOOGLESTORAGE_ACL_FILE) 533 prebuilt._GOOGLESTORAGE_ACL_FILE)
520 prebuilt.PrebuiltUploader.__init__(options.upload, expected_gs_acl_path, 534 prebuilt.PrebuiltUploader.__init__(options.upload, expected_gs_acl_path,
521 options.upload, mox.IgnoreArg()) 535 options.upload, mox.IgnoreArg())
522 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '_SyncHostPrebuilts') 536 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '_SyncHostPrebuilts')
523 prebuilt.PrebuiltUploader._SyncHostPrebuilts(options.build_path, 537 prebuilt.PrebuiltUploader._SyncHostPrebuilts(options.build_path,
524 mox.IgnoreArg(), options.key, options.git_sync, 538 mox.IgnoreArg(), options.key, options.git_sync,
525 options.sync_binhost_conf) 539 options.sync_binhost_conf)
526 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '_SyncBoardPrebuilts') 540 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '_SyncBoardPrebuilts')
527 prebuilt.PrebuiltUploader._SyncBoardPrebuilts(options.board, 541 prebuilt.PrebuiltUploader._SyncBoardPrebuilts(options.board,
528 options.build_path, mox.IgnoreArg(), options.key, options.git_sync, 542 options.build_path, mox.IgnoreArg(), options.key, options.git_sync,
529 options.sync_binhost_conf) 543 options.sync_binhost_conf, options.upload_board_tarball)
530 self.mox.ReplayAll() 544 self.mox.ReplayAll()
531 prebuilt.main() 545 prebuilt.main()
532 546
533 if __name__ == '__main__': 547 if __name__ == '__main__':
534 unittest.main() 548 unittest.main()
OLDNEW
« no previous file with comments | « buildbot/prebuilt.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698