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 1161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1172 tree['src/git_hooked1'] = 'git_hooked1' | 1172 tree['src/git_hooked1'] = 'git_hooked1' |
1173 tree['src/git_hooked2'] = 'git_hooked2' | 1173 tree['src/git_hooked2'] = 'git_hooked2' |
1174 self.assertTree(tree) | 1174 self.assertTree(tree) |
1175 | 1175 |
1176 results = self.gclient(['status', '--deps', 'mac', '--jobs', '1']) | 1176 results = self.gclient(['status', '--deps', 'mac', '--jobs', '1']) |
1177 out = results[0].splitlines(False) | 1177 out = results[0].splitlines(False) |
1178 # TODO(maruel): http://crosbug.com/3584 It should output the unversioned | 1178 # TODO(maruel): http://crosbug.com/3584 It should output the unversioned |
1179 # files. | 1179 # files. |
1180 self.assertEquals(0, len(out)) | 1180 self.assertEquals(0, len(out)) |
1181 | 1181 |
| 1182 def testSyncNoHistory(self): |
| 1183 if not self.enabled: |
| 1184 return |
| 1185 # Create an extra commit in repo_2 and point DEPS to its hash. |
| 1186 cur_deps = self.FAKE_REPOS.git_hashes['repo_1'][-1][1]['DEPS'] |
| 1187 repo_2_hash_old = self.FAKE_REPOS.git_hashes['repo_2'][1][0][:7] |
| 1188 self.FAKE_REPOS._commit_git('repo_2', { # pylint: disable=W0212 |
| 1189 'last_file': 'file created in last commit', |
| 1190 }) |
| 1191 repo_2_hash_new = self.FAKE_REPOS.git_hashes['repo_2'][-1][0] |
| 1192 new_deps = cur_deps.replace(repo_2_hash_old, repo_2_hash_new) |
| 1193 self.assertNotEqual(new_deps, cur_deps) |
| 1194 self.FAKE_REPOS._commit_git('repo_1', { # pylint: disable=W0212 |
| 1195 'DEPS': new_deps, |
| 1196 'origin': 'git/repo_1@4\n', |
| 1197 }) |
| 1198 |
| 1199 config_template = ( |
| 1200 """solutions = [{ |
| 1201 "name" : "src", |
| 1202 "url" : "%(git_base)srepo_1", |
| 1203 "deps_file" : "DEPS", |
| 1204 "managed" : True, |
| 1205 }]""") |
| 1206 |
| 1207 self.gclient(['config', '--spec', config_template % { |
| 1208 'git_base': self.git_base |
| 1209 }]) |
| 1210 |
| 1211 self.gclient(['sync', '--no-history', '--deps', 'mac']) |
| 1212 repo2_root = join(self.root_dir, 'src', 'repo2') |
| 1213 |
| 1214 # Check that repo_2 is actually shallow and its log has only one entry. |
| 1215 rev_lists = subprocess2.check_output(['git', 'rev-list', 'HEAD'], |
| 1216 cwd=repo2_root) |
| 1217 self.assertEquals(repo_2_hash_new, rev_lists.strip('\r\n')) |
| 1218 |
| 1219 # Check that we have actually checked out the right commit. |
| 1220 self.assertTrue(os.path.exists(join(repo2_root, 'last_file'))) |
| 1221 |
| 1222 |
1182 class GClientSmokeBoth(GClientSmokeBase): | 1223 class GClientSmokeBoth(GClientSmokeBase): |
1183 def setUp(self): | 1224 def setUp(self): |
1184 super(GClientSmokeBoth, self).setUp() | 1225 super(GClientSmokeBoth, self).setUp() |
1185 self.enabled = self.FAKE_REPOS.set_up_svn() and self.FAKE_REPOS.set_up_git() | 1226 self.enabled = self.FAKE_REPOS.set_up_svn() and self.FAKE_REPOS.set_up_git() |
1186 | 1227 |
1187 def testMultiSolutions(self): | 1228 def testMultiSolutions(self): |
1188 if not self.enabled: | 1229 if not self.enabled: |
1189 return | 1230 return |
1190 self.gclient(['config', '--spec', | 1231 self.gclient(['config', '--spec', |
1191 'solutions=[' | 1232 'solutions=[' |
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1597 | 1638 |
1598 if '-c' in sys.argv: | 1639 if '-c' in sys.argv: |
1599 COVERAGE = True | 1640 COVERAGE = True |
1600 sys.argv.remove('-c') | 1641 sys.argv.remove('-c') |
1601 if os.path.exists('.coverage'): | 1642 if os.path.exists('.coverage'): |
1602 os.remove('.coverage') | 1643 os.remove('.coverage') |
1603 os.environ['COVERAGE_FILE'] = os.path.join( | 1644 os.environ['COVERAGE_FILE'] = os.path.join( |
1604 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), | 1645 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), |
1605 '.coverage') | 1646 '.coverage') |
1606 unittest.main() | 1647 unittest.main() |
OLD | NEW |