blob: 6a543c612a0b3ed501fceaf1793db6f5255b77af [file] [log] [blame]
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
import update_reference_build as update_ref_build
# Disable for accessing private API of update_reference_build class.
# pylint: disable=protected-access
class UpdateReferenceBuildUnittest(unittest.TestCase):
def testInit(self):
@classmethod
def EmptyVersions(_):
return {}
@classmethod
def AllOmahaVersion1(_):
return {'mac': '1', 'linux': '1', 'win': '1'}
@classmethod
def AllCurrentVersion1(_):
return {'Mac64': '1', 'Linux': '1', 'Linux_x64': '1', 'Win': '1'}
@classmethod
def MixedOmahaVersion23(_):
return {'mac': '2', 'linux': '3', 'win': '2'}
@classmethod
def MissingOmahaVersion(_):
return {'mac': '2', 'win': '1'}
old_stable = update_ref_build.BuildUpdater._OmahaVersionsMap
old_current = update_ref_build.BuildUpdater._CurrentRefBuildsMap
try:
update_ref_build.BuildUpdater._CurrentRefBuildsMap = EmptyVersions
update_ref_build.BuildUpdater._OmahaVersionsMap = AllOmahaVersion1
expected_versions = {
'Mac64': '1',
'Linux': '1',
'Linux_x64': '1',
'Win': '1'
}
b = update_ref_build.BuildUpdater()
self.assertEqual(expected_versions, b._platform_to_version_map)
update_ref_build.BuildUpdater._OmahaVersionsMap = MissingOmahaVersion
expected_versions = {'Mac64': '2', 'Win': '1'}
b = update_ref_build.BuildUpdater()
self.assertEqual(expected_versions, b._platform_to_version_map)
update_ref_build.BuildUpdater._CurrentRefBuildsMap = AllCurrentVersion1
expected_versions = {'Mac64': '2'}
b = update_ref_build.BuildUpdater()
self.assertEqual(expected_versions, b._platform_to_version_map)
update_ref_build.BuildUpdater._OmahaVersionsMap = MixedOmahaVersion23
expected_versions = {
'Mac64': '2',
'Linux': '3',
'Linux_x64': '3',
'Win': '2'
}
b = update_ref_build.BuildUpdater()
self.assertEqual(expected_versions, b._platform_to_version_map)
finally:
update_ref_build.BuildUpdater._OmahaVersionsMap = old_stable
update_ref_build.BuildUpdater._CurrentRefBuildsMap = old_current
def testOmahaVersions(self):
# This is an example of valid output from the _OmahaReport function.
# Taken from processing the omaha report on 3/18/15
lines = [['os', 'channel', 'current_version', 'previous_version',
'current_reldate', 'previous_reldate', 'branch_base_commit',
'branch_base_position', 'branch_commit', 'base_webkit_position',
'true_branch', 'v8_version\n'],
['win', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15',
'03/03/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958',
'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177', 'master',
'4.1.0.21\n'],
['mac', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15',
'03/03/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958',
'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177', 'master',
'4.1.0.21\n'],
['linux', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15',
'03/03/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958',
'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177', 'master',
'4.1.0.21\n'],
['cros', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15',
'03/04/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958',
'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177', 'master',
'4.1.0.21\n'],
['android', 'stable', '41.0.2272.94', '40.0.2214.109', '03/18/15',
'02/04/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4', '310958',
'70c994cb9b14e4c6934654aaa7089b4b2e8f7788', '188177', '2272',
'4.1.0.21\n'],
['ios', 'stable', '41.0.2272.56', '40.0.2214.73', '03/16/15',
'02/18/15', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A', 'N/A\n']]
@classmethod
def GetLines(_):
return lines
old_omaha_report = update_ref_build.BuildUpdater._OmahaReport
update_ref_build.BuildUpdater._OmahaReport = GetLines
expected_versions = {'win': '41.0.2272.89', 'mac': '41.0.2272.89',
'linux': '41.0.2272.89'}
b = update_ref_build.BuildUpdater()
try:
versions = b._OmahaVersionsMap()
self.assertEqual(expected_versions, versions)
lines = [['os', 'channel', 'current_version', 'previous_version',
'current_reldate', 'previous_reldate', 'branch_base_commit',
'branch_base_position', 'branch_commit', 'base_webkit_position',
'true_branch', 'v8_version\n'],
['win', 'stable', '41.0.2272.89', '41.0.2272.76', '03/10/15',
'03/03/15', '827a380cfdb31aa54c8d56e63ce2c3fd8c3ba4d4',
'310958', 'a4d5695040a99b9b2cb196eb5b898383a274376e', '188177',
'master', '4.1.0.21\n']]
self.assertRaises(ValueError, b._OmahaVersionsMap)
lines = ['random', 'list', 'of', 'strings']
self.assertRaises(ValueError, b._OmahaVersionsMap)
lines = []
self.assertRaises(ValueError, b._OmahaVersionsMap)
finally:
update_ref_build.BuildUpdater._OmahaReport = old_omaha_report