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

Side by Side Diff: tests/gclient_smoketest.py

Issue 2162583004: Revert "Remove all safesync_url functionality from gclient" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 4 years, 5 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 | « tests/gclient_scm_test.py ('k') | tests/gclient_test.py » ('j') | 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 (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 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 p = join(self.root_dir, '.gclient') 198 p = join(self.root_dir, '.gclient')
199 def test(cmd, expected): 199 def test(cmd, expected):
200 if os.path.exists(p): 200 if os.path.exists(p):
201 os.remove(p) 201 os.remove(p)
202 results = self.gclient(cmd) 202 results = self.gclient(cmd)
203 self.check(('', '', 0), results) 203 self.check(('', '', 0), results)
204 self.checkString(expected, open(p, 'rU').read()) 204 self.checkString(expected, open(p, 'rU').read())
205 205
206 test(['config', self.svn_base + 'trunk/src/'], 206 test(['config', self.svn_base + 'trunk/src/'],
207 ('solutions = [\n' 207 ('solutions = [\n'
208 ' {\n' 208 ' { "name" : "src",\n'
209 ' "name" : "src",\n'
210 ' "url" : "%strunk/src",\n' 209 ' "url" : "%strunk/src",\n'
211 ' "deps_file" : "DEPS",\n' 210 ' "deps_file" : "DEPS",\n'
212 ' "managed" : False,\n' 211 ' "managed" : True,\n'
213 ' "custom_deps" : {},\n' 212 ' "custom_deps" : {\n'
213 ' },\n'
214 ' "safesync_url": "",\n'
214 ' },\n' 215 ' },\n'
215 ']\n' 216 ']\n'
216 'cache_dir = None\n') % self.svn_base) 217 'cache_dir = None\n') % self.svn_base)
217 218
218 test(['config', self.git_base + 'repo_1', '--name', 'src'], 219 test(['config', self.git_base + 'repo_1', '--name', 'src'],
219 ('solutions = [\n' 220 ('solutions = [\n'
220 ' {\n' 221 ' { "name" : "src",\n'
221 ' "name" : "src",\n'
222 ' "url" : "%srepo_1",\n' 222 ' "url" : "%srepo_1",\n'
223 ' "deps_file" : "DEPS",\n' 223 ' "deps_file" : "DEPS",\n'
224 ' "managed" : False,\n' 224 ' "managed" : True,\n'
225 ' "custom_deps" : {},\n' 225 ' "custom_deps" : {\n'
226 ' },\n'
227 ' "safesync_url": "",\n'
226 ' },\n' 228 ' },\n'
227 ']\n' 229 ']\n'
228 'cache_dir = None\n') % self.git_base) 230 'cache_dir = None\n') % self.git_base)
229 231
230 test(['config', 'foo', '--deps', 'blah'], 232 test(['config', 'foo', 'faa'],
231 'solutions = [\n' 233 'solutions = [\n'
232 ' {\n' 234 ' { "name" : "foo",\n'
233 ' "name" : "foo",\n'
234 ' "url" : "foo",\n' 235 ' "url" : "foo",\n'
235 ' "deps_file" : "blah",\n' 236 ' "deps_file" : "DEPS",\n'
236 ' "managed" : False,\n' 237 ' "managed" : True,\n'
237 ' "custom_deps" : {},\n' 238 ' "custom_deps" : {\n'
239 ' },\n'
240 ' "safesync_url": "faa",\n'
238 ' },\n' 241 ' },\n'
239 ']\n' 242 ']\n'
240 'cache_dir = None\n') 243 'cache_dir = None\n')
244
245 test(['config', 'foo', '--deps', 'blah'],
246 'solutions = [\n'
247 ' { "name" : "foo",\n'
248 ' "url" : "foo",\n'
249 ' "deps_file" : "blah",\n'
250 ' "managed" : True,\n'
251 ' "custom_deps" : {\n'
252 ' },\n'
253 ' "safesync_url": "",\n'
254 ' },\n'
255 ']\n'
256 'cache_dir = None\n')
241 257
242 test(['config', '--spec', '["blah blah"]'], '["blah blah"]') 258 test(['config', '--spec', '["blah blah"]'], '["blah blah"]')
243 259
244 os.remove(p) 260 os.remove(p)
245 results = self.gclient(['config', 'foo', 'faa', 'fuu']) 261 results = self.gclient(['config', 'foo', 'faa', 'fuu'])
246 err = ('Usage: gclient.py config [options] [url]\n\n' 262 err = ('Usage: gclient.py config [options] [url] [safesync url]\n\n'
247 'gclient.py: error: Inconsistent arguments. Use either --spec or one' 263 'gclient.py: error: Inconsistent arguments. Use either --spec or one'
248 ' or 2 args\n') 264 ' or 2 args\n')
249 self.check(('', err, 2), results) 265 self.check(('', err, 2), results)
250 self.assertFalse(os.path.exists(join(self.root_dir, '.gclient'))) 266 self.assertFalse(os.path.exists(join(self.root_dir, '.gclient')))
251 267
252 def testSolutionNone(self): 268 def testSolutionNone(self):
253 results = self.gclient(['config', '--spec', 269 results = self.gclient(['config', '--spec',
254 'solutions=[{"name": "./", "url": None}]']) 270 'solutions=[{"name": "./", "url": None}]'])
255 self.check(('', '', 0), results) 271 self.check(('', '', 0), results)
256 results = self.gclient(['sync']) 272 results = self.gclient(['sync'])
(...skipping 23 matching lines...) Expand all
280 os.mkdir(src) 296 os.mkdir(src)
281 res = self.gclient(['status', '--jobs', '1'], src) 297 res = self.gclient(['status', '--jobs', '1'], src)
282 self.checkBlock(res[0], [('running', deps), ('running', src)]) 298 self.checkBlock(res[0], [('running', deps), ('running', src)])
283 299
284 300
285 class GClientSmokeGIT(GClientSmokeBase): 301 class GClientSmokeGIT(GClientSmokeBase):
286 def setUp(self): 302 def setUp(self):
287 super(GClientSmokeGIT, self).setUp() 303 super(GClientSmokeGIT, self).setUp()
288 self.enabled = self.FAKE_REPOS.set_up_git() 304 self.enabled = self.FAKE_REPOS.set_up_git()
289 305
290 def testSyncManaged(self): 306 def testSync(self):
291 if not self.enabled: 307 if not self.enabled:
292 return 308 return
293 self.gclient([ 309 # TODO(maruel): safesync.
294 'config', self.git_base + 'repo_1', '--name', 'src', '--managed']) 310 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
295 # Test unversioned checkout. 311 # Test unversioned checkout.
296 self.parseGclient( 312 self.parseGclient(
297 ['sync', '--deps', 'mac', '--jobs', '8'], 313 ['sync', '--deps', 'mac', '--jobs', '1'],
298 ['running', 'running']) 314 ['running', 'running'])
299 # TODO(maruel): http://crosbug.com/3582 hooks run even if not matching, must 315 # TODO(maruel): http://crosbug.com/3582 hooks run even if not matching, must
300 # add sync parsing to get the list of updated files. 316 # add sync parsing to get the list of updated files.
301 tree = self.mangle_git_tree(('repo_1@2', 'src'), 317 tree = self.mangle_git_tree(('repo_1@2', 'src'),
302 ('repo_2@1', 'src/repo2'), 318 ('repo_2@1', 'src/repo2'),
303 ('repo_3@2', 'src/repo2/repo_renamed')) 319 ('repo_3@2', 'src/repo2/repo_renamed'))
304 tree['src/git_hooked1'] = 'git_hooked1' 320 tree['src/git_hooked1'] = 'git_hooked1'
305 tree['src/git_hooked2'] = 'git_hooked2' 321 tree['src/git_hooked2'] = 'git_hooked2'
306 self.assertTree(tree) 322 self.assertTree(tree)
307 323
308 # Manually remove git_hooked1 before synching to make sure it's not 324 # Manually remove git_hooked1 before synching to make sure it's not
309 # recreated. 325 # recreated.
310 os.remove(join(self.root_dir, 'src', 'git_hooked1')) 326 os.remove(join(self.root_dir, 'src', 'git_hooked1'))
311 327
312 # Test incremental versioned sync: sync backward. 328 # Test incremental versioned sync: sync backward.
313 self.parseGclient( 329 self.parseGclient(
314 ['sync', '--jobs', '1', '--revision', 330 ['sync', '--jobs', '1', '--revision',
315 'src@' + self.githash('repo_1', 1), '--jobs', '1', 331 'src@' + self.githash('repo_1', 1),
316 '--deps', 'mac', '--delete_unversioned_trees'], 332 '--deps', 'mac', '--delete_unversioned_trees'],
317 ['deleting']) 333 ['deleting'])
318 tree = self.mangle_git_tree(('repo_1@1', 'src'), 334 tree = self.mangle_git_tree(('repo_1@1', 'src'),
319 ('repo_2@2', 'src/repo2'), 335 ('repo_2@2', 'src/repo2'),
320 ('repo_3@1', 'src/repo2/repo3'), 336 ('repo_3@1', 'src/repo2/repo3'),
321 ('repo_4@2', 'src/repo4')) 337 ('repo_4@2', 'src/repo4'))
322 tree['src/git_hooked2'] = 'git_hooked2' 338 tree['src/git_hooked2'] = 'git_hooked2'
323 self.assertTree(tree) 339 self.assertTree(tree)
324 # Test incremental sync: delete-unversioned_trees isn't there. 340 # Test incremental sync: delete-unversioned_trees isn't there.
325 self.parseGclient( 341 self.parseGclient(
326 ['sync', '--deps', 'mac', '--jobs', '8'], 342 ['sync', '--deps', 'mac', '--jobs', '1'],
327 ['running', 'running']) 343 ['running', 'running'])
328 tree = self.mangle_git_tree(('repo_1@2', 'src'), 344 tree = self.mangle_git_tree(('repo_1@2', 'src'),
329 ('repo_2@1', 'src/repo2'), 345 ('repo_2@1', 'src/repo2'),
330 ('repo_3@1', 'src/repo2/repo3'), 346 ('repo_3@1', 'src/repo2/repo3'),
331 ('repo_3@2', 'src/repo2/repo_renamed'), 347 ('repo_3@2', 'src/repo2/repo_renamed'),
332 ('repo_4@2', 'src/repo4')) 348 ('repo_4@2', 'src/repo4'))
333 tree['src/git_hooked1'] = 'git_hooked1' 349 tree['src/git_hooked1'] = 'git_hooked1'
334 tree['src/git_hooked2'] = 'git_hooked2' 350 tree['src/git_hooked2'] = 'git_hooked2'
335 self.assertTree(tree) 351 self.assertTree(tree)
336 352
(...skipping 23 matching lines...) Expand all
360 self.parseGclient( 376 self.parseGclient(
361 ['sync', '--deps', 'mac', '--jobs', '1', 377 ['sync', '--deps', 'mac', '--jobs', '1',
362 '--revision', self.githash('repo_1', 1)], 378 '--revision', self.githash('repo_1', 1)],
363 []) 379 [])
364 tree = self.mangle_git_tree(('repo_1@1', 'src'), 380 tree = self.mangle_git_tree(('repo_1@1', 'src'),
365 ('repo_2@2', 'src/repo2'), 381 ('repo_2@2', 'src/repo2'),
366 ('repo_3@1', 'src/repo2/repo3'), 382 ('repo_3@1', 'src/repo2/repo3'),
367 ('repo_4@2', 'src/repo4')) 383 ('repo_4@2', 'src/repo4'))
368 self.assertTree(tree) 384 self.assertTree(tree)
369 385
386 def testSyncJobs(self):
387 if not self.enabled:
388 return
389 # TODO(maruel): safesync.
390 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
391 # Test unversioned checkout.
392 self.parseGclient(
393 ['sync', '--deps', 'mac', '--jobs', '8'],
394 ['running', 'running'],
395 untangle=True)
396 # TODO(maruel): http://crosbug.com/3582 hooks run even if not matching, must
397 # add sync parsing to get the list of updated files.
398 tree = self.mangle_git_tree(('repo_1@2', 'src'),
399 ('repo_2@1', 'src/repo2'),
400 ('repo_3@2', 'src/repo2/repo_renamed'))
401 tree['src/git_hooked1'] = 'git_hooked1'
402 tree['src/git_hooked2'] = 'git_hooked2'
403 self.assertTree(tree)
404
405 # Manually remove git_hooked1 before synching to make sure it's not
406 # recreated.
407 os.remove(join(self.root_dir, 'src', 'git_hooked1'))
408
409 # Test incremental versioned sync: sync backward.
410 # Use --jobs 1 otherwise the order is not deterministic.
411 self.parseGclient(
412 ['sync', '--revision', 'src@' + self.githash('repo_1', 1),
413 '--deps', 'mac', '--delete_unversioned_trees', '--jobs', '1'],
414 ['deleting'],
415 untangle=True)
416 tree = self.mangle_git_tree(('repo_1@1', 'src'),
417 ('repo_2@2', 'src/repo2'),
418 ('repo_3@1', 'src/repo2/repo3'),
419 ('repo_4@2', 'src/repo4'))
420 tree['src/git_hooked2'] = 'git_hooked2'
421 self.assertTree(tree)
422 # Test incremental sync: delete-unversioned_trees isn't there.
423 self.parseGclient(
424 ['sync', '--deps', 'mac', '--jobs', '8'],
425 ['running', 'running'],
426 untangle=True)
427 tree = self.mangle_git_tree(('repo_1@2', 'src'),
428 ('repo_2@1', 'src/repo2'),
429 ('repo_3@1', 'src/repo2/repo3'),
430 ('repo_3@2', 'src/repo2/repo_renamed'),
431 ('repo_4@2', 'src/repo4'))
432 tree['src/git_hooked1'] = 'git_hooked1'
433 tree['src/git_hooked2'] = 'git_hooked2'
434 self.assertTree(tree)
435
370 def testRunHooks(self): 436 def testRunHooks(self):
371 if not self.enabled: 437 if not self.enabled:
372 return 438 return
373 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) 439 self.gclient(['config', self.git_base + 'repo_1', '--name', 'src'])
374 self.gclient(['sync', '--deps', 'mac']) 440 self.gclient(['sync', '--deps', 'mac'])
375 tree = self.mangle_git_tree(('repo_1@2', 'src'), 441 tree = self.mangle_git_tree(('repo_1@2', 'src'),
376 ('repo_2@1', 'src/repo2'), 442 ('repo_2@1', 'src/repo2'),
377 ('repo_3@2', 'src/repo2/repo_renamed')) 443 ('repo_3@2', 'src/repo2/repo_renamed'))
378 tree['src/git_hooked1'] = 'git_hooked1' 444 tree['src/git_hooked1'] = 'git_hooked1'
379 tree['src/git_hooked2'] = 'git_hooked2' 445 tree['src/git_hooked2'] = 'git_hooked2'
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
840 906
841 if '-c' in sys.argv: 907 if '-c' in sys.argv:
842 COVERAGE = True 908 COVERAGE = True
843 sys.argv.remove('-c') 909 sys.argv.remove('-c')
844 if os.path.exists('.coverage'): 910 if os.path.exists('.coverage'):
845 os.remove('.coverage') 911 os.remove('.coverage')
846 os.environ['COVERAGE_FILE'] = os.path.join( 912 os.environ['COVERAGE_FILE'] = os.path.join(
847 os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 913 os.path.dirname(os.path.dirname(os.path.abspath(__file__))),
848 '.coverage') 914 '.coverage')
849 unittest.main() 915 unittest.main()
OLDNEW
« no previous file with comments | « tests/gclient_scm_test.py ('k') | tests/gclient_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698