diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2021-06-19 12:05:19 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-06-19 12:05:19 +0000 |
commit | 46a44cbeeb2e07d1b226a35fe5e167fa36204979 (patch) | |
tree | 73936aba47fe1dc71e9cc05af9747036e935608c /llvm_tools/update_packages_and_run_tryjobs_unittest.py | |
parent | b75f321fc8978b92ce3db6886ccb966768f0c7a8 (diff) | |
parent | 4e4201457e5f51a132101c611c79ccff9f713c8b (diff) | |
download | toolchain-utils-android12-mainline-media-swcodec-release.tar.gz |
Snap for 7474514 from 4e4201457e5f51a132101c611c79ccff9f713c8b to mainline-media-swcodec-releaseandroid-mainline-12.0.0_r91android-mainline-12.0.0_r75android-mainline-12.0.0_r47android-mainline-12.0.0_r30android-mainline-12.0.0_r13android-mainline-12.0.0_r120android-mainline-12.0.0_r105android12-mainline-media-swcodec-release
Change-Id: If290a0a595ded648f01319b985ec90abd49afb42
Diffstat (limited to 'llvm_tools/update_packages_and_run_tryjobs_unittest.py')
-rwxr-xr-x | llvm_tools/update_packages_and_run_tryjobs_unittest.py | 292 |
1 files changed, 0 insertions, 292 deletions
diff --git a/llvm_tools/update_packages_and_run_tryjobs_unittest.py b/llvm_tools/update_packages_and_run_tryjobs_unittest.py deleted file mode 100755 index 55e344bb..00000000 --- a/llvm_tools/update_packages_and_run_tryjobs_unittest.py +++ /dev/null @@ -1,292 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# Copyright 2019 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. - -"""Unittests for running tryjobs after updating packages.""" - -from __future__ import print_function - -import json -import unittest -import unittest.mock as mock - -from test_helpers import ArgsOutputTest -from test_helpers import CreateTemporaryFile -from update_chromeos_llvm_next_hash import CommitContents -import update_chromeos_llvm_next_hash -import update_packages_and_run_tryjobs - - -class UpdatePackagesAndRunTryjobsTest(unittest.TestCase): - """Unittests when running tryjobs after updating packages.""" - - def testNoLastTestedFile(self): - self.assertEqual( - update_packages_and_run_tryjobs.GetLastTestedSVNVersion(None), None) - - def testFailedToGetIntegerFromLastTestedFile(self): - # Create a temporary file to simulate the behavior of the last tested file - # when the file does not have a SVN version (i.e. int() failed). - with CreateTemporaryFile() as temp_file: - self.assertEqual( - update_packages_and_run_tryjobs.GetLastTestedSVNVersion(temp_file), - None) - - def testLastTestFileDoesNotExist(self): - # Simulate 'open()' on a lasted tested file that does not exist. - mock_open = mock.mock_open(read_data='') - - self.assertEqual( - update_packages_and_run_tryjobs.GetLastTestedSVNVersion( - '/some/file/that/does/not/exist.txt'), None) - - def testSuccessfullyRetrievedLastTestedSVNVersion(self): - with CreateTemporaryFile() as temp_file: - # Simulate behavior when the last tested file contains a SVN version. - with open(temp_file, 'w') as svn_file: - svn_file.write('1234') - - self.assertEqual( - update_packages_and_run_tryjobs.GetLastTestedSVNVersion(temp_file), - 1234) - - def testGetTryJobCommandWithNoExtraInformation(self): - test_change_list = 1234 - - test_builder = 'nocturne' - - expected_tryjob_cmd_list = [ - 'cros', 'tryjob', '--yes', '--json', '-g', - '%d' % test_change_list, test_builder - ] - - self.assertEqual( - update_packages_and_run_tryjobs.GetTryJobCommand( - test_change_list, None, None, test_builder), - expected_tryjob_cmd_list) - - def testGetTryJobCommandWithExtraInformation(self): - test_change_list = 4321 - test_extra_cls = [1000, 10] - test_options = ['report_error', 'delete_tryjob'] - test_builder = 'kevin' - - expected_tryjob_cmd_list = [ - 'cros', - 'tryjob', - '--yes', - '--json', - '-g', - '%d' % test_change_list, - '-g', - '%d' % test_extra_cls[0], - '-g', - '%d' % test_extra_cls[1], - test_builder, - '--%s' % test_options[0], - '--%s' % test_options[1], - ] - - self.assertEqual( - update_packages_and_run_tryjobs.GetTryJobCommand( - test_change_list, test_extra_cls, test_options, test_builder), - expected_tryjob_cmd_list) - - # Simulate `datetime.datetime.utcnow()` when retrieving the current time when - # submitted a tryjob. - @mock.patch.object( - update_packages_and_run_tryjobs, - 'GetCurrentTimeInUTC', - return_value='2019-09-09') - # Simulate the behavior of `AddTryjobLinkToCL()` when successfully added the - # tryjob url to the CL that was uploaded to Gerrit for review. - @mock.patch.object(update_packages_and_run_tryjobs, 'AddTryjobLinkToCL') - # Simulate behavior of `ChrootRunCommand()` when successfully submitted a - # tryjob via `cros tryjob`. - @mock.patch.object(update_packages_and_run_tryjobs, 'ChrootRunCommand') - def testSuccessfullySubmittedTryJob( - self, mock_chroot_cmd, mock_add_tryjob_link_to_cl, mock_launch_time): - - expected_tryjob_cmd_list = [ - 'cros', 'tryjob', '--yes', '--json', '-g', - '%d' % 900, '-g', - '%d' % 1200, 'builder1', '--some_option' - ] - - buildbucket_id = '1234' - url = 'https://some_tryjob_url.com' - - tryjob_launch_contents = [{'buildbucket_id': buildbucket_id, 'url': url}] - - mock_chroot_cmd.return_value = json.dumps(tryjob_launch_contents) - - extra_cls = [1200] - tryjob_options = ['some_option'] - builder_list = ['builder1'] - chroot_path = '/some/path/to/chroot' - cl_to_launch_tryjob = 900 - verbose = False - - tryjob_results_list = update_packages_and_run_tryjobs.RunTryJobs( - cl_to_launch_tryjob, extra_cls, tryjob_options, builder_list, - chroot_path, verbose) - - expected_tryjob_dict = { - 'launch_time': '2019-09-09', - 'link': url, - 'buildbucket_id': int(buildbucket_id), - 'extra_cls': extra_cls, - 'options': tryjob_options, - 'builder': builder_list - } - - self.assertEqual(tryjob_results_list, [expected_tryjob_dict]) - - mock_chroot_cmd.assert_called_once_with( - chroot_path, expected_tryjob_cmd_list, verbose=False) - - mock_add_tryjob_link_to_cl.assert_called_once() - - mock_launch_time.assert_called_once() - - # Simulate behavior of `ExecCommandAndCaptureOutput()` when successfully added - # the tryjob link to the CL via `gerrit message <CL> <message>`. - @mock.patch.object( - update_packages_and_run_tryjobs, - 'ExecCommandAndCaptureOutput', - return_value=None) - def testSuccessfullyAddedTryjobLinkToCL(self, mock_exec_cmd): - chroot_path = '/abs/path/to/chroot' - - test_cl_number = 1000 - - tryjob_result = [{'link': 'https://some_tryjob_link.com'}] - - update_packages_and_run_tryjobs.AddTryjobLinkToCL( - tryjob_result, test_cl_number, chroot_path) - - expected_gerrit_message = [ - '%s/chromite/bin/gerrit' % chroot_path, 'message', - str(test_cl_number), - 'Started the following tryjobs:\n%s' % tryjob_result[0]['link'] - ] - - mock_exec_cmd.assert_called_once_with(expected_gerrit_message) - - # Simulate behavior of `GetCommandLineArgs()` when successfully parsed the - # command line for the optional/required arguments for the script. - @mock.patch.object(update_packages_and_run_tryjobs, 'GetCommandLineArgs') - # Simulate behavior of `GetLLVMHashAndVersionFromSVNOption()` when - # successfully retrieved the LLVM hash and version for google3. - @mock.patch.object(update_packages_and_run_tryjobs, - 'GetLLVMHashAndVersionFromSVNOption') - # Simulate behavior of `GetLastTestedSVNVersion()` when successfully retrieved - # the last tested revision from the last tested file. - @mock.patch.object( - update_packages_and_run_tryjobs, - 'GetLastTestedSVNVersion', - return_value=100) - # Simulate behavior of `VerifyOutsideChroot()` when successfully invoked the - # script outside of the chroot. - @mock.patch.object( - update_packages_and_run_tryjobs, 'VerifyOutsideChroot', return_value=True) - def testLastTestSVNVersionMatchesSVNVersion( - self, mock_outside_chroot, mock_get_last_tested_version, - mock_get_hash_and_version, mock_get_commandline_args): - - args_output_obj = ArgsOutputTest() - - mock_get_commandline_args.return_value = args_output_obj - - mock_get_hash_and_version.return_value = ('a123testhash1', 100) - - update_packages_and_run_tryjobs.main() - - mock_outside_chroot.assert_called_once() - - mock_get_commandline_args.assert_called_once() - - mock_get_last_tested_version.assert_called_once_with( - args_output_obj.last_tested) - - mock_get_hash_and_version.assert_called_once_with( - args_output_obj.llvm_version) - - # Simulate the behavior of `RunTryJobs()` when successfully submitted a - # tryjob. - @mock.patch.object(update_packages_and_run_tryjobs, 'RunTryJobs') - # Simulate behavior of `UpdatePackages()` when successfully updated the - # packages and uploaded a CL for review. - @mock.patch.object(update_chromeos_llvm_next_hash, 'UpdatePackages') - # Simulate behavior of `GetCommandLineArgs()` when successfully parsed the - # command line for the optional/required arguments for the script. - @mock.patch.object(update_packages_and_run_tryjobs, 'GetCommandLineArgs') - # Simulate behavior of `GetLLVMHashAndVersionFromSVNOption()` when - # successfully retrieved the LLVM hash and version for google3. - @mock.patch.object(update_packages_and_run_tryjobs, - 'GetLLVMHashAndVersionFromSVNOption') - # Simulate behavior of `GetLastTestedSVNVersion()` when successfully retrieved - # the last tested revision from the last tested file. - @mock.patch.object( - update_packages_and_run_tryjobs, - 'GetLastTestedSVNVersion', - return_value=100) - # Simulate behavior of `VerifyOutsideChroot()` when successfully invoked the - # script outside of the chroot. - @mock.patch.object( - update_packages_and_run_tryjobs, 'VerifyOutsideChroot', return_value=True) - def testUpdatedLastTestedFileWithNewTestedRevision( - self, mock_outside_chroot, mock_get_last_tested_version, - mock_get_hash_and_version, mock_get_commandline_args, - mock_update_packages, mock_run_tryjobs): - - mock_get_hash_and_version.return_value = ('a123testhash2', 200) - - test_cl_url = 'https://some_cl_url.com' - - test_cl_number = 12345 - - mock_update_packages.return_value = CommitContents( - url=test_cl_url, cl_number=test_cl_number) - - tryjob_test_results = [{ - 'link': 'https://some_tryjob_url.com', - 'buildbucket_id': 1234 - }] - - mock_run_tryjobs.return_value = tryjob_test_results - - # Create a temporary file to simulate the last tested file that contains a - # revision. - with CreateTemporaryFile() as last_tested_file: - args_output_obj = ArgsOutputTest(svn_option=200) - args_output_obj.last_tested = last_tested_file - - mock_get_commandline_args.return_value = args_output_obj - - update_packages_and_run_tryjobs.main() - - # Verify that the lasted tested file has been updated to the new LLVM - # revision. - with open(last_tested_file) as update_revision: - new_revision = update_revision.readline() - - self.assertEqual(int(new_revision.rstrip()), 200) - - mock_outside_chroot.assert_called_once() - - mock_get_commandline_args.assert_called_once() - - mock_get_last_tested_version.assert_called_once() - - mock_get_hash_and_version.assert_called_once() - - mock_run_tryjobs.assert_called_once() - - mock_update_packages.assert_called_once() - - -if __name__ == '__main__': - unittest.main() |