Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: tools/push-to-trunk/test_scripts.py

Issue 196173018: Change auto-roll to auto-push for automatic trunk pushes. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/push-to-trunk/auto_roll.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 13 matching lines...) Expand all
24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
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_push
35 from auto_roll import CheckLastPush 35 from auto_push import CheckLastPush
36 from auto_roll import SETTINGS_LOCATION 36 from auto_push import SETTINGS_LOCATION
37 import common_includes 37 import common_includes
38 from common_includes import * 38 from common_includes import *
39 import merge_to_branch 39 import merge_to_branch
40 from merge_to_branch import * 40 from merge_to_branch import *
41 import push_to_trunk 41 import push_to_trunk
42 from push_to_trunk import * 42 from push_to_trunk import *
43 import chromium_roll 43 import chromium_roll
44 from chromium_roll import CHROMIUM 44 from chromium_roll import CHROMIUM
45 from chromium_roll import DEPS_FILE 45 from chromium_roll import DEPS_FILE
46 from chromium_roll import ChromiumRoll 46 from chromium_roll import ChromiumRoll
(...skipping 13 matching lines...) Expand all
60 CHROMIUM: "/tmp/test-v8-push-to-trunk-tempfile-chromium", 60 CHROMIUM: "/tmp/test-v8-push-to-trunk-tempfile-chromium",
61 DEPS_FILE: "/tmp/test-v8-push-to-trunk-tempfile-chromium/DEPS", 61 DEPS_FILE: "/tmp/test-v8-push-to-trunk-tempfile-chromium/DEPS",
62 SETTINGS_LOCATION: None, 62 SETTINGS_LOCATION: None,
63 ALREADY_MERGING_SENTINEL_FILE: 63 ALREADY_MERGING_SENTINEL_FILE:
64 "/tmp/test-merge-to-branch-tempfile-already-merging", 64 "/tmp/test-merge-to-branch-tempfile-already-merging",
65 COMMIT_HASHES_FILE: "/tmp/test-merge-to-branch-tempfile-PATCH_COMMIT_HASHES", 65 COMMIT_HASHES_FILE: "/tmp/test-merge-to-branch-tempfile-PATCH_COMMIT_HASHES",
66 TEMPORARY_PATCH_FILE: "/tmp/test-merge-to-branch-tempfile-temporary-patch", 66 TEMPORARY_PATCH_FILE: "/tmp/test-merge-to-branch-tempfile-temporary-patch",
67 } 67 }
68 68
69 69
70 AUTO_ROLL_ARGS = [ 70 AUTO_PUSH_ARGS = [
71 "-a", "author@chromium.org", 71 "-a", "author@chromium.org",
72 "-c", TEST_CONFIG[CHROMIUM],
73 "-r", "reviewer@chromium.org", 72 "-r", "reviewer@chromium.org",
74 ] 73 ]
75 74
76 75
77 class ToplevelTest(unittest.TestCase): 76 class ToplevelTest(unittest.TestCase):
78 def testMakeComment(self): 77 def testMakeComment(self):
79 self.assertEquals("# Line 1\n# Line 2\n#", 78 self.assertEquals("# Line 1\n# Line 2\n#",
80 MakeComment(" Line 1\n Line 2\n")) 79 MakeComment(" Line 1\n Line 2\n"))
81 self.assertEquals("#Line 1\n#Line 2", 80 self.assertEquals("#Line 1\n#Line 2",
82 MakeComment("Line 1\n Line 2")) 81 MakeComment("Line 1\n Line 2"))
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 self.ExpectGit([ 832 self.ExpectGit([
834 Git(("log -1 --format=%H --grep=" 833 Git(("log -1 --format=%H --grep="
835 "\"^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\" " 834 "\"^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\" "
836 "svn/trunk"), "hash2\n"), 835 "svn/trunk"), "hash2\n"),
837 Git("log -1 --format=%s hash2", 836 Git("log -1 --format=%s hash2",
838 "Version 3.4.5 (based on bleeding_edge revision r99)\n"), 837 "Version 3.4.5 (based on bleeding_edge revision r99)\n"),
839 ]) 838 ])
840 839
841 self._state["lkgr"] = "101" 840 self._state["lkgr"] = "101"
842 841
843 self.assertRaises(Exception, lambda: self.RunStep(auto_roll.AutoRoll, 842 self.assertRaises(Exception, lambda: self.RunStep(auto_push.AutoPush,
844 CheckLastPush, 843 CheckLastPush,
845 AUTO_ROLL_ARGS)) 844 AUTO_PUSH_ARGS))
846 845
847 def testAutoRoll(self): 846 def testAutoPush(self):
848 password = self.MakeEmptyTempFile()
849 TextToFile("PW", password)
850 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() 847 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile()
851 TEST_CONFIG[SETTINGS_LOCATION] = "~/.doesnotexist" 848 TEST_CONFIG[SETTINGS_LOCATION] = "~/.doesnotexist"
852 849
853 self.ExpectReadURL([ 850 self.ExpectReadURL([
854 URL("https://v8-status.appspot.com/current?format=json", 851 URL("https://v8-status.appspot.com/current?format=json",
855 "{\"message\": \"Tree is throttled\"}"), 852 "{\"message\": \"Tree is throttled\"}"),
856 URL("https://v8-status.appspot.com/lkgr", Exception("Network problem")), 853 URL("https://v8-status.appspot.com/lkgr", Exception("Network problem")),
857 URL("https://v8-status.appspot.com/lkgr", "100"), 854 URL("https://v8-status.appspot.com/lkgr", "100"),
858 URL("https://v8-status.appspot.com/status",
859 ("username=v8-auto-roll%40chromium.org&"
860 "message=Tree+is+closed+%28preparing+to+push%29&password=PW"), ""),
861 URL("https://v8-status.appspot.com/status",
862 ("username=v8-auto-roll%40chromium.org&"
863 "message=Tree+is+throttled&password=PW"), ""),
864 ]) 855 ])
865 856
866 self.ExpectGit([ 857 self.ExpectGit([
867 Git("status -s -uno", ""), 858 Git("status -s -uno", ""),
868 Git("status -s -b -uno", "## some_branch\n"), 859 Git("status -s -b -uno", "## some_branch\n"),
869 Git("svn fetch", ""), 860 Git("svn fetch", ""),
870 Git(("log -1 --format=%H --grep=\"" 861 Git(("log -1 --format=%H --grep=\""
871 "^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\"" 862 "^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]* (based\""
872 " svn/trunk"), "push_hash\n"), 863 " svn/trunk"), "push_hash\n"),
873 Git("log -1 --format=%s push_hash", 864 Git("log -1 --format=%s push_hash",
874 "Version 3.4.5 (based on bleeding_edge revision r79)\n"), 865 "Version 3.4.5 (based on bleeding_edge revision r79)\n"),
875 ]) 866 ])
876 867
877 auto_roll.AutoRoll(TEST_CONFIG, self).Run( 868 auto_push.AutoPush(TEST_CONFIG, self).Run(AUTO_PUSH_ARGS + ["--push"])
878 AUTO_ROLL_ARGS + ["--status-password", password, "--push"])
879 869
880 state = json.loads(FileToText("%s-state.json" 870 state = json.loads(FileToText("%s-state.json"
881 % TEST_CONFIG[PERSISTFILE_BASENAME])) 871 % TEST_CONFIG[PERSISTFILE_BASENAME]))
882 872
883 self.assertEquals("100", state["lkgr"]) 873 self.assertEquals("100", state["lkgr"])
884 874
885 def testAutoRollStoppedBySettings(self): 875 def testAutoPushStoppedBySettings(self):
886 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() 876 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile()
887 TEST_CONFIG[SETTINGS_LOCATION] = self.MakeEmptyTempFile() 877 TEST_CONFIG[SETTINGS_LOCATION] = self.MakeEmptyTempFile()
888 TextToFile("{\"enable_auto_roll\": false}", TEST_CONFIG[SETTINGS_LOCATION]) 878 TextToFile("{\"enable_auto_push\": false}", TEST_CONFIG[SETTINGS_LOCATION])
889 879
890 self.ExpectReadURL([]) 880 self.ExpectReadURL([])
891 881
892 self.ExpectGit([ 882 self.ExpectGit([
893 Git("status -s -uno", ""), 883 Git("status -s -uno", ""),
894 Git("status -s -b -uno", "## some_branch\n"), 884 Git("status -s -b -uno", "## some_branch\n"),
895 Git("svn fetch", ""), 885 Git("svn fetch", ""),
896 ]) 886 ])
897 887
898 def RunAutoRoll(): 888 def RunAutoPush():
899 auto_roll.AutoRoll(TEST_CONFIG, self).Run(AUTO_ROLL_ARGS) 889 auto_push.AutoPush(TEST_CONFIG, self).Run(AUTO_PUSH_ARGS)
900 self.assertRaises(Exception, RunAutoRoll) 890 self.assertRaises(Exception, RunAutoPush)
901 891
902 def testAutoRollStoppedByTreeStatus(self): 892 def testAutoPushStoppedByTreeStatus(self):
903 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() 893 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile()
904 TEST_CONFIG[SETTINGS_LOCATION] = "~/.doesnotexist" 894 TEST_CONFIG[SETTINGS_LOCATION] = "~/.doesnotexist"
905 895
906 self.ExpectReadURL([ 896 self.ExpectReadURL([
907 URL("https://v8-status.appspot.com/current?format=json", 897 URL("https://v8-status.appspot.com/current?format=json",
908 "{\"message\": \"Tree is throttled (no push)\"}"), 898 "{\"message\": \"Tree is throttled (no push)\"}"),
909 ]) 899 ])
910 900
911 self.ExpectGit([ 901 self.ExpectGit([
912 Git("status -s -uno", ""), 902 Git("status -s -uno", ""),
913 Git("status -s -b -uno", "## some_branch\n"), 903 Git("status -s -b -uno", "## some_branch\n"),
914 Git("svn fetch", ""), 904 Git("svn fetch", ""),
915 ]) 905 ])
916 906
917 def RunAutoRoll(): 907 def RunAutoPush():
918 auto_roll.AutoRoll(TEST_CONFIG, self).Run(AUTO_ROLL_ARGS) 908 auto_push.AutoPush(TEST_CONFIG, self).Run(AUTO_PUSH_ARGS)
919 self.assertRaises(Exception, RunAutoRoll) 909 self.assertRaises(Exception, RunAutoPush)
920 910
921 def testMergeToBranch(self): 911 def testMergeToBranch(self):
922 TEST_CONFIG[ALREADY_MERGING_SENTINEL_FILE] = self.MakeEmptyTempFile() 912 TEST_CONFIG[ALREADY_MERGING_SENTINEL_FILE] = self.MakeEmptyTempFile()
923 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile() 913 TEST_CONFIG[DOT_GIT_LOCATION] = self.MakeEmptyTempFile()
924 TEST_CONFIG[VERSION_FILE] = self.MakeEmptyTempFile() 914 TEST_CONFIG[VERSION_FILE] = self.MakeEmptyTempFile()
925 self.WriteFakeVersionFile(build=5) 915 self.WriteFakeVersionFile(build=5)
926 os.environ["EDITOR"] = "vi" 916 os.environ["EDITOR"] = "vi"
927 extra_patch = self.MakeEmptyTempFile() 917 extra_patch = self.MakeEmptyTempFile()
928 918
929 def VerifyPatch(patch): 919 def VerifyPatch(patch):
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 1051
1062 Review URL: https://codereview.chromium.org/83173002 1052 Review URL: https://codereview.chromium.org/83173002
1063 1053
1064 ------------------------------------------------------------------------""") 1054 ------------------------------------------------------------------------""")
1065 self.assertEquals( 1055 self.assertEquals(
1066 """Prepare push to trunk. Now working on version 3.23.11. 1056 """Prepare push to trunk. Now working on version 3.23.11.
1067 1057
1068 R=danno@chromium.org 1058 R=danno@chromium.org
1069 1059
1070 Committed: https://code.google.com/p/v8/source/detail?r=17997""", body) 1060 Committed: https://code.google.com/p/v8/source/detail?r=17997""", body)
OLDNEW
« no previous file with comments | « tools/push-to-trunk/auto_roll.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698