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

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

Issue 311253005: Bind to all available loopback addresses in pub. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: code review 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 d.file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS d.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 library pub_tests; 5 library pub_tests;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:convert'; 8 import 'dart:convert';
9 import 'dart:io'; 9 import 'dart:io';
10 10
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 /// 137 ///
138 /// Unlike [pubServe], this doesn't determine the port number of the server, and 138 /// Unlike [pubServe], this doesn't determine the port number of the server, and
139 /// so may be used to test for errors in the initialization process. 139 /// so may be used to test for errors in the initialization process.
140 /// 140 ///
141 /// Returns the `pub serve` process. 141 /// Returns the `pub serve` process.
142 ScheduledProcess startPubServe({Iterable<String> args, 142 ScheduledProcess startPubServe({Iterable<String> args,
143 bool createWebDir: true}) { 143 bool createWebDir: true}) {
144 var pubArgs = [ 144 var pubArgs = [
145 "serve", 145 "serve",
146 "--port=0", // Use port 0 to get an ephemeral port. 146 "--port=0", // Use port 0 to get an ephemeral port.
147 "--hostname=127.0.0.1", // Force IPv4 on bots. 147 "--hostname=localhost", // Force IPv4 on bots.
Bob Nystrom 2014/06/06 20:22:03 This can just be removed now, right?
nweiz 2014/06/09 20:01:19 Done.
148 "--force-poll", 148 "--force-poll",
149 "--log-admin-url" 149 "--log-admin-url"
150 ]; 150 ];
151 151
152 if (args != null) pubArgs.addAll(args); 152 if (args != null) pubArgs.addAll(args);
153 153
154 // Dart2js can take a long time to compile dart code, so we increase the 154 // Dart2js can take a long time to compile dart code, so we increase the
155 // timeout to cope with that. 155 // timeout to cope with that.
156 currentSchedule.timeout *= 1.5; 156 currentSchedule.timeout *= 1.5;
157 157
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 schedule(() { 199 schedule(() {
200 expect(_ports, isNot(isEmpty)); 200 expect(_ports, isNot(isEmpty));
201 _portsCompleter.complete(); 201 _portsCompleter.complete();
202 }); 202 });
203 203
204 return _pubServer; 204 return _pubServer;
205 } 205 }
206 206
207 /// The regular expression for parsing pub's output line describing the URL for 207 /// The regular expression for parsing pub's output line describing the URL for
208 /// the server. 208 /// the server.
209 final _parsePortRegExp = new RegExp(r"([^ ]+) +on http://127\.0\.0\.1:(\d+)"); 209 final _parsePortRegExp = new RegExp(r"([^ ]+) +on http://localhost:(\d+)");
210 210
211 /// Parses the port number from the "Running admin server on 127.0.0.1:1234" 211 /// Parses the port number from the "Running admin server on localhost:1234"
212 /// line printed by pub serve. 212 /// line printed by pub serve.
213 bool _parseAdminPort(String line) { 213 bool _parseAdminPort(String line) {
214 var match = _parsePortRegExp.firstMatch(line); 214 var match = _parsePortRegExp.firstMatch(line);
215 if (match == null) return false; 215 if (match == null) return false;
216 _adminPort = int.parse(match[2]); 216 _adminPort = int.parse(match[2]);
217 return true; 217 return true;
218 } 218 }
219 219
220 /// Parses the port number from the "Serving blah on 127.0.0.1:1234" line 220 /// Parses the port number from the "Serving blah on localhost:1234" line
221 /// printed by pub serve. 221 /// printed by pub serve.
222 bool _parsePort(String line) { 222 bool _parsePort(String line) {
223 var match = _parsePortRegExp.firstMatch(line); 223 var match = _parsePortRegExp.firstMatch(line);
224 if (match == null) return false; 224 if (match == null) return false;
225 _ports[match[1]] = int.parse(match[2]); 225 _ports[match[1]] = int.parse(match[2]);
226 return true; 226 return true;
227 } 227 }
228 228
229 void endPubServe() { 229 void endPubServe() {
230 _pubServer.kill(); 230 _pubServer.kill();
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 /// Schedules opening a web socket connection to the currently running pub 315 /// Schedules opening a web socket connection to the currently running pub
316 /// serve. 316 /// serve.
317 Future _ensureWebSocket() { 317 Future _ensureWebSocket() {
318 // Use the existing one if already connected. 318 // Use the existing one if already connected.
319 if (_webSocket != null) return new Future.value(); 319 if (_webSocket != null) return new Future.value();
320 320
321 // Server should already be running. 321 // Server should already be running.
322 expect(_pubServer, isNotNull); 322 expect(_pubServer, isNotNull);
323 expect(_adminPort, isNotNull); 323 expect(_adminPort, isNotNull);
324 324
325 return WebSocket.connect("ws://127.0.0.1:$_adminPort").then((socket) { 325 return WebSocket.connect("ws://localhost:$_adminPort").then((socket) {
326 _webSocket = socket; 326 _webSocket = socket;
327 // TODO(rnystrom): Works around #13913. 327 // TODO(rnystrom): Works around #13913.
328 _webSocketBroadcastStream = _webSocket.map(JSON.decode).asBroadcastStream(); 328 _webSocketBroadcastStream = _webSocket.map(JSON.decode).asBroadcastStream();
329 }); 329 });
330 } 330 }
331 331
332 /// Schedules closing the web socket connection to the currently-running pub 332 /// Schedules closing the web socket connection to the currently-running pub
333 /// serve. 333 /// serve.
334 Future closeWebSocket() { 334 Future closeWebSocket() {
335 schedule(() { 335 schedule(() {
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 } 473 }
474 474
475 /// Returns a URL string for the server serving [path] from [root]. 475 /// Returns a URL string for the server serving [path] from [root].
476 /// 476 ///
477 /// If [root] is omitted, defaults to "web". If [path] is omitted, no path is 477 /// If [root] is omitted, defaults to "web". If [path] is omitted, no path is
478 /// included. Unlike [getServerUrl], this should only be called after the ports 478 /// included. Unlike [getServerUrl], this should only be called after the ports
479 /// are known. 479 /// are known.
480 String _getServerUrlSync([String root, String path]) { 480 String _getServerUrlSync([String root, String path]) {
481 if (root == null) root = 'web'; 481 if (root == null) root = 'web';
482 expect(_ports, contains(root)); 482 expect(_ports, contains(root));
483 var url = "http://127.0.0.1:${_ports[root]}"; 483 var url = "http://localhost:${_ports[root]}";
484 if (path != null) url = "$url/$path"; 484 if (path != null) url = "$url/$path";
485 return url; 485 return url;
486 } 486 }
487 487
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698