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>
diff --git a/llvm_tools/llvm_bisection.py b/llvm_tools/llvm_bisection.py
index 4ff921d..2772ca4 100755
--- a/llvm_tools/llvm_bisection.py
+++ b/llvm_tools/llvm_bisection.py
@@ -11,17 +11,14 @@
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 @@
'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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
"""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 @@
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 @@
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 @@
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 @@
if __name__ == '__main__':
- args_output = GetCommandLineArgs()
- sys.exit(main(args_output))
+ sys.exit(main(GetCommandLineArgs()))