| OLD | NEW |
| 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 Loading... |
| 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() |
| OLD | NEW |