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

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: Add more checks 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
« buildbot/prebuilt.py ('K') | « 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, 'start')
478 self.mox.StubOutWithMock(multiprocessing.Process, 'join')
479 multiprocessing.Process.__init__(target=self.uploader._UploadBoardTarball,
480 args=(board_path, url_suffix))
481 multiprocessing.Process.start()
482 self.uploader._UploadPrebuilt(package_path, packages_url_suffix)
483 multiprocessing.Process.join()
473 url_value = '%s/%s/' % (self.binhost.rstrip('/'), url_suffix.rstrip('/')) 484 url_value = '%s/%s/' % (self.binhost.rstrip('/'), url_suffix.rstrip('/'))
474 prebuilt.DeterminePrebuiltConfFile(self.build_path, board).AndReturn('foo') 485 prebuilt.DeterminePrebuiltConfFile(self.build_path, board).AndReturn('foo')
475 prebuilt.RevGitFile('foo', url_value, key=self.key) 486 prebuilt.RevGitFile('foo', url_value, key=self.key)
476 prebuilt.UpdateBinhostConfFile(mox.IgnoreArg(), self.key, url_value) 487 prebuilt.UpdateBinhostConfFile(mox.IgnoreArg(), self.key, url_value)
477 self.mox.ReplayAll() 488 self.mox.ReplayAll()
478 self.uploader._SyncBoardPrebuilts(board, self.build_path, self.version, 489 self.uploader._SyncBoardPrebuilts(board, self.build_path, self.version,
479 self.key, True, True) 490 self.key, True, True, True)
480 491
481 492
482 class TestMain(unittest.TestCase): 493 class TestMain(unittest.TestCase):
483 494
484 def setUp(self): 495 def setUp(self):
485 self.mox = mox.Mox() 496 self.mox = mox.Mox()
486 497
487 def tearDown(self): 498 def tearDown(self):
488 self.mox.UnsetStubs() 499 self.mox.UnsetStubs()
489 self.mox.VerifyAll() 500 self.mox.VerifyAll()
490 501
491 def testMain(self): 502 def testMain(self):
492 """Test that the main function works.""" 503 """Test that the main function works."""
493 options = mox.MockObject(object) 504 options = mox.MockObject(object)
494 old_binhost = 'http://prebuilt/1' 505 old_binhost = 'http://prebuilt/1'
495 options.previous_binhost_url = [old_binhost] 506 options.previous_binhost_url = [old_binhost]
496 options.board = 'x86-generic' 507 options.board = 'x86-generic'
497 options.build_path = '/trunk' 508 options.build_path = '/trunk'
498 options.private = True 509 options.private = True
499 options.sync_host = True 510 options.sync_host = True
500 options.git_sync = True 511 options.git_sync = True
512 options.upload_board_tarball = True
501 options.upload = 'gs://upload/' 513 options.upload = 'gs://upload/'
502 options.binhost_base_url = options.upload 514 options.binhost_base_url = options.upload
503 options.prepend_version = True 515 options.prepend_version = True
504 options.filters = True 516 options.filters = True
505 options.key = 'PORTAGE_BINHOST' 517 options.key = 'PORTAGE_BINHOST'
506 options.sync_binhost_conf = True 518 options.sync_binhost_conf = True
507 self.mox.StubOutWithMock(prebuilt, 'ParseOptions') 519 self.mox.StubOutWithMock(prebuilt, 'ParseOptions')
508 prebuilt.ParseOptions().AndReturn(options) 520 prebuilt.ParseOptions().AndReturn(options)
509 self.mox.StubOutWithMock(prebuilt, 'LoadPrivateFilters') 521 self.mox.StubOutWithMock(prebuilt, 'LoadPrivateFilters')
510 prebuilt.LoadPrivateFilters(options.build_path) 522 prebuilt.LoadPrivateFilters(options.build_path)
511 self.mox.StubOutWithMock(prebuilt, 'GrabRemotePackageIndex') 523 self.mox.StubOutWithMock(prebuilt, 'GrabRemotePackageIndex')
512 prebuilt.GrabRemotePackageIndex(old_binhost).AndReturn(True) 524 prebuilt.GrabRemotePackageIndex(old_binhost).AndReturn(True)
513 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '__init__') 525 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '__init__')
514 self.mox.StubOutWithMock(prebuilt, 'GetBoardPathFromCrosOverlayList') 526 self.mox.StubOutWithMock(prebuilt, 'GetBoardPathFromCrosOverlayList')
515 fake_overlay_path = '/fake_path' 527 fake_overlay_path = '/fake_path'
516 acl_path = prebuilt.GetBoardPathFromCrosOverlayList( 528 acl_path = prebuilt.GetBoardPathFromCrosOverlayList(
517 options.build_path, options.board).AndReturn(fake_overlay_path) 529 options.build_path, options.board).AndReturn(fake_overlay_path)
518 expected_gs_acl_path = os.path.join(fake_overlay_path, 530 expected_gs_acl_path = os.path.join(fake_overlay_path,
519 prebuilt._GOOGLESTORAGE_ACL_FILE) 531 prebuilt._GOOGLESTORAGE_ACL_FILE)
520 prebuilt.PrebuiltUploader.__init__(options.upload, expected_gs_acl_path, 532 prebuilt.PrebuiltUploader.__init__(options.upload, expected_gs_acl_path,
521 options.upload, mox.IgnoreArg()) 533 options.upload, mox.IgnoreArg())
522 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '_SyncHostPrebuilts') 534 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '_SyncHostPrebuilts')
523 prebuilt.PrebuiltUploader._SyncHostPrebuilts(options.build_path, 535 prebuilt.PrebuiltUploader._SyncHostPrebuilts(options.build_path,
524 mox.IgnoreArg(), options.key, options.git_sync, 536 mox.IgnoreArg(), options.key, options.git_sync,
525 options.sync_binhost_conf) 537 options.sync_binhost_conf)
526 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '_SyncBoardPrebuilts') 538 self.mox.StubOutWithMock(prebuilt.PrebuiltUploader, '_SyncBoardPrebuilts')
527 prebuilt.PrebuiltUploader._SyncBoardPrebuilts(options.board, 539 prebuilt.PrebuiltUploader._SyncBoardPrebuilts(options.board,
528 options.build_path, mox.IgnoreArg(), options.key, options.git_sync, 540 options.build_path, mox.IgnoreArg(), options.key, options.git_sync,
529 options.sync_binhost_conf) 541 options.sync_binhost_conf, options.upload_board_tarball)
530 self.mox.ReplayAll() 542 self.mox.ReplayAll()
531 prebuilt.main() 543 prebuilt.main()
532 544
533 if __name__ == '__main__': 545 if __name__ == '__main__':
534 unittest.main() 546 unittest.main()
OLDNEW
« buildbot/prebuilt.py ('K') | « buildbot/prebuilt.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698