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

Side by Side Diff: tests/standalone/io/raw_secure_socket_test.dart

Issue 1319703002: Breaking Change: merge BoringSSL branch into master (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 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
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 // VMOptions= 5 // VMOptions=
6 // VMOptions=--short_socket_read 6 // VMOptions=--short_socket_read
7 // VMOptions=--short_socket_write 7 // VMOptions=--short_socket_write
8 // VMOptions=--short_socket_read --short_socket_write 8 // VMOptions=--short_socket_read --short_socket_write
9 9
10 import "package:expect/expect.dart"; 10 import "package:expect/expect.dart";
11 import "package:path/path.dart"; 11 import "package:path/path.dart";
12 import "dart:async"; 12 import "dart:async";
13 import "dart:io"; 13 import "dart:io";
14 import "dart:isolate"; 14 import "dart:isolate";
15 15
16 Future<HttpServer> startServer() { 16 String localFile(path) => Platform.script.resolve(path).toFilePath();
17 return HttpServer.bindSecure(
18 "localhost",
19 0,
20 backlog: 5,
21 certificateName: 'localhost_cert').then((server) {
22 server.listen((HttpRequest request) {
23 request.listen(
24 (_) { },
25 onDone: () {
26 request.response.contentLength = 100;
27 for (int i = 0; i < 10; i++) {
28 request.response.add([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
29 }
30 request.response.close();
31 });
32 });
33 return server;
34 });
35 }
36 17
37 void InitializeSSL() { 18 SecurityContext serverContext = new SecurityContext()
38 var testPkcertDatabase = Platform.script.resolve('pkcert').toFilePath(); 19 ..useCertificateChain(localFile('certificates/server_chain.pem'))
39 SecureSocket.initialize(database: testPkcertDatabase, 20 ..usePrivateKey(localFile('certificates/server_key.pem'),
40 password: 'dartdart'); 21 password: 'dartdart');
41 }
42 22
43 void main() { 23 SecurityContext clientContext = new SecurityContext()
24 ..setTrustedCertificates(file: localFile('certificates/trusted_certs.pem'));
25
26 main() async {
44 List<int> message = "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n".codeUnits; 27 List<int> message = "GET / HTTP/1.0\r\nHost: localhost\r\n\r\n".codeUnits;
45 int written = 0; 28 int written = 0;
46 List<int> body = <int>[]; 29 List<int> body = <int>[];
47 InitializeSSL(); 30 var server = await HttpServer.bindSecure(
48 startServer().then((server) { 31 "localhost",
49 RawSecureSocket.connect("localhost", server.port).then((socket) { 32 0,
50 socket.listen( 33 serverContext,
51 (RawSocketEvent event) { 34 backlog: 5);
52 switch (event) { 35 server.listen((HttpRequest request) async {
53 case RawSocketEvent.READ: 36 await request.drain();
54 body.addAll(socket.read()); 37 request.response.contentLength = 100;
55 break; 38 for (int i = 0; i < 10; i++) {
56 case RawSocketEvent.WRITE: 39 request.response.add([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
57 written += 40 }
58 socket.write(message, written, message.length - written); 41 request.response.close();
59 if (written < message.length) { 42 });
60 socket.writeEventsEnabled = true; 43 var socket = await RawSecureSocket.connect("localhost",
61 } else { 44 server.port,
62 socket.shutdown(SocketDirection.SEND); 45 context: clientContext);
63 } 46 socket.listen((RawSocketEvent event) {
64 break; 47 switch (event) {
65 case RawSocketEvent.READ_CLOSED: 48 case RawSocketEvent.READ:
66 Expect.isTrue(body.length > 100, "$body\n${body.length}"); 49 body.addAll(socket.read());
67 Expect.equals(72, body[0]); 50 break;
68 Expect.equals(9, body[body.length - 1]); 51 case RawSocketEvent.WRITE:
69 server.close(); 52 written +=
70 break; 53 socket.write(message, written, message.length - written);
71 default: throw "Unexpected event $event"; 54 if (written < message.length) {
72 } 55 socket.writeEventsEnabled = true;
73 }, 56 } else {
74 onError: (e, trace) { 57 socket.shutdown(SocketDirection.SEND);
75 String msg = "onError handler of RawSecureSocket stream hit $e"; 58 }
76 if (trace != null) msg += "\nStackTrace: $trace"; 59 break;
77 Expect.fail(msg); 60 case RawSocketEvent.READ_CLOSED:
78 }); 61 Expect.isTrue(body.length > 100, "$body\n${body.length}");
79 }); 62 Expect.equals(72, body[0]);
63 Expect.equals(9, body[body.length - 1]);
64 server.close();
65 break;
66 default: throw "Unexpected event $event";
67 }
68 }, onError: (e, trace) {
69 String msg = "onError handler of RawSecureSocket stream hit $e";
70 if (trace != null) msg += "\nStackTrace: $trace";
71 Expect.fail(msg);
80 }); 72 });
81 } 73 }
OLDNEW
« no previous file with comments | « tests/standalone/io/raw_secure_socket_pause_test.dart ('k') | tests/standalone/io/regress_21160_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698