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

Side by Side Diff: sdk/lib/_internal/pub/test/test_pub.dart

Issue 329303006: Add "--dry-run" to pub upgrade. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 6 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /// Test infrastructure for testing pub. Unlike typical unit tests, most pub 5 /// Test infrastructure for testing pub. Unlike typical unit tests, most pub
6 /// tests are integration tests that stage some stuff on the file system, run 6 /// tests are integration tests that stage some stuff on the file system, run
7 /// pub, and then validate the results. This library provides an API to build 7 /// pub, and then validate the results. This library provides an API to build
8 /// tests like that. 8 /// tests like that.
9 library test_pub; 9 library test_pub;
10 10
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 group(RunCommand.upgrade.name, () => callback(RunCommand.upgrade)); 320 group(RunCommand.upgrade.name, () => callback(RunCommand.upgrade));
321 } 321 }
322 322
323 /// Schedules an invocation of pub [command] and validates that it completes 323 /// Schedules an invocation of pub [command] and validates that it completes
324 /// in an expected way. 324 /// in an expected way.
325 /// 325 ///
326 /// By default, this validates that the command completes successfully and 326 /// By default, this validates that the command completes successfully and
327 /// understands the normal output of a successful pub command. If [warning] is 327 /// understands the normal output of a successful pub command. If [warning] is
328 /// given, it expects the command to complete successfully *and* print 328 /// given, it expects the command to complete successfully *and* print
329 /// [warning] to stderr. If [error] is given, it expects the command to *only* 329 /// [warning] to stderr. If [error] is given, it expects the command to *only*
330 /// print [error] to stderr. 330 /// print [error] to stderr. [output], [error], and [warning] may be strings,
331 /// [RegExp]s, or [Matcher]s.
331 // TODO(rnystrom): Clean up other tests to call this when possible. 332 // TODO(rnystrom): Clean up other tests to call this when possible.
332 void pubCommand(RunCommand command, 333 void pubCommand(RunCommand command,
333 {Iterable<String> args, Pattern output, Pattern error, Pattern warning}) { 334 {Iterable<String> args, output, error, warning}) {
334 if (error != null && warning != null) { 335 if (error != null && warning != null) {
335 throw new ArgumentError("Cannot pass both 'error' and 'warning'."); 336 throw new ArgumentError("Cannot pass both 'error' and 'warning'.");
336 } 337 }
337 338
338 var allArgs = [command.name]; 339 var allArgs = [command.name];
339 if (args != null) allArgs.addAll(args); 340 if (args != null) allArgs.addAll(args);
340 341
341 if (output == null) output = command.success; 342 if (output == null) output = command.success;
342 343
343 var exitCode = null; 344 var exitCode = null;
344 if (error != null) exitCode = 1; 345 if (error != null) exitCode = 1;
345 346
346 // No success output on an error. 347 // No success output on an error.
347 if (error != null) output = null; 348 if (error != null) output = null;
348 if (warning != null) error = warning; 349 if (warning != null) error = warning;
349 350
350 schedulePub(args: allArgs, output: output, error: error, exitCode: exitCode); 351 schedulePub(args: allArgs, output: output, error: error, exitCode: exitCode);
351 } 352 }
352 353
353 void pubGet({Iterable<String> args, Pattern error, 354 void pubGet({Iterable<String> args, error, warning}) {
354 Pattern warning}) {
355 pubCommand(RunCommand.get, args: args, error: error, warning: warning); 355 pubCommand(RunCommand.get, args: args, error: error, warning: warning);
356 } 356 }
357 357
358 void pubUpgrade({Iterable<String> args, Pattern output, Pattern error, 358 void pubUpgrade({Iterable<String> args, output, error, warning}) {
359 Pattern warning}) {
360 pubCommand(RunCommand.upgrade, args: args, output: output, error: error, 359 pubCommand(RunCommand.upgrade, args: args, output: output, error: error,
361 warning: warning); 360 warning: warning);
362 } 361 }
363 362
364 /// Defines an integration test. The [body] should schedule a series of 363 /// Defines an integration test. The [body] should schedule a series of
365 /// operations which will be run asynchronously. 364 /// operations which will be run asynchronously.
366 void integration(String description, void body()) => 365 void integration(String description, void body()) =>
367 _integration(description, body, test); 366 _integration(description, body, test);
368 367
369 /// Like [integration], but causes only this test to run. 368 /// Like [integration], but causes only this test to run.
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
909 _lastMatcher.matches(item.last, matchState); 908 _lastMatcher.matches(item.last, matchState);
910 } 909 }
911 910
912 Description describe(Description description) { 911 Description describe(Description description) {
913 return description.addAll("(", ", ", ")", [_firstMatcher, _lastMatcher]); 912 return description.addAll("(", ", ", ")", [_firstMatcher, _lastMatcher]);
914 } 913 }
915 } 914 }
916 915
917 /// A [StreamMatcher] that matches multiple lines of output. 916 /// A [StreamMatcher] that matches multiple lines of output.
918 StreamMatcher emitsLines(String output) => inOrder(output.split("\n")); 917 StreamMatcher emitsLines(String output) => inOrder(output.split("\n"));
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698