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

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

Issue 601933002: Tell the user if the binstub directory is not on their path. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Revise! Created 6 years, 2 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 | « sdk/lib/_internal/pub_generated/test/global/binstubs/warns_if_not_on_path.dart ('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 library test_pub; 1 library test_pub;
2 import 'dart:async'; 2 import 'dart:async';
3 import 'dart:convert'; 3 import 'dart:convert';
4 import 'dart:io'; 4 import 'dart:io';
5 import 'dart:math'; 5 import 'dart:math';
6 import 'package:http/testing.dart'; 6 import 'package:http/testing.dart';
7 import 'package:path/path.dart' as p; 7 import 'package:path/path.dart' as p;
8 import 'package:scheduled_test/scheduled_process.dart'; 8 import 'package:scheduled_test/scheduled_process.dart';
9 import 'package:scheduled_test/scheduled_server.dart'; 9 import 'package:scheduled_test/scheduled_server.dart';
10 import 'package:scheduled_test/scheduled_stream.dart'; 10 import 'package:scheduled_test/scheduled_stream.dart';
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 schedule( 235 schedule(
236 () => renameDir(p.join(sandboxDir, from), p.join(sandboxDir, to)), 236 () => renameDir(p.join(sandboxDir, from), p.join(sandboxDir, to)),
237 'renaming $from to $to'); 237 'renaming $from to $to');
238 } 238 }
239 void scheduleSymlink(String target, String symlink) { 239 void scheduleSymlink(String target, String symlink) {
240 schedule( 240 schedule(
241 () => createSymlink(p.join(sandboxDir, target), p.join(sandboxDir, symlink )), 241 () => createSymlink(p.join(sandboxDir, target), p.join(sandboxDir, symlink )),
242 'symlinking $target to $symlink'); 242 'symlinking $target to $symlink');
243 } 243 }
244 void schedulePub({List args, output, error, outputJson, int exitCode: 244 void schedulePub({List args, output, error, outputJson, int exitCode:
245 exit_codes.SUCCESS}) { 245 exit_codes.SUCCESS, Map<String, String> environment}) {
246 assert(output == null || outputJson == null); 246 assert(output == null || outputJson == null);
247 var pub = startPub(args: args); 247 var pub = startPub(args: args, environment: environment);
248 pub.shouldExit(exitCode); 248 pub.shouldExit(exitCode);
249 var failures = []; 249 var failures = [];
250 var stderr; 250 var stderr;
251 expect( 251 expect(
252 Future.wait( 252 Future.wait(
253 [pub.stdoutStream().toList(), pub.stderrStream().toList()]).then((resu lts) { 253 [pub.stdoutStream().toList(), pub.stderrStream().toList()]).then((resu lts) {
254 var stdout = results[0].join("\n"); 254 var stdout = results[0].join("\n");
255 stderr = results[1].join("\n"); 255 stderr = results[1].join("\n");
256 if (outputJson == null) { 256 if (outputJson == null) {
257 _validateOutput(failures, 'stdout', output, stdout); 257 _validateOutput(failures, 'stdout', output, stdout);
(...skipping 28 matching lines...) Expand all
286 Map getPubTestEnvironment([String tokenEndpoint]) { 286 Map getPubTestEnvironment([String tokenEndpoint]) {
287 var environment = {}; 287 var environment = {};
288 environment['_PUB_TESTING'] = 'true'; 288 environment['_PUB_TESTING'] = 'true';
289 environment['PUB_CACHE'] = _pathInSandbox(cachePath); 289 environment['PUB_CACHE'] = _pathInSandbox(cachePath);
290 environment['_PUB_TEST_SDK_VERSION'] = "0.1.2+3"; 290 environment['_PUB_TEST_SDK_VERSION'] = "0.1.2+3";
291 if (tokenEndpoint != null) { 291 if (tokenEndpoint != null) {
292 environment['_PUB_TEST_TOKEN_ENDPOINT'] = tokenEndpoint.toString(); 292 environment['_PUB_TEST_TOKEN_ENDPOINT'] = tokenEndpoint.toString();
293 } 293 }
294 return environment; 294 return environment;
295 } 295 }
296 ScheduledProcess startPub({List args, Future<String> tokenEndpoint}) { 296 ScheduledProcess startPub({List args, Future<String> tokenEndpoint, Map<String,
297 String> environment}) {
297 ensureDir(_pathInSandbox(appPath)); 298 ensureDir(_pathInSandbox(appPath));
298 var dartBin = Platform.executable; 299 var dartBin = Platform.executable;
299 if (dartBin.contains(Platform.pathSeparator)) { 300 if (dartBin.contains(Platform.pathSeparator)) {
300 dartBin = p.absolute(dartBin); 301 dartBin = p.absolute(dartBin);
301 } 302 }
302 var pubPath = p.join(p.dirname(dartBin), 'snapshots/pub.dart.snapshot'); 303 var pubPath = p.join(p.dirname(dartBin), 'snapshots/pub.dart.snapshot');
303 var dartArgs = [pubPath, '--verbose']; 304 var dartArgs = [pubPath, '--verbose'];
304 dartArgs.addAll(args); 305 dartArgs.addAll(args);
305 if (tokenEndpoint == null) tokenEndpoint = new Future.value(); 306 if (tokenEndpoint == null) tokenEndpoint = new Future.value();
306 var environmentFuture = tokenEndpoint.then((tokenEndpoint) { 307 var environmentFuture = tokenEndpoint.then((tokenEndpoint) {
307 var environment = getPubTestEnvironment(tokenEndpoint); 308 var pubEnvironment = getPubTestEnvironment(tokenEndpoint);
308 if (_hasServer) { 309 if (_hasServer) {
309 return port.then((p) { 310 return port.then((p) {
310 environment['PUB_HOSTED_URL'] = "http://localhost:$p"; 311 pubEnvironment['PUB_HOSTED_URL'] = "http://localhost:$p";
311 return environment; 312 return pubEnvironment;
312 }); 313 });
313 } 314 }
314 return environment; 315 return pubEnvironment;
316 }).then((pubEnvironment) {
317 if (environment != null) pubEnvironment.addAll(environment);
318 return pubEnvironment;
315 }); 319 });
316 return new PubProcess.start( 320 return new PubProcess.start(
317 dartBin, 321 dartBin,
318 dartArgs, 322 dartArgs,
319 environment: environmentFuture, 323 environment: environmentFuture,
320 workingDirectory: _pathInSandbox(appPath), 324 workingDirectory: _pathInSandbox(appPath),
321 description: args.isEmpty ? 'pub' : 'pub ${args.first}'); 325 description: args.isEmpty ? 'pub' : 'pub ${args.first}');
322 } 326 }
323 class PubProcess extends ScheduledProcess { 327 class PubProcess extends ScheduledProcess {
324 Stream<Pair<log.Level, String>> _log; 328 Stream<Pair<log.Level, String>> _log;
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 bool matches(item, Map matchState) { 604 bool matches(item, Map matchState) {
601 if (item is! Pair) return false; 605 if (item is! Pair) return false;
602 return _firstMatcher.matches(item.first, matchState) && 606 return _firstMatcher.matches(item.first, matchState) &&
603 _lastMatcher.matches(item.last, matchState); 607 _lastMatcher.matches(item.last, matchState);
604 } 608 }
605 Description describe(Description description) { 609 Description describe(Description description) {
606 return description.addAll("(", ", ", ")", [_firstMatcher, _lastMatcher]); 610 return description.addAll("(", ", ", ")", [_firstMatcher, _lastMatcher]);
607 } 611 }
608 } 612 }
609 StreamMatcher emitsLines(String output) => inOrder(output.split("\n")); 613 StreamMatcher emitsLines(String output) => inOrder(output.split("\n"));
OLDNEW
« no previous file with comments | « sdk/lib/_internal/pub_generated/test/global/binstubs/warns_if_not_on_path.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698