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 0c71bba929abaf208b6c393337df310edaa022e9..f03cec63ac63dde4abb4554b820396ad512a1036 100644 |
--- a/tools/push-to-trunk/test_scripts.py |
+++ b/tools/push-to-trunk/test_scripts.py |
@@ -48,6 +48,10 @@ from chromium_roll import DEPS_FILE |
from chromium_roll import ChromiumRoll |
import releases |
from releases import Releases |
+import bump_up_version |
+from bump_up_version import BumpUpVersion |
+from bump_up_version import LastChangeBailout |
+from bump_up_version import LKGRVersionUpToDateBailout |
TEST_CONFIG = { |
@@ -352,7 +356,7 @@ class ScriptTest(unittest.TestCase): |
def RunStep(self, script=PushToTrunk, step_class=Step, args=None): |
"""Convenience wrapper.""" |
- args = args or ["-m"] |
+ args = args if args is not None else ["-m"] |
return script(TEST_CONFIG, self, self._state).RunSteps([step_class], args) |
def GitMock(self, cmd, args="", pipe=True): |
@@ -597,13 +601,19 @@ class ScriptTest(unittest.TestCase): |
self.assertEquals("New\n Lines", |
FileToText(TEST_CONFIG[CHANGELOG_ENTRY_FILE])) |
+ # Version on trunk: 3.22.4.0. Version on master (bleeding_edge): 3.22.6. |
+ # Make sure that the increment is 3.22.7.0. |
def testIncrementVersion(self): |
TEST_CONFIG[VERSION_FILE] = self.MakeEmptyTempFile() |
self.WriteFakeVersionFile() |
self._state["last_push_trunk"] = "hash1" |
+ self._state["latest_build"] = "6" |
+ self._state["latest_version"] = "3.22.6.0" |
self.ExpectGit([ |
- Git("checkout -f hash1 -- %s" % TEST_CONFIG[VERSION_FILE], "") |
+ Git("checkout -f hash1 -- %s" % TEST_CONFIG[VERSION_FILE], ""), |
+ Git("checkout -f master -- %s" % TEST_CONFIG[VERSION_FILE], "", |
+ cb=lambda: self.WriteFakeVersionFile(22, 6)), |
]) |
self.ExpectReadline([ |
@@ -614,7 +624,7 @@ class ScriptTest(unittest.TestCase): |
self.assertEquals("3", self._state["new_major"]) |
self.assertEquals("22", self._state["new_minor"]) |
- self.assertEquals("5", self._state["new_build"]) |
+ self.assertEquals("7", self._state["new_build"]) |
self.assertEquals("0", self._state["new_patch"]) |
def _TestSquashCommits(self, change_log, expected_msg): |
@@ -741,6 +751,8 @@ Performance and stability improvements on all platforms.""", commit) |
Git("log -1 --format=%s hash2", |
"Version 3.4.5 (based on bleeding_edge revision r1234)\n"), |
Git("svn find-rev r1234", "hash3\n"), |
+ Git("checkout -f master -- %s" % TEST_CONFIG[VERSION_FILE], "", |
+ cb=self.WriteFakeVersionFile), |
Git("checkout -f hash2 -- %s" % TEST_CONFIG[VERSION_FILE], "", |
cb=self.WriteFakeVersionFile), |
Git("log --format=%H hash3..push_hash", "rev1\n"), |
@@ -1266,6 +1278,92 @@ LOG=N |
self.assertEquals(expected_json, json.loads(FileToText(json_output))) |
+ def testBumpUpVersion(self): |
+ TEST_CONFIG[VERSION_FILE] = self.MakeEmptyTempFile() |
+ self.WriteFakeVersionFile() |
+ |
+ def ResetVersion(minor, build, patch=0): |
+ return lambda: self.WriteFakeVersionFile(minor=minor, |
+ build=build, |
+ patch=patch) |
+ |
+ self.ExpectGit([ |
+ Git("status -s -uno", ""), |
+ Git("checkout -f bleeding_edge", "", cb=ResetVersion(11, 4)), |
+ Git("pull", ""), |
+ Git("branch", ""), |
+ Git("checkout -f bleeding_edge", ""), |
+ Git("log -1 --format=%H", "latest_hash"), |
+ Git("diff --name-only latest_hash latest_hash^", ""), |
+ Git("checkout -f bleeding_edge", ""), |
+ Git("log --format=%H --grep=\"^git-svn-id: [^@]*@12345 [A-Za-z0-9-]*$\"", |
+ "lkgr_hash"), |
+ Git("checkout -b auto-bump-up-version lkgr_hash", ""), |
+ Git("checkout -f bleeding_edge", ""), |
+ Git("branch", ""), |
+ Git("diff --name-only lkgr_hash lkgr_hash^", ""), |
+ Git("checkout -f master", "", cb=ResetVersion(11, 5)), |
+ Git("pull", ""), |
+ Git("checkout -b auto-bump-up-version bleeding_edge", "", |
+ cb=ResetVersion(11, 4)), |
+ Git("commit -am \"[Auto-roll] Bump up version to 3.11.6.0\n\n" |
+ "TBR=author@chromium.org\"", ""), |
+ Git("cl upload --send-mail --email \"author@chromium.org\" -f", ""), |
+ Git("cl dcommit -f --bypass-hooks", ""), |
+ Git("checkout -f bleeding_edge", ""), |
+ Git("branch", "auto-bump-up-version\n* bleeding_edge"), |
+ Git("branch -D auto-bump-up-version", ""), |
+ ]) |
+ |
+ self.ExpectReadURL([ |
+ URL("https://v8-status.appspot.com/lkgr", "12345"), |
+ URL("https://v8-status.appspot.com/current?format=json", |
+ "{\"message\": \"Tree is open\"}"), |
+ ]) |
+ |
+ BumpUpVersion(TEST_CONFIG, self).Run(["-a", "author@chromium.org"]) |
+ |
+ # Test that we bail out if the last change was a version change. |
+ def testBumpUpVersionBailout1(self): |
+ TEST_CONFIG[VERSION_FILE] = self.MakeEmptyTempFile() |
+ self._state["latest"] = "latest_hash" |
+ |
+ self.ExpectGit([ |
+ Git("diff --name-only latest_hash latest_hash^", |
+ TEST_CONFIG[VERSION_FILE]), |
+ ]) |
+ |
+ self.assertEquals(1, |
+ self.RunStep(BumpUpVersion, LastChangeBailout, ["--dry_run"])) |
+ |
+ # Test that we bail out if the lkgr was a version change. |
+ def testBumpUpVersionBailout2(self): |
+ TEST_CONFIG[VERSION_FILE] = self.MakeEmptyTempFile() |
+ self._state["lkgr"] = "lkgr_hash" |
+ |
+ self.ExpectGit([ |
+ Git("diff --name-only lkgr_hash lkgr_hash^", TEST_CONFIG[VERSION_FILE]), |
+ ]) |
+ |
+ self.assertEquals(1, |
+ self.RunStep(BumpUpVersion, LKGRVersionUpToDateBailout, ["--dry_run"])) |
+ |
+ # Test that we bail out if the last version is already newer than the lkgr's |
+ # version. |
+ def testBumpUpVersionBailout3(self): |
+ TEST_CONFIG[VERSION_FILE] = self.MakeEmptyTempFile() |
+ self._state["lkgr"] = "lkgr_hash" |
+ self._state["lkgr_version"] = "3.22.4.0" |
+ self._state["latest_version"] = "3.22.5.0" |
+ |
+ self.ExpectGit([ |
+ Git("diff --name-only lkgr_hash lkgr_hash^", ""), |
+ ]) |
+ |
+ self.assertEquals(1, |
+ self.RunStep(BumpUpVersion, LKGRVersionUpToDateBailout, ["--dry_run"])) |
+ |
+ |
class SystemTest(unittest.TestCase): |
def testReload(self): |
step = MakeStep(step_class=PrepareChangeLog, number=0, state={}, config={}, |