Index: tools/release/test_scripts.py |
diff --git a/tools/release/test_scripts.py b/tools/release/test_scripts.py |
index 21364d329efe3f8dae3615474cc8316381ff8e0c..1ea69a8df8b76f73c211d88973258dae2a6a7540 100644 |
--- a/tools/release/test_scripts.py |
+++ b/tools/release/test_scripts.py |
@@ -37,6 +37,8 @@ from auto_push import LastReleaseBailout |
import auto_roll |
import common_includes |
from common_includes import * |
+import create_release |
+from create_release import CreateRelease |
import merge_to_branch |
from merge_to_branch import * |
import push_to_candidates |
@@ -860,6 +862,115 @@ Performance and stability improvements on all platforms.""" |
def testPushToCandidatesForced(self): |
self._PushToCandidates(force=True) |
+ def testCreateRelease(self): |
+ TextToFile("", os.path.join(TEST_CONFIG["DEFAULT_CWD"], ".git")) |
+ |
+ # The version file on master has build level 5. |
+ self.WriteFakeVersionFile(build=5) |
+ |
+ master_change_log = "2014-03-17: Sentinel\n" |
+ TextToFile(master_change_log, |
+ os.path.join(TEST_CONFIG["DEFAULT_CWD"], CHANGELOG_FILE)) |
+ |
+ commit_msg = """Version 3.22.5 |
+ |
+Log text 1 (issue 321). |
+ |
+Performance and stability improvements on all platforms.""" |
+ |
+ def ResetChangeLog(): |
+ last_change_log = """1999-04-05: Version 3.22.4 |
+ |
+ Performance and stability improvements on all platforms.\n""" |
+ TextToFile(last_change_log, |
+ os.path.join(TEST_CONFIG["DEFAULT_CWD"], CHANGELOG_FILE)) |
+ |
+ |
+ def CheckVersionCommit(): |
+ commit = FileToText(TEST_CONFIG["COMMITMSG_FILE"]) |
+ self.assertEquals(commit_msg, 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 candidates branch got correctly |
+ # modified. |
+ change_log = FileToText( |
+ os.path.join(TEST_CONFIG["DEFAULT_CWD"], 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 fetch origin +refs/heads/*:refs/heads/*", ""), |
+ Cmd("git fetch origin +refs/branch-heads/*:refs/branch-heads/*", ""), |
+ Cmd("git fetch origin +refs/pending/*:refs/pending/*", ""), |
+ Cmd("git fetch origin +refs/pending-tags/*:refs/pending-tags/*", ""), |
+ Cmd("git checkout -f origin/master", ""), |
+ Cmd("git branch", ""), |
+ Cmd("git log -1 --format=\"%H %T\" push_hash", "push_hash tree_hash"), |
+ Cmd("git log -200 --format=\"%H %T\" refs/pending/heads/master", |
+ "not_right wrong\npending_hash tree_hash\nsome other\n"), |
+ Cmd("git fetch origin +refs/tags/*:refs/tags/*", ""), |
+ Cmd("git tag", self.TAGS), |
+ Cmd("git checkout -f origin/master -- src/version.cc", |
+ "", cb=self.WriteFakeVersionFile), |
+ Cmd("git log -1 --format=%H 3.22.4", "release_hash\n"), |
+ Cmd("git log -1 --format=%s release_hash", |
+ "Version 3.22.4 (based on abc3)\n"), |
+ 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 reset --hard origin/master", ""), |
+ Cmd("git checkout -b work-branch pending_hash", ""), |
+ Cmd("git checkout -f 3.22.4 -- ChangeLog", "", cb=ResetChangeLog), |
+ Cmd("git checkout -f 3.22.4 -- src/version.cc", "", |
+ cb=self.WriteFakeVersionFile), |
+ Cmd("git commit -aF \"%s\"" % TEST_CONFIG["COMMITMSG_FILE"], "", |
+ cb=CheckVersionCommit), |
+ Cmd("git push origin " |
+ "refs/heads/work-branch:refs/pending/branch-heads/3.22.5 " |
+ "pending_hash:refs/pending-tags/branch-heads/3.22.5 " |
+ "push_hash:refs/branch-heads/3.22.5", ""), |
+ Cmd("git fetch", ""), |
+ Cmd("git log -1 --format=%H --grep=" |
+ "\"Version 3.22.5\" branch-heads/3.22.5", "hsh_to_tag"), |
+ Cmd("git tag 3.22.5 hsh_to_tag", ""), |
+ Cmd("git push origin 3.22.5", ""), |
+ Cmd("git checkout -f origin/master", ""), |
+ Cmd("git branch", "* master\n work-branch\n"), |
+ Cmd("git branch -D work-branch", ""), |
+ Cmd("git gc", ""), |
+ ] |
+ self.Expect(expectations) |
+ |
+ args = ["-a", "author@chromium.org", |
+ "-r", "reviewer@chromium.org", |
+ "--revision", "push_hash"] |
+ CreateRelease(TEST_CONFIG, self).Run(args) |
+ |
+ cl = FileToText(os.path.join(TEST_CONFIG["DEFAULT_CWD"], 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 master is mocked out. |
+ |
C_V8_22624_LOG = """V8 CL. |
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22624 123 |