diff options
author | Jian Cai <jiancai@google.com> | 2020-04-15 17:53:41 -0700 |
---|---|---|
committer | Jian Cai <jiancai@google.com> | 2020-04-17 01:17:18 +0000 |
commit | c16daa1eb92cba9781a557798b065747128acfb1 (patch) | |
tree | 66b489e45c1227bc89be29a6fc20bee885e3256f /llvm_tools/llvm_bisection.py | |
parent | 9258b055847fcefb635c0aa74d5be08e699ab37c (diff) | |
download | toolchain-utils-c16daa1eb92cba9781a557798b065747128acfb1.tar.gz |
llvm_tools: move common functions into standalone modules
Move common functions into separate modules and update dependencies
accordingly.
BUG=chromium:1057428
TEST=local tests.
Change-Id: I40f1b613f0a41f1fc478c811379c851479aff7c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2151708
Reviewed-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: George Burgess <gbiv@chromium.org>
Tested-by: Jian Cai <jiancai@google.com>
Diffstat (limited to 'llvm_tools/llvm_bisection.py')
-rwxr-xr-x | llvm_tools/llvm_bisection.py | 56 |
1 files changed, 27 insertions, 29 deletions
diff --git a/llvm_tools/llvm_bisection.py b/llvm_tools/llvm_bisection.py index 4ff921d2..2772ca48 100755 --- a/llvm_tools/llvm_bisection.py +++ b/llvm_tools/llvm_bisection.py @@ -11,17 +11,14 @@ from __future__ import print_function import argparse import enum import errno -import get_llvm_hash import json import os import sys -from assert_not_in_chroot import VerifyOutsideChroot -from get_llvm_hash import CreateTempLLVMRepo -from get_llvm_hash import LLVMHash -from modify_a_tryjob import AddTryjob -from update_tryjob_status import FindTryjobIndex -from update_tryjob_status import TryjobStatus +import chroot +import get_llvm_hash +import modify_a_tryjob +import update_tryjob_status class BisectionExitStatus(enum.Enum): @@ -182,18 +179,20 @@ def GetStartAndEndRevision(start, end, tryjobs): 'go to %s and update it' % cur_tryjob_dict['link']) all_bad_revisions = [end] - all_bad_revisions.extend(cur_tryjob['rev'] - for cur_tryjob in tryjobs - if cur_tryjob['status'] == TryjobStatus.BAD.value) + all_bad_revisions.extend( + cur_tryjob['rev'] + for cur_tryjob in tryjobs + if cur_tryjob['status'] == update_tryjob_status.TryjobStatus.BAD.value) # The minimum value for the 'bad' field in the tryjobs is the new end # version. bad_rev = min(all_bad_revisions) all_good_revisions = [start] - all_good_revisions.extend(cur_tryjob['rev'] - for cur_tryjob in tryjobs - if cur_tryjob['status'] == TryjobStatus.GOOD.value) + all_good_revisions.extend( + cur_tryjob['rev'] + for cur_tryjob in tryjobs + if cur_tryjob['status'] == update_tryjob_status.TryjobStatus.GOOD.value) # The maximum value for the 'good' field in the tryjobs is the new start # version. @@ -212,7 +211,7 @@ def GetStartAndEndRevision(start, end, tryjobs): pending_revisions = { tryjob['rev'] for tryjob in tryjobs - if tryjob['status'] == TryjobStatus.PENDING.value and + if tryjob['status'] == update_tryjob_status.TryjobStatus.PENDING.value and good_rev < tryjob['rev'] < bad_rev } @@ -224,7 +223,7 @@ def GetStartAndEndRevision(start, end, tryjobs): skip_revisions = { tryjob['rev'] for tryjob in tryjobs - if tryjob['status'] == TryjobStatus.SKIP.value and + if tryjob['status'] == update_tryjob_status.TryjobStatus.SKIP.value and good_rev < tryjob['rev'] < bad_rev } @@ -254,8 +253,6 @@ def GetRevisionsBetweenBisection(start, end, parallel, src_path, A list of revisions between 'start' and 'end'. """ - new_llvm = LLVMHash() - valid_revisions = [] # Start at ('start' + 1) because 'start' is the good revision. @@ -292,10 +289,10 @@ def GetRevisionsListAndHashList(start, end, parallel, src_path, pending_revisions, skip_revisions): """Determines the revisions between start and end.""" - new_llvm = LLVMHash() + new_llvm = get_llvm_hash.LLVMHash() with new_llvm.CreateTempDirectory() as temp_dir: - with CreateTempLLVMRepo(temp_dir) as new_repo: + with get_llvm_hash.CreateTempLLVMRepo(temp_dir) as new_repo: if not src_path: src_path = new_repo @@ -303,7 +300,9 @@ def GetRevisionsListAndHashList(start, end, parallel, src_path, revisions = GetRevisionsBetweenBisection( start, end, parallel, src_path, pending_revisions, skip_revisions) - git_hashes = [get_llvm_hash.GetGitHashFrom(src_path, rev) for rev in revisions] + git_hashes = [ + get_llvm_hash.GetGitHashFrom(src_path, rev) for rev in revisions + ] return revisions, git_hashes @@ -329,7 +328,7 @@ def CheckForExistingTryjobsInRevisionsToLaunch(revisions, jobs): """Checks if a revision in 'revisions' exists in 'jobs' list.""" for rev in revisions: - if FindTryjobIndex(rev, jobs) is not None: + if update_tryjob_status.FindTryjobIndex(rev, jobs) is not None: raise ValueError('Revision %d exists already in "jobs"' % rev) @@ -340,10 +339,10 @@ def UpdateBisection(revisions, git_hashes, bisect_contents, last_tested, try: for svn_revision, git_hash in zip(revisions, git_hashes): - tryjob_dict = AddTryjob(update_packages, git_hash, svn_revision, - chroot_path, patch_metadata_file, - extra_change_lists, options, builder, verbose, - svn_revision) + tryjob_dict = modify_a_tryjob.AddTryjob( + update_packages, git_hash, svn_revision, chroot_path, + patch_metadata_file, extra_change_lists, options, builder, verbose, + svn_revision) bisect_contents['jobs'].append(tryjob_dict) finally: @@ -364,7 +363,7 @@ def _NoteCompletedBisection(last_tested, src_path, end): if src_path: bad_llvm_hash = get_llvm_hash.GetGitHashFrom(src_path, end) else: - bad_llvm_hash = LLVMHash().GetLLVMHash(end) + bad_llvm_hash = get_llvm_hash.LLVMHash().GetLLVMHash(end) print( 'The bad revision is %d and its commit hash is %s' % (end, bad_llvm_hash)) @@ -390,7 +389,7 @@ def main(args_output): AssertionError: The script was run inside the chroot. """ - VerifyOutsideChroot() + chroot.VerifyOutsideChroot() update_packages = [ 'sys-devel/llvm', 'sys-libs/compiler-rt', 'sys-libs/libcxx', @@ -458,5 +457,4 @@ def main(args_output): if __name__ == '__main__': - args_output = GetCommandLineArgs() - sys.exit(main(args_output)) + sys.exit(main(GetCommandLineArgs())) |