diff options
author | Denis Nikitin <denik@google.com> | 2019-08-14 10:28:29 -0700 |
---|---|---|
committer | Denis Nikitin <denik@chromium.org> | 2019-08-14 23:29:27 +0000 |
commit | 8063d4edff8eeaeb40f6d1a9a808a607629ceade (patch) | |
tree | e1470ba121d8938b59bf07d8eb40246f5b2217dc /cros_utils | |
parent | d5ce3d74eb5c9b66291a9a22014d7468df9879e3 (diff) | |
download | toolchain-utils-8063d4edff8eeaeb40f6d1a9a808a607629ceade.tar.gz |
cros_utils: Fix blacklisted R79-12384.0.0 image
Replaced comparison of the image revision with
list comparison.
Added unittest for GetLatestImage.
BUG=chromium:992242
TEST=unittest passes
Change-Id: I085a2a31ff89f02f71c093e7ac3726250b909229
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/1754442
Commit-Queue: Denis Nikitin <denik@chromium.org>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Denis Nikitin <denik@chromium.org>
Diffstat (limited to 'cros_utils')
-rw-r--r-- | cros_utils/buildbot_utils.py | 3 | ||||
-rwxr-xr-x | cros_utils/buildbot_utils_unittest.py | 34 |
2 files changed, 35 insertions, 2 deletions
diff --git a/cros_utils/buildbot_utils.py b/cros_utils/buildbot_utils.py index 1101cbdf..35dc3ac6 100644 --- a/cros_utils/buildbot_utils.py +++ b/cros_utils/buildbot_utils.py @@ -2,6 +2,7 @@ # Copyright 2017 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. + """Utilities for launching and accessing ChromeOS buildbots.""" from __future__ import print_function @@ -252,7 +253,7 @@ def GetLatestImage(chromeos_root, path): build = '%s/R%d-%d.%d.%d' % (path, c[0], c[1], c[2], c[3]) # Blacklist "R79-12384.0.0" image released by mistake. # TODO(crbug.com/992242): Remove the filter by 2019-09-05. - if '.'.join(c) == '79.12384.0.0': + if c == [79, 12384, 0, 0]: continue if DoesImageExist(chromeos_root, build): diff --git a/cros_utils/buildbot_utils_unittest.py b/cros_utils/buildbot_utils_unittest.py index c57b2d32..bfba8d78 100755 --- a/cros_utils/buildbot_utils_unittest.py +++ b/cros_utils/buildbot_utils_unittest.py @@ -1,8 +1,10 @@ #!/usr/bin/env python2 - +# -*- coding: utf-8 -*- +# # Copyright 2018 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. + """Unittest for buildbot_utils.py.""" from __future__ import print_function @@ -34,9 +36,19 @@ class TrybotTest(unittest.TestCase): tryjob_out = ( '[{"buildbucket_id": "8952721143823688176", "build_config": ' '"cave-llvm-toolchain-tryjob", "url": ' + # pylint: disable=line-too-long '"http://cros-goldeneye/chromeos/healthmonitoring/buildDetails?buildbucketId=8952721143823688176"}]' ) + GSUTILS_LS = '\n'.join([ + 'gs://chromeos-image-archive/{0}/R78-12421.0.0/', + 'gs://chromeos-image-archive/{0}/R78-12422.0.0/', + 'gs://chromeos-image-archive/{0}/R78-12423.0.0/', + # "R79-12384.0.0" image should be blacklisted. + # TODO(crbug.com/992242): Remove the filter by 2019-09-05. + 'gs://chromeos-image-archive/{0}/R79-12384.0.0/', + ]) + buildresult_out = ( '{"8952721143823688176": {"status": "pass", "artifacts_url":' '"gs://chromeos-image-archive/trybot-elm-release-tryjob/R67-10468.0.0-' @@ -112,6 +124,26 @@ class TrybotTest(unittest.TestCase): buildbucket_id = buildbot_utils.ParseTryjobBuildbucketId(self.tryjob_out) self.assertEqual(buildbucket_id, self.buildbucket_id) + def testGetLatestImageValid(self): + with patch.object(command_executer.CommandExecuter, + 'ChrootRunCommandWOutput') as mocked_run: + with patch.object(buildbot_utils, 'DoesImageExist') as mocked_imageexist: + IMAGE_DIR = 'lulu-release' + mocked_run.return_value = (0, self.GSUTILS_LS.format(IMAGE_DIR), '') + mocked_imageexist.return_value = True + image = buildbot_utils.GetLatestImage('', IMAGE_DIR) + self.assertEqual(image, '{0}/R78-12423.0.0'.format(IMAGE_DIR)) + + def testGetLatestImageInvalid(self): + with patch.object(command_executer.CommandExecuter, + 'ChrootRunCommandWOutput') as mocked_run: + with patch.object(buildbot_utils, 'DoesImageExist') as mocked_imageexist: + IMAGE_DIR = 'kefka-release' + mocked_run.return_value = (0, self.GSUTILS_LS.format(IMAGE_DIR), '') + mocked_imageexist.return_value = False + image = buildbot_utils.GetLatestImage('', IMAGE_DIR) + self.assertIsNone(image) + if __name__ == '__main__': unittest.main() |