OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright 2013 the V8 project authors. All rights reserved. | 2 # Copyright 2013 the V8 project authors. All rights reserved. |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following | 10 # copyright notice, this list of conditions and the following |
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
358 | 358 |
359 def RunStep(self, script=PushToTrunk, step_class=Step, args=None): | 359 def RunStep(self, script=PushToTrunk, step_class=Step, args=None): |
360 """Convenience wrapper.""" | 360 """Convenience wrapper.""" |
361 args = args if args is not None else ["-m"] | 361 args = args if args is not None else ["-m"] |
362 return script(TEST_CONFIG, self, self._state).RunSteps([step_class], args) | 362 return script(TEST_CONFIG, self, self._state).RunSteps([step_class], args) |
363 | 363 |
364 def CmdMock(self, cmd, args="", pipe=True): | 364 def CmdMock(self, cmd, args="", pipe=True): |
365 print "%s %s" % (cmd, args) | 365 print "%s %s" % (cmd, args) |
366 return self._cmd_mock.Call(cmd + " " + args) | 366 return self._cmd_mock.Call(cmd + " " + args) |
367 | 367 |
368 def LogMock(self, cmd, args=""): | |
369 print "Log: %s %s" % (cmd, args) | |
370 | |
371 MOCKS = { | |
372 "gclient": CmdMock, | |
373 "git": CmdMock, | |
374 "roll-dep": CmdMock, | |
375 "svn": CmdMock, | |
376 "vi": LogMock, | |
377 } | |
378 | |
379 def Call(self, fun, *args, **kwargs): | 368 def Call(self, fun, *args, **kwargs): |
380 print "Calling %s with %s and %s" % (str(fun), str(args), str(kwargs)) | 369 print "Calling %s with %s and %s" % (str(fun), str(args), str(kwargs)) |
381 | 370 |
382 def Command(self, cmd, args="", prefix="", pipe=True): | 371 def Command(self, cmd, args="", prefix="", pipe=True): |
383 return ScriptTest.MOCKS[cmd](self, cmd, args) | 372 return self.CmdMock(cmd, args) |
384 | 373 |
385 def ReadLine(self): | 374 def ReadLine(self): |
386 return self._rl_mock.Call() | 375 return self._rl_mock.Call() |
387 | 376 |
388 def ReadURL(self, url, params): | 377 def ReadURL(self, url, params): |
389 if params is not None: | 378 if params is not None: |
390 return self._url_mock.Call(url, params) | 379 return self._url_mock.Call(url, params) |
391 else: | 380 else: |
392 return self._url_mock.Call(url) | 381 return self._url_mock.Call(url) |
393 | 382 |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
589 # (author4@chromium.org) | 578 # (author4@chromium.org) |
590 # | 579 # |
591 #""" | 580 #""" |
592 | 581 |
593 self.assertEquals(expected_cl, actual_cl) | 582 self.assertEquals(expected_cl, actual_cl) |
594 | 583 |
595 def testEditChangeLog(self): | 584 def testEditChangeLog(self): |
596 TEST_CONFIG[CHANGELOG_ENTRY_FILE] = self.MakeEmptyTempFile() | 585 TEST_CONFIG[CHANGELOG_ENTRY_FILE] = self.MakeEmptyTempFile() |
597 TextToFile(" New \n\tLines \n", TEST_CONFIG[CHANGELOG_ENTRY_FILE]) | 586 TextToFile(" New \n\tLines \n", TEST_CONFIG[CHANGELOG_ENTRY_FILE]) |
598 os.environ["EDITOR"] = "vi" | 587 os.environ["EDITOR"] = "vi" |
599 | 588 self.ExpectCmd([ |
| 589 Cmd("vi %s" % TEST_CONFIG[CHANGELOG_ENTRY_FILE], ""), |
| 590 ]) |
600 self.ExpectReadline([ | 591 self.ExpectReadline([ |
601 RL(""), # Open editor. | 592 RL(""), # Open editor. |
602 ]) | 593 ]) |
603 | 594 |
604 self.RunStep(PushToTrunk, EditChangeLog) | 595 self.RunStep(PushToTrunk, EditChangeLog) |
605 | 596 |
606 self.assertEquals("New\n Lines", | 597 self.assertEquals("New\n Lines", |
607 FileToText(TEST_CONFIG[CHANGELOG_ENTRY_FILE])) | 598 FileToText(TEST_CONFIG[CHANGELOG_ENTRY_FILE])) |
608 | 599 |
609 # Version on trunk: 3.22.4.0. Version on master (bleeding_edge): 3.22.6. | 600 # Version on trunk: 3.22.4.0. Version on master (bleeding_edge): 3.22.6. |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
735 | 726 |
736 Performance and stability improvements on all platforms. | 727 Performance and stability improvements on all platforms. |
737 | 728 |
738 | 729 |
739 1999-04-05: Version 3.22.4 | 730 1999-04-05: Version 3.22.4 |
740 | 731 |
741 Performance and stability improvements on all platforms.\n""", | 732 Performance and stability improvements on all platforms.\n""", |
742 change_log) | 733 change_log) |
743 | 734 |
744 force_flag = " -f" if not manual else "" | 735 force_flag = " -f" if not manual else "" |
745 self.ExpectCmd([ | 736 expectations = [ |
746 Cmd("git status -s -uno", ""), | 737 Cmd("git status -s -uno", ""), |
747 Cmd("git status -s -b -uno", "## some_branch\n"), | 738 Cmd("git status -s -b -uno", "## some_branch\n"), |
748 Cmd("git svn fetch", ""), | 739 Cmd("git svn fetch", ""), |
749 Cmd("git branch", " branch1\n* branch2\n"), | 740 Cmd("git branch", " branch1\n* branch2\n"), |
750 Cmd("git branch", " branch1\n* branch2\n"), | 741 Cmd("git branch", " branch1\n* branch2\n"), |
751 Cmd("git checkout -b %s svn/bleeding_edge" % TEST_CONFIG[BRANCHNAME], | 742 Cmd("git checkout -b %s svn/bleeding_edge" % TEST_CONFIG[BRANCHNAME], |
752 ""), | 743 ""), |
753 Cmd("git svn find-rev r123455", "push_hash\n"), | 744 Cmd("git svn find-rev r123455", "push_hash\n"), |
754 Cmd(("git log -1 --format=%H --grep=" | 745 Cmd(("git log -1 --format=%H --grep=" |
755 "\"^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\" " | 746 "\"^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\" " |
756 "svn/trunk"), "hash2\n"), | 747 "svn/trunk"), "hash2\n"), |
757 Cmd("git log -1 hash2", "Log message\n"), | 748 Cmd("git log -1 hash2", "Log message\n"), |
758 Cmd("git log -1 --format=%s hash2", | 749 Cmd("git log -1 --format=%s hash2", |
759 "Version 3.4.5 (based on bleeding_edge revision r1234)\n"), | 750 "Version 3.4.5 (based on bleeding_edge revision r1234)\n"), |
760 Cmd("git svn find-rev r1234", "hash3\n"), | 751 Cmd("git svn find-rev r1234", "hash3\n"), |
761 Cmd(("git checkout -f svn/bleeding_edge -- %s" % | 752 Cmd(("git checkout -f svn/bleeding_edge -- %s" % |
762 TEST_CONFIG[VERSION_FILE]), | 753 TEST_CONFIG[VERSION_FILE]), |
763 "", cb=self.WriteFakeVersionFile), | 754 "", cb=self.WriteFakeVersionFile), |
764 Cmd("git checkout -f hash2 -- %s" % TEST_CONFIG[VERSION_FILE], "", | 755 Cmd("git checkout -f hash2 -- %s" % TEST_CONFIG[VERSION_FILE], "", |
765 cb=self.WriteFakeVersionFile), | 756 cb=self.WriteFakeVersionFile), |
766 Cmd("git log --format=%H hash3..push_hash", "rev1\n"), | 757 Cmd("git log --format=%H hash3..push_hash", "rev1\n"), |
767 Cmd("git log -1 --format=%s rev1", "Log text 1.\n"), | 758 Cmd("git log -1 --format=%s rev1", "Log text 1.\n"), |
768 Cmd("git log -1 --format=%B rev1", "Text\nLOG=YES\nBUG=v8:321\nText\n"), | 759 Cmd("git log -1 --format=%B rev1", "Text\nLOG=YES\nBUG=v8:321\nText\n"), |
769 Cmd("git log -1 --format=%an rev1", "author1@chromium.org\n"), | 760 Cmd("git log -1 --format=%an rev1", "author1@chromium.org\n"), |
| 761 ] |
| 762 if not force: |
| 763 expectations.append(Cmd("vi %s" % TEST_CONFIG[CHANGELOG_ENTRY_FILE], "")) |
| 764 expectations += [ |
770 Cmd("git svn fetch", "fetch result\n"), | 765 Cmd("git svn fetch", "fetch result\n"), |
771 Cmd("git checkout -f svn/bleeding_edge", ""), | 766 Cmd("git checkout -f svn/bleeding_edge", ""), |
772 Cmd("git diff svn/trunk push_hash", "patch content\n"), | 767 Cmd("git diff svn/trunk push_hash", "patch content\n"), |
773 Cmd("git svn find-rev push_hash", "123455\n"), | 768 Cmd("git svn find-rev push_hash", "123455\n"), |
774 Cmd("git checkout -b %s svn/trunk" % TEST_CONFIG[TRUNKBRANCH], "", | 769 Cmd("git checkout -b %s svn/trunk" % TEST_CONFIG[TRUNKBRANCH], "", |
775 cb=ResetToTrunk), | 770 cb=ResetToTrunk), |
776 Cmd("git apply --index --reject \"%s\"" % TEST_CONFIG[PATCH_FILE], ""), | 771 Cmd("git apply --index --reject \"%s\"" % TEST_CONFIG[PATCH_FILE], ""), |
777 Cmd("git checkout -f svn/trunk -- %s" % TEST_CONFIG[CHANGELOG_FILE], "", | 772 Cmd("git checkout -f svn/trunk -- %s" % TEST_CONFIG[CHANGELOG_FILE], "", |
778 cb=ResetChangeLog), | 773 cb=ResetChangeLog), |
779 Cmd("git checkout -f svn/trunk -- %s" % TEST_CONFIG[VERSION_FILE], "", | 774 Cmd("git checkout -f svn/trunk -- %s" % TEST_CONFIG[VERSION_FILE], "", |
780 cb=self.WriteFakeVersionFile), | 775 cb=self.WriteFakeVersionFile), |
781 Cmd("git commit -aF \"%s\"" % TEST_CONFIG[COMMITMSG_FILE], "", | 776 Cmd("git commit -aF \"%s\"" % TEST_CONFIG[COMMITMSG_FILE], "", |
782 cb=CheckSVNCommit), | 777 cb=CheckSVNCommit), |
783 Cmd("git svn dcommit 2>&1", | 778 Cmd("git svn dcommit 2>&1", |
784 "Some output\nCommitted r123456\nSome output\n"), | 779 "Some output\nCommitted r123456\nSome output\n"), |
785 Cmd("git svn tag 3.22.5 -m \"Tagging version 3.22.5\"", ""), | 780 Cmd("git svn tag 3.22.5 -m \"Tagging version 3.22.5\"", ""), |
786 Cmd("git checkout -f some_branch", ""), | 781 Cmd("git checkout -f some_branch", ""), |
787 Cmd("git branch -D %s" % TEST_CONFIG[BRANCHNAME], ""), | 782 Cmd("git branch -D %s" % TEST_CONFIG[BRANCHNAME], ""), |
788 Cmd("git branch -D %s" % TEST_CONFIG[TRUNKBRANCH], ""), | 783 Cmd("git branch -D %s" % TEST_CONFIG[TRUNKBRANCH], ""), |
789 ]) | 784 ] |
| 785 self.ExpectCmd(expectations) |
790 | 786 |
791 # Expected keyboard input in manual mode: | 787 # Expected keyboard input in manual mode: |
792 if manual: | 788 if manual: |
793 self.ExpectReadline([ | 789 self.ExpectReadline([ |
794 RL("Y"), # Confirm last push. | 790 RL("Y"), # Confirm last push. |
795 RL(""), # Open editor. | 791 RL(""), # Open editor. |
796 RL("Y"), # Increment build number. | 792 RL("Y"), # Increment build number. |
797 RL("Y"), # Sanity check. | 793 RL("Y"), # Sanity check. |
798 ]) | 794 ]) |
799 | 795 |
(...skipping 744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1544 | 1540 |
1545 Review URL: https://codereview.chromium.org/83173002 | 1541 Review URL: https://codereview.chromium.org/83173002 |
1546 | 1542 |
1547 ------------------------------------------------------------------------""") | 1543 ------------------------------------------------------------------------""") |
1548 self.assertEquals( | 1544 self.assertEquals( |
1549 """Prepare push to trunk. Now working on version 3.23.11. | 1545 """Prepare push to trunk. Now working on version 3.23.11. |
1550 | 1546 |
1551 R=danno@chromium.org | 1547 R=danno@chromium.org |
1552 | 1548 |
1553 Committed: https://code.google.com/p/v8/source/detail?r=17997""", body) | 1549 Committed: https://code.google.com/p/v8/source/detail?r=17997""", body) |
OLD | NEW |