| 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 15 matching lines...) Expand all Loading... |
| 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 26 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 28 | 28 |
| 29 import os | 29 import os |
| 30 import tempfile | 30 import tempfile |
| 31 import traceback | 31 import traceback |
| 32 import unittest | 32 import unittest |
| 33 | 33 |
| 34 import auto_roll | 34 import auto_roll |
| 35 from auto_roll import CheckLastPush | 35 from auto_roll import CheckLastPush |
| 36 from auto_roll import FetchLatestRevision | |
| 37 from auto_roll import SETTINGS_LOCATION | 36 from auto_roll import SETTINGS_LOCATION |
| 38 import common_includes | 37 import common_includes |
| 39 from common_includes import * | 38 from common_includes import * |
| 40 import merge_to_branch | 39 import merge_to_branch |
| 41 from merge_to_branch import * | 40 from merge_to_branch import * |
| 42 import push_to_trunk | 41 import push_to_trunk |
| 43 from push_to_trunk import * | 42 from push_to_trunk import * |
| 44 import chromium_roll | 43 import chromium_roll |
| 45 from chromium_roll import CHROMIUM | 44 from chromium_roll import CHROMIUM |
| 46 from chromium_roll import DEPS_FILE | 45 from chromium_roll import DEPS_FILE |
| (...skipping 778 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 825 self._ChromiumRoll(manual=True) | 824 self._ChromiumRoll(manual=True) |
| 826 | 825 |
| 827 def testChromiumRollSemiAutomatic(self): | 826 def testChromiumRollSemiAutomatic(self): |
| 828 self._ChromiumRoll() | 827 self._ChromiumRoll() |
| 829 | 828 |
| 830 def testChromiumRollForced(self): | 829 def testChromiumRollForced(self): |
| 831 self._ChromiumRoll(force=True) | 830 self._ChromiumRoll(force=True) |
| 832 | 831 |
| 833 def testCheckLastPushRecently(self): | 832 def testCheckLastPushRecently(self): |
| 834 self.ExpectGit([ | 833 self.ExpectGit([ |
| 835 Git("svn log -1 --oneline", "r101 | Text"), | 834 Git(("log -1 --format=%H --grep=" |
| 836 Git("svn log -1 --oneline ChangeLog", "r99 | Prepare push to trunk..."), | 835 "\"^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\" " |
| 836 "svn/trunk"), "hash2\n"), |
| 837 Git("log -1 --format=%s hash2", |
| 838 "Version 3.4.5 (based on bleeding_edge revision r99)\n"), |
| 837 ]) | 839 ]) |
| 838 | 840 |
| 839 self.RunStep(auto_roll.AutoRoll, FetchLatestRevision, AUTO_ROLL_ARGS) | 841 self._state["lkgr"] = "101" |
| 842 |
| 840 self.assertRaises(Exception, lambda: self.RunStep(auto_roll.AutoRoll, | 843 self.assertRaises(Exception, lambda: self.RunStep(auto_roll.AutoRoll, |
| 841 CheckLastPush, | 844 CheckLastPush, |
| 842 AUTO_ROLL_ARGS)) | 845 AUTO_ROLL_ARGS)) |
| 843 | 846 |
| 844 def testAutoRoll(self): | 847 def testAutoRoll(self): |
| 845 password = self.MakeEmptyTempFile() | 848 password = self.MakeEmptyTempFile() |
| 846 TextToFile("PW", password) | 849 TextToFile("PW", password) |
| 847 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() | 850 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() |
| 848 TEST_CONFIG[SETTINGS_LOCATION] = "~/.doesnotexist" | 851 TEST_CONFIG[SETTINGS_LOCATION] = "~/.doesnotexist" |
| 849 | 852 |
| 850 self.ExpectReadURL([ | 853 self.ExpectReadURL([ |
| 851 URL("https://v8-status.appspot.com/current?format=json", | 854 URL("https://v8-status.appspot.com/current?format=json", |
| 852 "{\"message\": \"Tree is throttled\"}"), | 855 "{\"message\": \"Tree is throttled\"}"), |
| 853 URL("https://v8-status.appspot.com/lkgr", Exception("Network problem")), | 856 URL("https://v8-status.appspot.com/lkgr", Exception("Network problem")), |
| 854 URL("https://v8-status.appspot.com/lkgr", "100"), | 857 URL("https://v8-status.appspot.com/lkgr", "100"), |
| 855 URL("https://v8-status.appspot.com/status", | 858 URL("https://v8-status.appspot.com/status", |
| 856 ("username=v8-auto-roll%40chromium.org&" | 859 ("username=v8-auto-roll%40chromium.org&" |
| 857 "message=Tree+is+closed+%28preparing+to+push%29&password=PW"), ""), | 860 "message=Tree+is+closed+%28preparing+to+push%29&password=PW"), ""), |
| 858 URL("https://v8-status.appspot.com/status", | 861 URL("https://v8-status.appspot.com/status", |
| 859 ("username=v8-auto-roll%40chromium.org&" | 862 ("username=v8-auto-roll%40chromium.org&" |
| 860 "message=Tree+is+throttled&password=PW"), ""), | 863 "message=Tree+is+throttled&password=PW"), ""), |
| 861 ]) | 864 ]) |
| 862 | 865 |
| 863 self.ExpectGit([ | 866 self.ExpectGit([ |
| 864 Git("status -s -uno", ""), | 867 Git("status -s -uno", ""), |
| 865 Git("status -s -b -uno", "## some_branch\n"), | 868 Git("status -s -b -uno", "## some_branch\n"), |
| 866 Git("svn fetch", ""), | 869 Git("svn fetch", ""), |
| 867 Git("svn log -1 --oneline", "r100 | Text"), | |
| 868 Git(("log -1 --format=%H --grep=\"" | 870 Git(("log -1 --format=%H --grep=\"" |
| 869 "^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\"" | 871 "^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\"" |
| 870 " svn/trunk"), "push_hash\n"), | 872 " svn/trunk"), "push_hash\n"), |
| 871 Git("svn find-rev push_hash", "65"), | 873 Git("log -1 --format=%s push_hash", |
| 874 "Version 3.4.5 (based on bleeding_edge revision r79)\n"), |
| 872 ]) | 875 ]) |
| 873 | 876 |
| 874 auto_roll.AutoRoll(TEST_CONFIG, self).Run( | 877 auto_roll.AutoRoll(TEST_CONFIG, self).Run( |
| 875 AUTO_ROLL_ARGS + ["--status-password", password, "--push"]) | 878 AUTO_ROLL_ARGS + ["--status-password", password, "--push"]) |
| 876 | 879 |
| 877 state = json.loads(FileToText("%s-state.json" | 880 state = json.loads(FileToText("%s-state.json" |
| 878 % TEST_CONFIG[PERSISTFILE_BASENAME])) | 881 % TEST_CONFIG[PERSISTFILE_BASENAME])) |
| 879 | 882 |
| 880 self.assertEquals("100", state["lkgr"]) | 883 self.assertEquals("100", state["lkgr"]) |
| 881 self.assertEquals("100", state["latest"]) | |
| 882 | 884 |
| 883 def testAutoRollStoppedBySettings(self): | 885 def testAutoRollStoppedBySettings(self): |
| 884 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() | 886 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() |
| 885 TEST_CONFIG[SETTINGS_LOCATION] = self.MakeEmptyTempFile() | 887 TEST_CONFIG[SETTINGS_LOCATION] = self.MakeEmptyTempFile() |
| 886 TextToFile("{\"enable_auto_roll\": false}", TEST_CONFIG[SETTINGS_LOCATION]) | 888 TextToFile("{\"enable_auto_roll\": false}", TEST_CONFIG[SETTINGS_LOCATION]) |
| 887 | 889 |
| 888 self.ExpectReadURL([]) | 890 self.ExpectReadURL([]) |
| 889 | 891 |
| 890 self.ExpectGit([ | 892 self.ExpectGit([ |
| 891 Git("status -s -uno", ""), | 893 Git("status -s -uno", ""), |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1059 | 1061 |
| 1060 Review URL: https://codereview.chromium.org/83173002 | 1062 Review URL: https://codereview.chromium.org/83173002 |
| 1061 | 1063 |
| 1062 ------------------------------------------------------------------------""") | 1064 ------------------------------------------------------------------------""") |
| 1063 self.assertEquals( | 1065 self.assertEquals( |
| 1064 """Prepare push to trunk. Now working on version 3.23.11. | 1066 """Prepare push to trunk. Now working on version 3.23.11. |
| 1065 | 1067 |
| 1066 R=danno@chromium.org | 1068 R=danno@chromium.org |
| 1067 | 1069 |
| 1068 Committed: https://code.google.com/p/v8/source/detail?r=17997""", body) | 1070 Committed: https://code.google.com/p/v8/source/detail?r=17997""", body) |
| OLD | NEW |