Index: tools/push-to-trunk/test_scripts.py |
diff --git a/tools/push-to-trunk/test_scripts.py b/tools/push-to-trunk/test_scripts.py |
index d43768929cc880532cbde70c698e63e12b439b09..08969abb916d6679336032cadf0009cdb4b38695 100644 |
--- a/tools/push-to-trunk/test_scripts.py |
+++ b/tools/push-to-trunk/test_scripts.py |
@@ -849,6 +849,135 @@ Performance and stability improvements on all platforms.""", commit) |
def testPushToTrunkForced(self): |
self._PushToTrunk(force=True) |
+ def testPushToTrunkGit(self): |
+ svn_root = self.MakeEmptyTempDirectory() |
+ TextToFile("", os.path.join(TEST_CONFIG["DEFAULT_CWD"], ".git")) |
+ |
+ # The version file on bleeding edge has build level 5, while the version |
+ # file from trunk has build level 4. |
+ self.WriteFakeVersionFile(build=5) |
+ |
+ TEST_CONFIG["CHANGELOG_ENTRY_FILE"] = self.MakeEmptyTempFile() |
+ TEST_CONFIG["CHANGELOG_FILE"] = self.MakeEmptyTempFile() |
+ bleeding_edge_change_log = "2014-03-17: Sentinel\n" |
+ TextToFile(bleeding_edge_change_log, TEST_CONFIG["CHANGELOG_FILE"]) |
+ |
+ def ResetChangeLog(): |
+ """On 'git co -b new_branch svn/trunk', and 'git checkout -- ChangeLog', |
+ the ChangLog will be reset to its content on trunk.""" |
+ trunk_change_log = """1999-04-05: Version 3.22.4 |
+ |
+ Performance and stability improvements on all platforms.\n""" |
+ TextToFile(trunk_change_log, TEST_CONFIG["CHANGELOG_FILE"]) |
+ |
+ def ResetToTrunk(): |
+ ResetChangeLog() |
+ self.WriteFakeVersionFile() |
+ |
+ def CheckSVNCommit(): |
+ commit = FileToText(TEST_CONFIG["COMMITMSG_FILE"]) |
+ self.assertEquals( |
+"""Version 3.22.5 (based on push_hash) |
+ |
+Log text 1 (issue 321). |
+ |
+Performance and stability improvements on all platforms.""", commit) |
+ version = FileToText( |
+ os.path.join(TEST_CONFIG["DEFAULT_CWD"], VERSION_FILE)) |
+ self.assertTrue(re.search(r"#define MINOR_VERSION\s+22", version)) |
+ self.assertTrue(re.search(r"#define BUILD_NUMBER\s+5", version)) |
+ self.assertFalse(re.search(r"#define BUILD_NUMBER\s+6", version)) |
+ self.assertTrue(re.search(r"#define PATCH_LEVEL\s+0", version)) |
+ self.assertTrue(re.search(r"#define IS_CANDIDATE_VERSION\s+0", version)) |
+ |
+ # Check that the change log on the trunk branch got correctly modified. |
+ change_log = FileToText(TEST_CONFIG["CHANGELOG_FILE"]) |
+ self.assertEquals( |
+"""1999-07-31: Version 3.22.5 |
+ |
+ Log text 1 (issue 321). |
+ |
+ Performance and stability improvements on all platforms. |
+ |
+ |
+1999-04-05: Version 3.22.4 |
+ |
+ Performance and stability improvements on all platforms.\n""", |
+ change_log) |
+ |
+ expectations = [ |
+ Cmd("git status -s -uno", ""), |
+ Cmd("git status -s -b -uno", "## some_branch\n"), |
+ Cmd("git fetch", ""), |
+ Cmd("git branch", " branch1\n* branch2\n"), |
+ Cmd("git branch", " branch1\n* branch2\n"), |
+ Cmd(("git new-branch %s --upstream origin/master" % |
+ TEST_CONFIG["BRANCHNAME"]), |
+ ""), |
+ Cmd(("git log -1 --format=%H --grep=" |
+ "\"^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\" " |
+ "origin/candidates"), "hash2\n"), |
+ Cmd("git log -1 hash2", "Log message\n"), |
+ Cmd("git log -1 --format=%s hash2", |
+ "Version 3.4.5 (based on abc3)\n"), |
+ Cmd("git checkout -f origin/master -- src/version.cc", |
+ "", cb=self.WriteFakeVersionFile), |
+ Cmd("git checkout -f hash2 -- src/version.cc", "", |
+ cb=self.WriteFakeVersionFile), |
+ Cmd("git log --format=%H abc3..push_hash", "rev1\n"), |
+ Cmd("git log -1 --format=%s rev1", "Log text 1.\n"), |
+ Cmd("git log -1 --format=%B rev1", "Text\nLOG=YES\nBUG=v8:321\nText\n"), |
+ Cmd("git log -1 --format=%an rev1", "author1@chromium.org\n"), |
+ Cmd("git fetch", ""), |
+ Cmd("git checkout -f origin/master", ""), |
+ Cmd("git diff origin/candidates push_hash", "patch content\n"), |
+ Cmd(("git new-branch %s --upstream origin/candidates" % |
+ TEST_CONFIG["TRUNKBRANCH"]), "", cb=ResetToTrunk), |
+ Cmd("git apply --index --reject \"%s\"" % TEST_CONFIG["PATCH_FILE"], ""), |
+ Cmd(("git checkout -f origin/candidates -- %s" % |
+ TEST_CONFIG["CHANGELOG_FILE"]), "", |
+ cb=ResetChangeLog), |
+ Cmd("git checkout -f origin/candidates -- src/version.cc", "", |
+ cb=self.WriteFakeVersionFile), |
+ Cmd("git commit -aF \"%s\"" % TEST_CONFIG["COMMITMSG_FILE"], "", |
+ cb=CheckSVNCommit), |
+ # TODO(machenbach): Change test to pure git after flag day. |
+ # Cmd("git push origin", ""), |
+ Cmd("git diff HEAD^ HEAD", "patch content"), |
+ Cmd("svn update", "", cwd=svn_root), |
+ Cmd("svn status", "", cwd=svn_root), |
+ Cmd("patch -d trunk -p1 -i %s" % |
+ TEST_CONFIG["PATCH_FILE"], "Applied patch...", cwd=svn_root), |
+ Cmd("svn commit --non-interactive --username=author@chromium.org " |
+ "--config-dir=[CONFIG_DIR] " |
+ "-m \"Version 3.22.5 (based on push_hash)\"", |
+ "", cwd=svn_root), |
+ Cmd("git fetch", ""), |
+ Cmd("git log -1 --format=%H --grep=" |
+ "\"Version 3.22.5 (based on push_hash)\"" |
+ " origin/candidates", "hsh_to_tag"), |
+ Cmd("git tag 3.22.5 hsh_to_tag", ""), |
+ Cmd("git push origin 3.22.5", ""), |
+ Cmd("git checkout -f some_branch", ""), |
+ Cmd("git branch -D %s" % TEST_CONFIG["BRANCHNAME"], ""), |
+ Cmd("git branch -D %s" % TEST_CONFIG["TRUNKBRANCH"], ""), |
+ ] |
+ self.Expect(expectations) |
+ |
+ args = ["-a", "author@chromium.org", "--revision", "push_hash", |
+ "--vc-interface", "git", "-f", "-r", "reviewer@chromium.org", |
+ "--svn", svn_root, "--svn-config", "[CONFIG_DIR]"] |
+ PushToTrunk(TEST_CONFIG, self).Run(args) |
+ |
+ cl = FileToText(TEST_CONFIG["CHANGELOG_FILE"]) |
+ self.assertTrue(re.search(r"^\d\d\d\d\-\d+\-\d+: Version 3\.22\.5", cl)) |
+ self.assertTrue(re.search(r" Log text 1 \(issue 321\).", cl)) |
+ self.assertTrue(re.search(r"1999\-04\-05: Version 3\.22\.4", cl)) |
+ |
+ # Note: The version file is on build number 5 again in the end of this test |
+ # since the git command that merges to the bleeding edge branch is mocked |
+ # out. |
+ |
C_V8_22624_LOG = """V8 CL. |
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22624 123 |
@@ -945,7 +1074,6 @@ def get_list(): |
Cmd("git status -s -uno", ""), |
Cmd("git status -s -b -uno", "## some_branch\n"), |
Cmd("git fetch", ""), |
- Cmd("git svn fetch", ""), |
URL("https://v8-status.appspot.com/current?format=json", |
"{\"message\": \"Tree is throttled\"}"), |
URL("https://v8-status.appspot.com/lkgr", Exception("Network problem")), |
@@ -957,7 +1085,8 @@ def get_list(): |
"Version 3.4.5 (based on abc101)\n"), |
]) |
- auto_push.AutoPush(TEST_CONFIG, self).Run(AUTO_PUSH_ARGS + ["--push"]) |
+ auto_push.AutoPush(TEST_CONFIG, self).Run( |
+ AUTO_PUSH_ARGS + ["--push", "--vc-interface", "git"]) |
state = json.loads(FileToText("%s-state.json" |
% TEST_CONFIG["PERSISTFILE_BASENAME"])) |