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

Side by Side Diff: pkg/analyzer_cli/test/message_grouper_test.dart

Issue 1868663002: Update worker mode to use the bazel protos directly instead of json (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: s/setInputBytes/addInputBytes Created 4 years, 8 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
« no previous file with comments | « pkg/analyzer_cli/test/build_mode_test.dart ('k') | pkg/analyzer_cli/test/utils.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
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.
4
5 import 'package:analyzer_cli/src/message_grouper.dart';
6 import 'package:unittest/unittest.dart';
7
8 import 'utils.dart';
9
10 main() {
11 MessageGrouper messageGrouper;
12 TestStdinStream stdinStream;
13
14 setUp(() {
15 stdinStream = new TestStdinStream();
16 messageGrouper = new MessageGrouper(stdinStream);
17 });
18
19 group('message_grouper', () {
20 /// Check that if the message grouper produces the [expectedOutput] in
21 /// response to the corresponding [input].
22 void check(List<int> input, List<List<int>> expectedOutput) {
23 stdinStream.addInputBytes(input);
24 for (var chunk in expectedOutput) {
25 expect(messageGrouper.next, equals(chunk));
26 }
27 }
28
29 /// Make a simple message having the given [length]
30 List<int> makeMessage(int length) {
31 var result = <int>[];
32 for (int i = 0; i < length; i++) {
33 result.add(i & 0xff);
34 }
35 return result;
36 }
37
38 test('Empty message', () {
39 check([0], [[]]);
40 });
41
42 test('Short message', () {
43 check([
44 5,
45 10,
46 20,
47 30,
48 40,
49 50
50 ], [
51 [10, 20, 30, 40, 50]
52 ]);
53 });
54
55 test('Message with 2-byte length', () {
56 var len = 0x155;
57 var msg = makeMessage(len);
58 var encodedLen = [0xd5, 0x02];
59 check([]..addAll(encodedLen)..addAll(msg), [msg]);
60 });
61
62 test('Message with 3-byte length', () {
63 var len = 0x4103;
64 var msg = makeMessage(len);
65 var encodedLen = [0x83, 0x82, 0x01];
66 check([]..addAll(encodedLen)..addAll(msg), [msg]);
67 });
68
69 test('Multiple messages', () {
70 check([
71 2,
72 10,
73 20,
74 2,
75 30,
76 40
77 ], [
78 [10, 20],
79 [30, 40]
80 ]);
81 });
82
83 test('Empty message at start', () {
84 check([
85 0,
86 2,
87 10,
88 20
89 ], [
90 [],
91 [10, 20]
92 ]);
93 });
94
95 test('Empty message at end', () {
96 check([
97 2,
98 10,
99 20,
100 0
101 ], [
102 [10, 20],
103 []
104 ]);
105 });
106
107 test('Empty message in the middle', () {
108 check([
109 2,
110 10,
111 20,
112 0,
113 2,
114 30,
115 40
116 ], [
117 [10, 20],
118 [],
119 [30, 40]
120 ]);
121 });
122 });
123 }
OLDNEW
« no previous file with comments | « pkg/analyzer_cli/test/build_mode_test.dart ('k') | pkg/analyzer_cli/test/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698