| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """Smoke tests for gclient.py. | 6 """Smoke tests for gclient.py. |
| 7 | 7 |
| 8 Shell out 'gclient' and run basic conformance tests. | 8 Shell out 'gclient' and run basic conformance tests. |
| 9 | 9 |
| 10 This test assumes GClientSmokeBase.URL_BASE is valid. | 10 This test assumes GClientSmokeBase.URL_BASE is valid. |
| (...skipping 1049 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1060 ['running', 'running']) | 1060 ['running', 'running']) |
| 1061 self.assertEquals(1, len(out[0])) | 1061 self.assertEquals(1, len(out[0])) |
| 1062 self.assertEquals(1, len(out[1])) | 1062 self.assertEquals(1, len(out[1])) |
| 1063 tree = self.mangle_git_tree(('repo_1@2', 'src'), | 1063 tree = self.mangle_git_tree(('repo_1@2', 'src'), |
| 1064 ('repo_2@1', 'src/repo2'), | 1064 ('repo_2@1', 'src/repo2'), |
| 1065 ('repo_3@2', 'src/repo2/repo_renamed')) | 1065 ('repo_3@2', 'src/repo2/repo_renamed')) |
| 1066 tree['src/git_hooked1'] = 'git_hooked1' | 1066 tree['src/git_hooked1'] = 'git_hooked1' |
| 1067 tree['src/git_hooked2'] = 'git_hooked2' | 1067 tree['src/git_hooked2'] = 'git_hooked2' |
| 1068 self.assertTree(tree) | 1068 self.assertTree(tree) |
| 1069 | 1069 |
| 1070 def testPreDepsHooks(self): | |
| 1071 if not self.enabled: | |
| 1072 return | |
| 1073 self.gclient(['config', self.git_base + 'repo_5', '--name', 'src']) | |
| 1074 expectation = [ | |
| 1075 ('running', self.root_dir), # git clone repo_5 | |
| 1076 ('running', self.root_dir + '/src'), # git checkout src | |
| 1077 ('running', self.root_dir), # pre-deps hook | |
| 1078 ('running', self.root_dir), # git clone repo_1 | |
| 1079 ('running', self.root_dir + '/src/repo1'), # git checkout repo1 | |
| 1080 ('running', self.root_dir), # git clone repo_1 | |
| 1081 ('running', self.root_dir + '/src/repo2'), # git checkout repo2 | |
| 1082 ] | |
| 1083 out = self.parseGclient(['sync', '--deps', 'mac', '--jobs=1', | |
| 1084 '--revision', 'src@' + self.githash('repo_5', 2)], | |
| 1085 expectation) | |
| 1086 self.assertEquals(2, len(out[2])) | |
| 1087 self.assertEquals('pre-deps hook', out[2][1]) | |
| 1088 tree = self.mangle_git_tree(('repo_5@2', 'src'), | |
| 1089 ('repo_1@2', 'src/repo1'), | |
| 1090 ('repo_2@1', 'src/repo2') | |
| 1091 ) | |
| 1092 tree['src/git_pre_deps_hooked'] = 'git_pre_deps_hooked' | |
| 1093 self.assertTree(tree) | |
| 1094 | |
| 1095 os.remove(join(self.root_dir, 'src', 'git_pre_deps_hooked')) | |
| 1096 | |
| 1097 # Pre-DEPS hooks don't run with runhooks. | |
| 1098 self.gclient(['runhooks', '--deps', 'mac']) | |
| 1099 tree = self.mangle_git_tree(('repo_5@2', 'src'), | |
| 1100 ('repo_1@2', 'src/repo1'), | |
| 1101 ('repo_2@1', 'src/repo2') | |
| 1102 ) | |
| 1103 self.assertTree(tree) | |
| 1104 | |
| 1105 # Pre-DEPS hooks run when syncing with --nohooks. | |
| 1106 self.gclient(['sync', '--deps', 'mac', '--nohooks', | |
| 1107 '--revision', 'src@' + self.githash('repo_5', 2)]) | |
| 1108 tree = self.mangle_git_tree(('repo_5@2', 'src'), | |
| 1109 ('repo_1@2', 'src/repo1'), | |
| 1110 ('repo_2@1', 'src/repo2') | |
| 1111 ) | |
| 1112 tree['src/git_pre_deps_hooked'] = 'git_pre_deps_hooked' | |
| 1113 self.assertTree(tree) | |
| 1114 | |
| 1115 os.remove(join(self.root_dir, 'src', 'git_pre_deps_hooked')) | |
| 1116 | |
| 1117 # Pre-DEPS hooks don't run with --noprehooks | |
| 1118 self.gclient(['sync', '--deps', 'mac', '--noprehooks', | |
| 1119 '--revision', 'src@' + self.githash('repo_5', 2)]) | |
| 1120 tree = self.mangle_git_tree(('repo_5@2', 'src'), | |
| 1121 ('repo_1@2', 'src/repo1'), | |
| 1122 ('repo_2@1', 'src/repo2') | |
| 1123 ) | |
| 1124 self.assertTree(tree) | |
| 1125 | |
| 1126 def testPreDepsHooksError(self): | |
| 1127 if not self.enabled: | |
| 1128 return | |
| 1129 self.gclient(['config', self.git_base + 'repo_5', '--name', 'src']) | |
| 1130 expectated_stdout = [ | |
| 1131 ('running', self.root_dir), # git clone repo_5 | |
| 1132 ('running', self.root_dir + '/src'), # git checkout src | |
| 1133 ('running', self.root_dir), # pre-deps hook | |
| 1134 ('running', self.root_dir), # pre-deps hook (fails) | |
| 1135 ] | |
| 1136 expected_stderr = ('Error: Command /usr/bin/python -c import sys; ' | |
| 1137 'sys.exit(1) returned non-zero exit status 1 in %s\n' | |
| 1138 % self.root_dir) | |
| 1139 stdout, stderr, retcode = self.gclient(['sync', '--deps', 'mac', '--jobs=1', | |
| 1140 '--revision', | |
| 1141 'src@' + self.githash('repo_5', 3)]) | |
| 1142 self.assertEquals(stderr, expected_stderr) | |
| 1143 self.assertEquals(2, retcode) | |
| 1144 self.checkBlock(stdout, expectated_stdout) | |
| 1145 | |
| 1146 def testRevInfo(self): | 1070 def testRevInfo(self): |
| 1147 if not self.enabled: | 1071 if not self.enabled: |
| 1148 return | 1072 return |
| 1149 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) | 1073 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) |
| 1150 self.gclient(['sync', '--deps', 'mac']) | 1074 self.gclient(['sync', '--deps', 'mac']) |
| 1151 results = self.gclient(['revinfo', '--deps', 'mac']) | 1075 results = self.gclient(['revinfo', '--deps', 'mac']) |
| 1152 out = ('src: %(base)srepo_1\n' | 1076 out = ('src: %(base)srepo_1\n' |
| 1153 'src/repo2: %(base)srepo_2@%(hash2)s\n' | 1077 'src/repo2: %(base)srepo_2@%(hash2)s\n' |
| 1154 'src/repo2/repo_renamed: %(base)srepo_3\n' % | 1078 'src/repo2/repo_renamed: %(base)srepo_3\n' % |
| 1155 { | 1079 { |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1444 | 1368 |
| 1445 if '-c' in sys.argv: | 1369 if '-c' in sys.argv: |
| 1446 COVERAGE = True | 1370 COVERAGE = True |
| 1447 sys.argv.remove('-c') | 1371 sys.argv.remove('-c') |
| 1448 if os.path.exists('.coverage'): | 1372 if os.path.exists('.coverage'): |
| 1449 os.remove('.coverage') | 1373 os.remove('.coverage') |
| 1450 os.environ['COVERAGE_FILE'] = os.path.join( | 1374 os.environ['COVERAGE_FILE'] = os.path.join( |
| 1451 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), | 1375 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), |
| 1452 '.coverage') | 1376 '.coverage') |
| 1453 unittest.main() | 1377 unittest.main() |
| OLD | NEW |