diff options
Diffstat (limited to 'llvm_tools/git_llvm_rev_test.py')
-rwxr-xr-x | llvm_tools/git_llvm_rev_test.py | 84 |
1 files changed, 19 insertions, 65 deletions
diff --git a/llvm_tools/git_llvm_rev_test.py b/llvm_tools/git_llvm_rev_test.py index c7d59b27..74280c5d 100755 --- a/llvm_tools/git_llvm_rev_test.py +++ b/llvm_tools/git_llvm_rev_test.py @@ -6,63 +6,16 @@ """Tests for git_llvm_rev.""" -from __future__ import print_function - -import datetime -import os -import subprocess -import sys import unittest -import get_llvm_hash import git_llvm_rev - - -def get_llvm_checkout() -> str: - my_dir = os.path.dirname(os.path.abspath(__file__)) - return os.path.join(my_dir, 'llvm-project-copy') - - -def ensure_llvm_project_up_to_date(): - checkout = get_llvm_checkout() - if not os.path.isdir(checkout): - print( - 'No llvm-project exists locally; syncing it. This takes a while.', - file=sys.stderr) - actual_checkout = get_llvm_hash.GetAndUpdateLLVMProjectInLLVMTools() - assert checkout == actual_checkout, '%s != %s' % (actual_checkout, checkout) - - commit_timestamp = git_llvm_rev.check_output( - ['git', 'log', '-n1', '--format=%ct', 'origin/master'], cwd=checkout) - - commit_time = datetime.datetime.fromtimestamp(int(commit_timestamp.strip())) - now = datetime.datetime.now() - - time_since_last_commit = now - commit_time - - # Arbitrary, but if it's been more than 2d since we've seen a commit, it's - # probably best to bring us up-to-date. - if time_since_last_commit <= datetime.timedelta(days=2): - return - - print( - '%d days have elapsed since the last commit to %s; auto-syncing' % - (time_since_last_commit.days, checkout), - file=sys.stderr) - - result = subprocess.run( - ['git', 'fetch', 'origin'], - cwd=checkout, - check=True, - ) - if result.returncode: - print( - 'Sync failed somehow; hoping that things are fresh enough, then...', - file=sys.stderr) +import llvm_project +from git_llvm_rev import MAIN_BRANCH def get_llvm_config() -> git_llvm_rev.LLVMConfig: - return git_llvm_rev.LLVMConfig(dir=get_llvm_checkout(), remote='origin') + return git_llvm_rev.LLVMConfig( + dir=llvm_project.get_location(), remote='origin') class Test(unittest.TestCase): @@ -78,17 +31,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: @@ -97,18 +50,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)) @@ -117,15 +71,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 @@ -147,11 +101,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)) @@ -159,7 +113,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( @@ -172,5 +126,5 @@ class Test(unittest.TestCase): # back to the base commit for. if __name__ == '__main__': - ensure_llvm_project_up_to_date() + llvm_project.ensure_up_to_date() unittest.main() |