aboutsummaryrefslogtreecommitdiff
path: root/llvm_tools
diff options
context:
space:
mode:
authorGeorge Burgess IV <gbiv@google.com>2020-06-24 16:27:44 -0700
committerGeorge Burgess <gbiv@chromium.org>2020-06-24 23:44:11 +0000
commit536aff5f6d015f840bafd6ea70774bbc6b3da6f3 (patch)
tree94820359797af86c9a703fd1d27e9547cb81b673 /llvm_tools
parentefb96d1a55f64e72489e219ea65d974e5468a753 (diff)
downloadtoolchain-utils-536aff5f6d015f840bafd6ea70774bbc6b3da6f3.tar.gz
llvm_tools: fix up naming
This replaces `master` with `main` where possible, per the linked bug. Since upstream LLVM has a `master` branch, and there appears to be general support in FOSS for swapping to a different naming convention (`main`), this also makes LLVM's upstream branch name into a constant that we can easily flip if needed. BUG=chromium:1099035 TEST=Unittests Change-Id: I0844cfb4fec00f761e39b0443299daa918fa37ab Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2265047 Reviewed-by: Manoj Gupta <manojgupta@chromium.org> Tested-by: George Burgess <gbiv@chromium.org>
Diffstat (limited to 'llvm_tools')
-rw-r--r--llvm_tools/README.md2
-rwxr-xr-xllvm_tools/get_llvm_hash.py43
-rwxr-xr-xllvm_tools/get_llvm_hash_unittest.py5
-rwxr-xr-xllvm_tools/git_llvm_rev.py14
-rwxr-xr-xllvm_tools/git_llvm_rev_test.py28
-rw-r--r--llvm_tools/llvm_project.py11
-rwxr-xr-xllvm_tools/nightly_revert_checker.py9
7 files changed, 55 insertions, 57 deletions
diff --git a/llvm_tools/README.md b/llvm_tools/README.md
index 1c1862d8..547a3056 100644
--- a/llvm_tools/README.md
+++ b/llvm_tools/README.md
@@ -488,7 +488,7 @@ these synthesized numbers and git SHAs. Usage should be straightforward:
6f635f90929da9545dd696071a829a1a42f84b30
~> ./git_llvm_rev.py --llvm_dir llvm-project-copy/ --sha 6f635f90929da9545dd696071a829a1a42f84b30
r380000
-~> ./git_llvm_rev.py --llvm_dir llvm-project-copy/ --sha origin/master
+~> ./git_llvm_rev.py --llvm_dir llvm-project-copy/ --sha origin/some-branch
r387778
```
diff --git a/llvm_tools/get_llvm_hash.py b/llvm_tools/get_llvm_hash.py
index a5b5429e..4200cffe 100755
--- a/llvm_tools/get_llvm_hash.py
+++ b/llvm_tools/get_llvm_hash.py
@@ -17,7 +17,8 @@ import tempfile
from contextlib import contextmanager
import git_llvm_rev
-from subprocess_helpers import CheckCommand, check_output
+from subprocess_helpers import CheckCommand
+from subprocess_helpers import check_output
_LLVM_GIT_URL = ('https://chromium.googlesource.com/external/github.com/llvm'
'/llvm-project')
@@ -39,7 +40,7 @@ def GetVersionFrom(src_dir, git_hash):
version = git_llvm_rev.translate_sha_to_rev(
git_llvm_rev.LLVMConfig(remote='origin', dir=src_dir), git_hash)
# Note: branches aren't supported
- assert version.branch == 'master', version.branch
+ assert version.branch == git_llvm_rev.MAIN_BRANCH, version.branch
return version.number
@@ -59,7 +60,7 @@ def GetGitHashFrom(src_dir, version):
return git_llvm_rev.translate_rev_to_sha(
git_llvm_rev.LLVMConfig(remote='origin', dir=src_dir),
- git_llvm_rev.Rev(branch='master', number=version))
+ git_llvm_rev.Rev(branch=git_llvm_rev.MAIN_BRANCH, number=version))
@contextmanager
@@ -85,13 +86,10 @@ def CreateTempLLVMRepo(temp_dir):
"""
abs_path_to_llvm_project_dir = GetAndUpdateLLVMProjectInLLVMTools()
-
- add_worktree_cmd = [
+ CheckCommand([
'git', '-C', abs_path_to_llvm_project_dir, 'worktree', 'add', '--detach',
- temp_dir, 'master'
- ]
-
- CheckCommand(add_worktree_cmd)
+ temp_dir, git_llvm_rev.MAIN_BRANCH
+ ])
try:
yield temp_dir
@@ -117,7 +115,7 @@ def GetAndUpdateLLVMProjectInLLVMTools():
Raises:
ValueError: LLVM repo (in 'llvm-project-copy' dir.) has changes or failed to
- checkout to master or failed to fetch from chromium mirror of LLVM.
+ checkout to main or failed to fetch from chromium mirror of LLVM.
"""
abs_path_to_llvm_tools_dir = os.path.dirname(os.path.abspath(__file__))
@@ -143,15 +141,11 @@ def GetAndUpdateLLVMProjectInLLVMTools():
raise ValueError('LLVM repo in %s has changes, please remove.' %
abs_path_to_llvm_project_dir)
- checkout_to_master_cmd = [
- 'git', '-C', abs_path_to_llvm_project_dir, 'checkout', 'master'
- ]
-
- CheckCommand(checkout_to_master_cmd)
-
- update_master_cmd = ['git', '-C', abs_path_to_llvm_project_dir, 'pull']
-
- CheckCommand(update_master_cmd)
+ CheckCommand([
+ 'git', '-C', abs_path_to_llvm_project_dir, 'checkout',
+ git_llvm_rev.MAIN_BRANCH
+ ])
+ CheckCommand(['git', '-C', abs_path_to_llvm_project_dir, 'pull'])
return abs_path_to_llvm_project_dir
@@ -298,14 +292,9 @@ class LLVMHash(object):
def GetTopOfTrunkGitHash(self):
"""Gets the latest git hash from top of trunk of LLVM."""
- path_to_master_branch = 'refs/heads/master'
-
- llvm_tot_git_hash_cmd = [
- 'git', 'ls-remote', _LLVM_GIT_URL, path_to_master_branch
- ]
-
- llvm_tot_git_hash = check_output(llvm_tot_git_hash_cmd)
-
+ path_to_main_branch = 'refs/heads/master'
+ llvm_tot_git_hash = check_output(
+ ['git', 'ls-remote', _LLVM_GIT_URL, path_to_main_branch])
return llvm_tot_git_hash.rstrip().split()[0]
diff --git a/llvm_tools/get_llvm_hash_unittest.py b/llvm_tools/get_llvm_hash_unittest.py
index c828f433..2e56aed5 100755
--- a/llvm_tools/get_llvm_hash_unittest.py
+++ b/llvm_tools/get_llvm_hash_unittest.py
@@ -8,12 +8,11 @@
from __future__ import print_function
-import get_llvm_hash
import subprocess
import unittest
import unittest.mock as mock
-import test_helpers
+import get_llvm_hash
from get_llvm_hash import LLVMHash
# We grab protected stuff from get_llvm_hash. That's OK.
@@ -87,7 +86,7 @@ class TestGetLLVMHash(unittest.TestCase):
@mock.patch.object(subprocess, 'check_output')
def testSuccessfullyGetGitHashFromToTOfLLVM(self, mock_check_output):
- mock_check_output.return_value = 'a123testhash1 path/to/master\n'
+ mock_check_output.return_value = 'a123testhash1 path/to/main\n'
self.assertEqual(LLVMHash().GetTopOfTrunkGitHash(), 'a123testhash1')
mock_check_output.assert_called_once()
diff --git a/llvm_tools/git_llvm_rev.py b/llvm_tools/git_llvm_rev.py
index 8eefcdce..07209f1e 100755
--- a/llvm_tools/git_llvm_rev.py
+++ b/llvm_tools/git_llvm_rev.py
@@ -18,6 +18,8 @@ import subprocess
import sys
import typing as t
+MAIN_BRANCH = 'master'
+
# Note that after base_llvm_sha, we reach The Wild West(TM) of commits.
# So reasonable input that could break us includes:
#
@@ -52,9 +54,9 @@ class Rev(t.NamedTuple('Rev', (('branch', str), ('number', int)))):
# pairs.
#
# We support r${commits_since_base_commit} as shorthand for
- # (master, r${commits_since_base_commit}).
+ # (main, r${commits_since_base_commit}).
if rev.startswith('r'):
- branch_name = 'master'
+ branch_name = MAIN_BRANCH
rev_string = rev[1:]
else:
match = re.match(r'\((.+), r(\d+)\)', rev)
@@ -67,7 +69,7 @@ class Rev(t.NamedTuple('Rev', (('branch', str), ('number', int)))):
def __str__(self) -> str:
branch_name, number = self
- if branch_name == 'master':
+ if branch_name == MAIN_BRANCH:
return 'r%d' % number
return '(%s, r%d)' % (branch_name, number)
@@ -141,7 +143,7 @@ def translate_sha_to_rev(llvm_config: LLVMConfig, sha_or_ref: str) -> Rev:
cwd=llvm_config.dir,
)
count = int(result.strip())
- return Rev(branch='master', number=count + base_llvm_revision)
+ return Rev(branch=MAIN_BRANCH, number=count + base_llvm_revision)
# Otherwise, either:
# - |merge_base| is |sha| (we have a guaranteed llvm-svn number on |sha|)
@@ -150,7 +152,7 @@ def translate_sha_to_rev(llvm_config: LLVMConfig, sha_or_ref: str) -> Rev:
merge_base_number = translate_prebase_sha_to_rev_number(
llvm_config, merge_base)
if merge_base == sha:
- return Rev(branch='master', number=merge_base_number)
+ return Rev(branch=MAIN_BRANCH, number=merge_base_number)
distance_from_base = check_output(
[
@@ -270,7 +272,7 @@ def translate_rev_to_sha(llvm_config: LLVMConfig, rev: Rev) -> str:
"""
branch, number = rev
- if branch == 'master':
+ if branch == MAIN_BRANCH:
if number < base_llvm_revision:
return translate_prebase_rev_to_sha(llvm_config, rev)
base_sha = base_llvm_sha
diff --git a/llvm_tools/git_llvm_rev_test.py b/llvm_tools/git_llvm_rev_test.py
index 1e38f589..775ab1e6 100755
--- a/llvm_tools/git_llvm_rev_test.py
+++ b/llvm_tools/git_llvm_rev_test.py
@@ -12,6 +12,7 @@ import unittest
import git_llvm_rev
import llvm_project
+from git_llvm_rev import MAIN_BRANCH
def get_llvm_config() -> git_llvm_rev.LLVMConfig:
@@ -32,17 +33,17 @@ class Test(unittest.TestCase):
def test_sha_to_rev_on_base_sha_works(self) -> None:
sha = self.rev_to_sha_with_round_trip(
git_llvm_rev.Rev(
- branch='master', number=git_llvm_rev.base_llvm_revision))
+ branch=MAIN_BRANCH, number=git_llvm_rev.base_llvm_revision))
self.assertEqual(sha, git_llvm_rev.base_llvm_sha)
def test_sha_to_rev_prior_to_base_rev_works(self) -> None:
sha = self.rev_to_sha_with_round_trip(
- git_llvm_rev.Rev(branch='master', number=375000))
+ git_llvm_rev.Rev(branch=MAIN_BRANCH, number=375000))
self.assertEqual(sha, '2f6da767f13b8fd81f840c211d405fea32ac9db7')
def test_sha_to_rev_after_base_rev_works(self) -> None:
sha = self.rev_to_sha_with_round_trip(
- git_llvm_rev.Rev(branch='master', number=375506))
+ git_llvm_rev.Rev(branch=MAIN_BRANCH, number=375506))
self.assertEqual(sha, '3bf7fddeb05655d9baed4cc69e13535c677ed1dd')
def test_llvm_svn_parsing_runs_ignore_reverts(self) -> None:
@@ -51,18 +52,19 @@ class Test(unittest.TestCase):
# Commit which performed the revert
sha = self.rev_to_sha_with_round_trip(
- git_llvm_rev.Rev(branch='master', number=374895))
+ git_llvm_rev.Rev(branch=MAIN_BRANCH, number=374895))
self.assertEqual(sha, '1731fc88d1fa1fa55edd056db73a339b415dd5d6')
# Commit that was reverted
sha = self.rev_to_sha_with_round_trip(
- git_llvm_rev.Rev(branch='master', number=374841))
+ git_llvm_rev.Rev(branch=MAIN_BRANCH, number=374841))
self.assertEqual(sha, '2a1386c81de504b5bda44fbecf3f7b4cdfd748fc')
def test_imaginary_revs_raise(self) -> None:
with self.assertRaises(ValueError) as r:
git_llvm_rev.translate_rev_to_sha(
- get_llvm_config(), git_llvm_rev.Rev(branch='master', number=9999999))
+ get_llvm_config(), git_llvm_rev.Rev(
+ branch=MAIN_BRANCH, number=9999999))
self.assertIn('Try updating your tree?', str(r.exception))
@@ -71,15 +73,15 @@ class Test(unittest.TestCase):
# properties about it.
merge_sha_rev_number = 4496 + git_llvm_rev.base_llvm_revision
sha = self.rev_to_sha_with_round_trip(
- git_llvm_rev.Rev(branch='master', number=merge_sha_rev_number))
+ git_llvm_rev.Rev(branch=MAIN_BRANCH, number=merge_sha_rev_number))
self.assertEqual(sha, '0f0d0ed1c78f1a80139a1f2133fad5284691a121')
sha = self.rev_to_sha_with_round_trip(
- git_llvm_rev.Rev(branch='master', number=merge_sha_rev_number - 1))
+ git_llvm_rev.Rev(branch=MAIN_BRANCH, number=merge_sha_rev_number - 1))
self.assertEqual(sha, '6f635f90929da9545dd696071a829a1a42f84b30')
sha = self.rev_to_sha_with_round_trip(
- git_llvm_rev.Rev(branch='master', number=merge_sha_rev_number + 1))
+ git_llvm_rev.Rev(branch=MAIN_BRANCH, number=merge_sha_rev_number + 1))
self.assertEqual(sha, '199700a5cfeedf227619f966aa3125cef18bc958')
# NOTE: The below tests have _zz_ in their name as an optimization. Iterating
@@ -101,11 +103,11 @@ class Test(unittest.TestCase):
backing_sha = 'c89a3d78f43d81b9cff7b9248772ddf14d21b749'
sha = self.rev_to_sha_with_round_trip(
- git_llvm_rev.Rev(branch='master', number=rev_number))
+ git_llvm_rev.Rev(branch=MAIN_BRANCH, number=rev_number))
self.assertEqual(sha, backing_sha)
- # Note that this won't round-trip: since this commit is on the master
- # branch, we'll pick master for this. That's fine
+ # Note that this won't round-trip: since this commit is on the main
+ # branch, we'll pick main for this. That's fine.
sha = git_llvm_rev.translate_rev_to_sha(
get_llvm_config(),
git_llvm_rev.Rev(branch='release/9.x', number=rev_number))
@@ -113,7 +115,7 @@ class Test(unittest.TestCase):
def test_zz_branch_revs_work_after_merge_points(self) -> None:
# Picking the commit on the 9.x branch after the merge-base for that +
- # master. Note that this is where llvm-svn numbers should diverge from
+ # main. Note that this is where llvm-svn numbers should diverge from
# ours, and are therefore untrustworthy. The commit for this *does* have a
# different `llvm-svn:` string than we should have.
sha = self.rev_to_sha_with_round_trip(
diff --git a/llvm_tools/llvm_project.py b/llvm_tools/llvm_project.py
index c171370c..7937729f 100644
--- a/llvm_tools/llvm_project.py
+++ b/llvm_tools/llvm_project.py
@@ -13,6 +13,7 @@ import subprocess
import sys
import get_llvm_hash
+import git_llvm_rev
def get_location() -> str:
@@ -33,9 +34,13 @@ def ensure_up_to_date():
assert checkout == actual_checkout, '%s != %s' % (actual_checkout, checkout)
commit_timestamp = subprocess.check_output(
- ['git', 'log', '-n1', '--format=%ct', 'origin/master'],
+ [
+ 'git', 'log', '-n1', '--format=%ct',
+ 'origin/' + git_llvm_rev.MAIN_BRANCH
+ ],
cwd=checkout,
- encoding='utf-8')
+ encoding='utf-8',
+ )
commit_time = datetime.datetime.fromtimestamp(int(commit_timestamp.strip()))
now = datetime.datetime.now()
@@ -52,7 +57,7 @@ def ensure_up_to_date():
(time_since_last_commit.days, checkout),
file=sys.stderr)
- result = subprocess.run(['git', 'fetch', 'origin'], cwd=checkout)
+ result = subprocess.run(['git', 'fetch', 'origin'], check=False, cwd=checkout)
if result.returncode:
print(
'Sync failed somehow; hoping that things are fresh enough, then...',
diff --git a/llvm_tools/nightly_revert_checker.py b/llvm_tools/nightly_revert_checker.py
index 71b5574b..3a23890a 100755
--- a/llvm_tools/nightly_revert_checker.py
+++ b/llvm_tools/nightly_revert_checker.py
@@ -27,6 +27,7 @@ import typing as t
import cros_utils.email_sender as email_sender
import cros_utils.tiny_render as tiny_render
import get_llvm_hash
+import git_llvm_rev
import revert_checker
State = t.Any
@@ -44,12 +45,12 @@ def _find_interesting_android_shas(
encoding='utf-8',
).strip()
- master_legacy = get_llvm_merge_base('aosp/master-legacy')
+ main_legacy = get_llvm_merge_base('aosp/master-legacy')
testing_upstream = get_llvm_merge_base('aosp/testing-upstream')
- result = [('master-legacy', master_legacy)]
+ result = [('main-legacy', main_legacy)]
# If these are the same SHA, there's no point in tracking both.
- if master_legacy != testing_upstream:
+ if main_legacy != testing_upstream:
result.append(('testing-upstream', testing_upstream))
return result
@@ -270,7 +271,7 @@ def main(argv: t.List[str]) -> None:
for friendly_name, sha in interesting_shas:
logging.info('Finding reverts across %s (%s)', friendly_name, sha)
all_reverts = revert_checker.find_reverts(
- llvm_dir, sha, root='origin/master')
+ llvm_dir, sha, root='origin/' + git_llvm_rev.MAIN_BRANCH)
logging.info('Detected the following revert(s) across %s:\n%s',
friendly_name, pprint.pformat(all_reverts))