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

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

Issue 15184003: Add additional Schedule heartbeat calls. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 7 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/lib/src/http.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 // 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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 /// 93 ///
94 /// Subsequent calls to [serve] will replace the previous server. 94 /// Subsequent calls to [serve] will replace the previous server.
95 void serve([List<d.Descriptor> contents]) { 95 void serve([List<d.Descriptor> contents]) {
96 var baseDir = d.dir("serve-dir", contents); 96 var baseDir = d.dir("serve-dir", contents);
97 97
98 schedule(() { 98 schedule(() {
99 return _closeServer().then((_) { 99 return _closeServer().then((_) {
100 return SafeHttpServer.bind("localhost", 0).then((server) { 100 return SafeHttpServer.bind("localhost", 0).then((server) {
101 _server = server; 101 _server = server;
102 server.listen((request) { 102 server.listen((request) {
103 currentSchedule.heartbeat();
103 var response = request.response; 104 var response = request.response;
104 try { 105 try {
105 var path = request.uri.path.replaceFirst("/", ""); 106 var path = request.uri.path.replaceFirst("/", "");
106 currentSchedule.addDebugInfo("[$path] got request");
107 107
108 if (_requestedPaths == null) _requestedPaths = <String>[]; 108 if (_requestedPaths == null) _requestedPaths = <String>[];
109 _requestedPaths.add(path); 109 _requestedPaths.add(path);
110 110
111 response.persistentConnection = false; 111 response.persistentConnection = false;
112 var stream = baseDir.load(path); 112 var stream = baseDir.load(path);
113 113
114 new ByteStream(stream).toBytes().then((data) { 114 new ByteStream(stream).toBytes().then((data) {
115 currentSchedule.addDebugInfo("[$path] sending response:\n" 115 currentSchedule.heartbeat();
116 "${new String.fromCharCodes(data)}");
117 response.statusCode = 200; 116 response.statusCode = 200;
118 response.contentLength = data.length; 117 response.contentLength = data.length;
119 response.add(data); 118 response.add(data);
120 response.close(); 119 response.close();
121 }).catchError((e) { 120 }).catchError((e) {
122 currentSchedule.addDebugInfo("[$path] got load error: $e");
123 response.statusCode = 404; 121 response.statusCode = 404;
124 response.contentLength = 0; 122 response.contentLength = 0;
125 response.close(); 123 response.close();
126 }); 124 });
127 } catch (e) { 125 } catch (e) {
128 currentSchedule.addDebugInfo("[$path] got error: $e");
129 currentSchedule.signalError(e); 126 currentSchedule.signalError(e);
130 response.statusCode = 500; 127 response.statusCode = 500;
131 response.close(); 128 response.close();
132 return; 129 return;
133 } 130 }
134 }); 131 });
135 _portCompleter.complete(_server.port); 132 _portCompleter.complete(_server.port);
136 currentSchedule.onComplete.schedule(_closeServer); 133 currentSchedule.onComplete.schedule(_closeServer);
137 return null; 134 return null;
138 }); 135 });
(...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after
699 bool matches(item, MatchState matchState) { 696 bool matches(item, MatchState matchState) {
700 if (item is! Pair) return false; 697 if (item is! Pair) return false;
701 return _firstMatcher.matches(item.first, matchState) && 698 return _firstMatcher.matches(item.first, matchState) &&
702 _lastMatcher.matches(item.last, matchState); 699 _lastMatcher.matches(item.last, matchState);
703 } 700 }
704 701
705 Description describe(Description description) { 702 Description describe(Description description) {
706 description.addAll("(", ", ", ")", [_firstMatcher, _lastMatcher]); 703 description.addAll("(", ", ", ")", [_firstMatcher, _lastMatcher]);
707 } 704 }
708 } 705 }
OLDNEW
« no previous file with comments | « sdk/lib/_internal/pub/lib/src/http.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698