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

Side by Side Diff: tests/compiler/dart2js/js_spec_string_test.dart

Issue 2345083003: dart2js: run dartfmt on tests (Closed)
Patch Set: Created 4 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 // Unit test of the [NativeBehavior.processSpecString] method. 5 // Unit test of the [NativeBehavior.processSpecString] method.
6 6
7 import 'package:expect/expect.dart'; 7 import 'package:expect/expect.dart';
8 import 'package:compiler/src/native/native.dart'; 8 import 'package:compiler/src/native/native.dart';
9 import 'package:compiler/src/diagnostics/diagnostic_listener.dart'; 9 import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
10 import 'package:compiler/src/diagnostics/messages.dart'; 10 import 'package:compiler/src/diagnostics/messages.dart';
11 import 'package:compiler/src/universe/side_effects.dart' 11 import 'package:compiler/src/universe/side_effects.dart' show SideEffects;
12 show SideEffects;
13 12
14 const OBJECT = 'Object'; 13 const OBJECT = 'Object';
15 const NULL = 'Null'; 14 const NULL = 'Null';
16 15
17 class Listener extends DiagnosticReporter { 16 class Listener extends DiagnosticReporter {
18 String errorMessage; 17 String errorMessage;
19 internalError(spannable, message) { 18 internalError(spannable, message) {
20 errorMessage = message; 19 errorMessage = message;
21 throw "error"; 20 throw "error";
22 } 21 }
23 22
24 reportError(message, [infos = const <DiagnosticMessage>[]]) { 23 reportError(message, [infos = const <DiagnosticMessage>[]]) {
25 errorMessage = 24 errorMessage =
26 '${message.message.arguments}'; // E.g. "{text: Duplicate tag 'new'.}" 25 '${message.message.arguments}'; // E.g. "{text: Duplicate tag 'new'.}"
27 throw "error"; 26 throw "error";
28 } 27 }
29 28
30 @override 29 @override
31 DiagnosticMessage createMessage(spannable, messageKind, 30 DiagnosticMessage createMessage(spannable, messageKind,
32 [arguments = const {}]) { 31 [arguments = const {}]) {
33 return new DiagnosticMessage(null, spannable, 32 return new DiagnosticMessage(null, spannable,
34 MessageTemplate.TEMPLATES[messageKind].message(arguments)); 33 MessageTemplate.TEMPLATES[messageKind].message(arguments));
35 } 34 }
36 35
37 noSuchMethod(_) => null; 36 noSuchMethod(_) => null;
38 } 37 }
39 38
40 void test(String specString, 39 void test(String specString,
41 {List returns, 40 {List returns,
42 List creates, 41 List creates,
43 SideEffects expectedSideEffects, 42 SideEffects expectedSideEffects,
44 NativeThrowBehavior expectedThrows, 43 NativeThrowBehavior expectedThrows,
45 bool expectedNew, 44 bool expectedNew,
46 bool expectedGvn, 45 bool expectedGvn,
47 bool expectError: false}) { 46 bool expectError: false}) {
48 List actualReturns = []; 47 List actualReturns = [];
49 List actualCreates = []; 48 List actualCreates = [];
50 SideEffects actualSideEffects; 49 SideEffects actualSideEffects;
51 NativeThrowBehavior actualThrows; 50 NativeThrowBehavior actualThrows;
52 bool actualNew; 51 bool actualNew;
53 bool actualGvn; 52 bool actualGvn;
54 Listener listener = new Listener(); 53 Listener listener = new Listener();
55 try { 54 try {
56 NativeBehavior.processSpecString( 55 NativeBehavior.processSpecString(listener, null, specString,
57 listener, 56 setSideEffects: (effects) {
Siggi Cherem (dart-lang) 2016/09/16 20:55:24 :( - maybe use => notation instead? setThrows: (b
Harry Terkelsen 2016/09/16 21:44:04 Done.
58 null, 57 actualSideEffects = effects;
59 specString, 58 }, setThrows: (b) {
60 setSideEffects: (effects) { actualSideEffects = effects; }, 59 actualThrows = b;
61 setThrows: (b) { actualThrows = b; }, 60 }, setIsAllocation: (b) {
62 setIsAllocation: (b) { actualNew = b; }, 61 actualNew = b;
63 setUseGvn: (b) { actualGvn = b; }, 62 }, setUseGvn: (b) {
63 actualGvn = b;
64 },
64 resolveType: (t) => t, 65 resolveType: (t) => t,
65 typesReturned: actualReturns, typesInstantiated: actualCreates, 66 typesReturned: actualReturns,
66 objectType: OBJECT, nullType: NULL); 67 typesInstantiated: actualCreates,
68 objectType: OBJECT,
69 nullType: NULL);
67 } catch (e) { 70 } catch (e) {
68 Expect.isTrue(expectError, 'Unexpected error "$specString"'); 71 Expect.isTrue(expectError, 'Unexpected error "$specString"');
69 Expect.isNotNull(listener.errorMessage, 'Error message expected.'); 72 Expect.isNotNull(listener.errorMessage, 'Error message expected.');
70 return; 73 return;
71 } 74 }
72 Expect.isFalse(expectError, 'Missing error for "$specString".'); 75 Expect.isFalse(expectError, 'Missing error for "$specString".');
73 Expect.isNull(listener.errorMessage, 'Unexpected error.'); 76 Expect.isNull(listener.errorMessage, 'Unexpected error.');
74 if (returns != null) { 77 if (returns != null) {
75 Expect.listEquals(returns, actualReturns, 'Unexpected returns.'); 78 Expect.listEquals(returns, actualReturns, 'Unexpected returns.');
76 } 79 }
77 if (creates != null) { 80 if (creates != null) {
78 Expect.listEquals(creates, actualCreates, 'Unexpected creates.'); 81 Expect.listEquals(creates, actualCreates, 'Unexpected creates.');
79 } 82 }
80 Expect.equals(expectedSideEffects, actualSideEffects); 83 Expect.equals(expectedSideEffects, actualSideEffects);
81 Expect.equals(expectedThrows, actualThrows); 84 Expect.equals(expectedThrows, actualThrows);
82 Expect.equals(expectedNew, actualNew); 85 Expect.equals(expectedNew, actualNew);
83 Expect.equals(expectedGvn, actualGvn); 86 Expect.equals(expectedGvn, actualGvn);
84 } 87 }
85 88
86 void testWithSideEffects(String specString, 89 void testWithSideEffects(String specString,
87 {List returns, 90 {List returns, List creates, bool expectError: false}) {
88 List creates,
89 bool expectError: false}) {
90
91 void sideEffectsTest(String newSpecString, SideEffects expectedSideEffects, 91 void sideEffectsTest(String newSpecString, SideEffects expectedSideEffects,
92 {bool sideEffectsExpectError}) { 92 {bool sideEffectsExpectError}) {
93 test(newSpecString, 93 test(newSpecString,
94 returns: returns, 94 returns: returns,
95 creates: creates, 95 creates: creates,
96 expectedSideEffects: expectedSideEffects, 96 expectedSideEffects: expectedSideEffects,
97 expectError: sideEffectsExpectError == null 97 expectError: sideEffectsExpectError == null
98 ? expectError 98 ? expectError
99 : sideEffectsExpectError); 99 : sideEffectsExpectError);
100 } 100 }
101 101
102 SideEffects emptySideEffects = new SideEffects.empty(); 102 SideEffects emptySideEffects = new SideEffects.empty();
103 sideEffectsTest(specString + "effects:none;depends:none;", 103 sideEffectsTest(specString + "effects:none;depends:none;", emptySideEffects);
104 emptySideEffects); 104 sideEffectsTest(specString + "depends:none;effects:none;", emptySideEffects);
105 sideEffectsTest(specString + "depends:none;effects:none;", 105 sideEffectsTest("effects:none;depends:none;" + specString, emptySideEffects);
106 emptySideEffects); 106 sideEffectsTest("depends:none;effects:none;" + specString, emptySideEffects);
107 sideEffectsTest("effects:none;depends:none;" + specString,
108 emptySideEffects);
109 sideEffectsTest("depends:none;effects:none;" + specString,
110 emptySideEffects);
111 107
112 SideEffects effects = new SideEffects(); 108 SideEffects effects = new SideEffects();
113 effects.clearChangesIndex(); 109 effects.clearChangesIndex();
114 effects.clearAllDependencies(); 110 effects.clearAllDependencies();
115 sideEffectsTest(specString + "effects:no-index;depends:none;", effects); 111 sideEffectsTest(specString + "effects:no-index;depends:none;", effects);
116 112
117 effects = new SideEffects(); 113 effects = new SideEffects();
118 effects.clearAllSideEffects(); 114 effects.clearAllSideEffects();
119 effects.clearDependsOnIndexStore(); 115 effects.clearDependsOnIndexStore();
120 sideEffectsTest(specString + "effects:none;depends:no-index;", effects); 116 sideEffectsTest(specString + "effects:none;depends:no-index;", effects);
121 117
122 effects = new SideEffects(); 118 effects = new SideEffects();
123 effects.clearChangesInstanceProperty(); 119 effects.clearChangesInstanceProperty();
124 effects.clearChangesStaticProperty(); 120 effects.clearChangesStaticProperty();
125 effects.clearAllDependencies(); 121 effects.clearAllDependencies();
126 sideEffectsTest(specString + "effects:no-instance,no-static;depends:none;", 122 sideEffectsTest(
127 effects); 123 specString + "effects:no-instance,no-static;depends:none;", effects);
128 124
129 effects = new SideEffects(); 125 effects = new SideEffects();
130 effects.clearAllSideEffects(); 126 effects.clearAllSideEffects();
131 effects.clearDependsOnInstancePropertyStore(); 127 effects.clearDependsOnInstancePropertyStore();
132 effects.clearDependsOnStaticPropertyStore(); 128 effects.clearDependsOnStaticPropertyStore();
133 sideEffectsTest(specString + "effects:none;depends:no-instance,no-static;", 129 sideEffectsTest(
134 effects); 130 specString + "effects:none;depends:no-instance,no-static;", effects);
135 131
136 effects = new SideEffects(); 132 effects = new SideEffects();
137 effects.clearChangesInstanceProperty(); 133 effects.clearChangesInstanceProperty();
138 effects.clearChangesStaticProperty(); 134 effects.clearChangesStaticProperty();
139 effects.clearDependsOnIndexStore(); 135 effects.clearDependsOnIndexStore();
140 sideEffectsTest( 136 sideEffectsTest(
141 specString + "effects:no-instance,no-static;depends:no-index;", effects); 137 specString + "effects:no-instance,no-static;depends:no-index;", effects);
142 138
143 effects = new SideEffects(); 139 effects = new SideEffects();
144 effects.clearChangesIndex(); 140 effects.clearChangesIndex();
145 effects.clearDependsOnInstancePropertyStore(); 141 effects.clearDependsOnInstancePropertyStore();
146 effects.clearDependsOnStaticPropertyStore(); 142 effects.clearDependsOnStaticPropertyStore();
147 sideEffectsTest( 143 sideEffectsTest(
148 specString + "effects:no-index;depends:no-instance,no-static;", effects); 144 specString + "effects:no-index;depends:no-instance,no-static;", effects);
149 145
150 effects = new SideEffects(); 146 effects = new SideEffects();
151 effects.clearChangesIndex(); 147 effects.clearChangesIndex();
152 sideEffectsTest(specString + "effects:no-index;depends:all;", effects); 148 sideEffectsTest(specString + "effects:no-index;depends:all;", effects);
153 149
154 effects = new SideEffects(); 150 effects = new SideEffects();
155 effects.clearDependsOnIndexStore(); 151 effects.clearDependsOnIndexStore();
156 sideEffectsTest(specString + "effects:all;depends:no-index;", effects); 152 sideEffectsTest(specString + "effects:all;depends:no-index;", effects);
157 153
158 effects = new SideEffects(); 154 effects = new SideEffects();
159 effects.clearChangesInstanceProperty(); 155 effects.clearChangesInstanceProperty();
160 effects.clearChangesStaticProperty(); 156 effects.clearChangesStaticProperty();
161 sideEffectsTest(specString + "effects:no-instance,no-static;depends:all;", 157 sideEffectsTest(
162 effects); 158 specString + "effects:no-instance,no-static;depends:all;", effects);
163 159
164 effects = new SideEffects(); 160 effects = new SideEffects();
165 effects.clearDependsOnInstancePropertyStore(); 161 effects.clearDependsOnInstancePropertyStore();
166 effects.clearDependsOnStaticPropertyStore(); 162 effects.clearDependsOnStaticPropertyStore();
167 sideEffectsTest(specString + "effects:all;depends:no-instance,no-static;", 163 sideEffectsTest(
168 effects); 164 specString + "effects:all;depends:no-instance,no-static;", effects);
169 165
170 sideEffectsTest(specString + "effects:no-instance,no-static;", 166 sideEffectsTest(specString + "effects:no-instance,no-static;", effects,
171 effects, 167 sideEffectsExpectError: true);
172 sideEffectsExpectError: true);
173 168
174 sideEffectsTest(specString + "depends:no-instance,no-static;", 169 sideEffectsTest(specString + "depends:no-instance,no-static;", effects,
175 effects, 170 sideEffectsExpectError: true);
176 sideEffectsExpectError: true);
177 171
178 sideEffectsTest(specString + "effects:none;", 172 sideEffectsTest(specString + "effects:none;", effects,
179 effects, 173 sideEffectsExpectError: true);
180 sideEffectsExpectError: true);
181 174
182 sideEffectsTest(specString + "depends:all;", 175 sideEffectsTest(specString + "depends:all;", effects,
183 effects, 176 sideEffectsExpectError: true);
184 sideEffectsExpectError: true);
185 177
186 sideEffectsTest(specString + "effects:no-instance,no-static;depends:foo;", 178 sideEffectsTest(
187 effects, 179 specString + "effects:no-instance,no-static;depends:foo;", effects,
188 sideEffectsExpectError: true); 180 sideEffectsExpectError: true);
189 181
190 sideEffectsTest(specString + "effects:foo;depends:no-instance,no-static;", 182 sideEffectsTest(
191 effects, 183 specString + "effects:foo;depends:no-instance,no-static;", effects,
192 sideEffectsExpectError: true); 184 sideEffectsExpectError: true);
193 185
194 sideEffectsTest(specString + "effects:all;depends:foo", 186 sideEffectsTest(specString + "effects:all;depends:foo", effects,
195 effects, 187 sideEffectsExpectError: true);
196 sideEffectsExpectError: true);
197 188
198 sideEffectsTest(specString + "effects:foo;depends:none;", 189 sideEffectsTest(specString + "effects:foo;depends:none;", effects,
199 effects, 190 sideEffectsExpectError: true);
200 sideEffectsExpectError: true);
201 191
202 sideEffectsTest(specString + "effects:;depends:none;", 192 sideEffectsTest(specString + "effects:;depends:none;", effects,
203 effects, 193 sideEffectsExpectError: true);
204 sideEffectsExpectError: true);
205 194
206 sideEffectsTest(specString + "effects:all;depends:;", 195 sideEffectsTest(specString + "effects:all;depends:;", effects,
207 effects, 196 sideEffectsExpectError: true);
208 sideEffectsExpectError: true);
209 } 197 }
210 198
211 void main() { 199 void main() {
212 test('void', returns: [], creates: []); 200 test('void', returns: [], creates: []);
213 test('', returns: [OBJECT, NULL], creates: []); 201 test('', returns: [OBJECT, NULL], creates: []);
214 test('var', returns: [OBJECT, NULL], creates: []); 202 test('var', returns: [OBJECT, NULL], creates: []);
215 test('A', returns: ['A'], creates: ['A']); 203 test('A', returns: ['A'], creates: ['A']);
216 test('A|B', returns: ['A', 'B'], creates: ['A', 'B']); 204 test('A|B', returns: ['A', 'B'], creates: ['A', 'B']);
217 test('A|B|C', returns: ['A', 'B', 'C'], creates: ['A', 'B', 'C']); 205 test('A|B|C', returns: ['A', 'B', 'C'], creates: ['A', 'B', 'C']);
218 206
(...skipping 16 matching lines...) Expand all
235 test('returns:var;creates:', returns: [OBJECT, NULL], creates: []); 223 test('returns:var;creates:', returns: [OBJECT, NULL], creates: []);
236 test('returns:A;creates:', returns: ['A'], creates: []); 224 test('returns:A;creates:', returns: ['A'], creates: []);
237 test('returns:A|B;creates:;', returns: ['A', 'B'], creates: []); 225 test('returns:A|B;creates:;', returns: ['A', 'B'], creates: []);
238 test('returns:A|B|C;creates:;', returns: ['A', 'B', 'C'], creates: []); 226 test('returns:A|B|C;creates:;', returns: ['A', 'B', 'C'], creates: []);
239 227
240 test('returns:void;creates:A;', returns: [], creates: ['A']); 228 test('returns:void;creates:A;', returns: [], creates: ['A']);
241 test('returns:;creates:A|B;', returns: [OBJECT, NULL], creates: ['A', 'B']); 229 test('returns:;creates:A|B;', returns: [OBJECT, NULL], creates: ['A', 'B']);
242 test('returns:var;creates:A|B|C;', 230 test('returns:var;creates:A|B|C;',
243 returns: [OBJECT, NULL], creates: ['A', 'B', 'C']); 231 returns: [OBJECT, NULL], creates: ['A', 'B', 'C']);
244 test('returns:A; creates:A|B|C; ', returns: ['A'], creates: ['A', 'B', 'C']); 232 test('returns:A; creates:A|B|C; ', returns: ['A'], creates: ['A', 'B', 'C']);
245 test(' returns:A|B; creates:A|C;', 233 test(' returns:A|B; creates:A|C;', returns: ['A', 'B'], creates: ['A', 'C']);
246 returns: ['A', 'B'], creates: ['A', 'C']);
247 test(' returns:A|B|C; creates:A; ', 234 test(' returns:A|B|C; creates:A; ',
248 returns: ['A', 'B', 'C'], creates: ['A']); 235 returns: ['A', 'B', 'C'], creates: ['A']);
249 236
250 testWithSideEffects('returns:void;', returns: [], creates: []); 237 testWithSideEffects('returns:void;', returns: [], creates: []);
251 testWithSideEffects('returns:void;', returns: [], creates: []); 238 testWithSideEffects('returns:void;', returns: [], creates: []);
252 testWithSideEffects('returns:;', returns: [OBJECT, NULL], creates: []); 239 testWithSideEffects('returns:;', returns: [OBJECT, NULL], creates: []);
253 testWithSideEffects('returns:var;', returns: [OBJECT, NULL], creates: []); 240 testWithSideEffects('returns:var;', returns: [OBJECT, NULL], creates: []);
254 testWithSideEffects('returns:A;', returns: ['A'], creates: ['A']); 241 testWithSideEffects('returns:A;', returns: ['A'], creates: ['A']);
255 testWithSideEffects('returns:A|B;', 242 testWithSideEffects('returns:A|B;', returns: ['A', 'B'], creates: ['A', 'B']);
256 returns: ['A', 'B'], creates: ['A', 'B']);
257 testWithSideEffects('returns:A|B|C;', 243 testWithSideEffects('returns:A|B|C;',
258 returns: ['A', 'B', 'C'], creates: ['A', 'B', 'C']); 244 returns: ['A', 'B', 'C'], creates: ['A', 'B', 'C']);
259 testWithSideEffects('returns: A| B |C ;', 245 testWithSideEffects('returns: A| B |C ;',
260 returns: ['A', 'B', 'C'], creates: ['A', 'B', 'C']); 246 returns: ['A', 'B', 'C'], creates: ['A', 'B', 'C']);
261 247
262 testWithSideEffects('creates:void;', expectError: true); 248 testWithSideEffects('creates:void;', expectError: true);
263 testWithSideEffects('creates:;', creates: []); 249 testWithSideEffects('creates:;', creates: []);
264 testWithSideEffects('creates:var;', creates: []); 250 testWithSideEffects('creates:var;', creates: []);
265 testWithSideEffects('creates:A;', returns: [], creates: ['A']); 251 testWithSideEffects('creates:A;', returns: [], creates: ['A']);
266 testWithSideEffects('creates:A|B;', returns: [], creates: ['A', 'B']); 252 testWithSideEffects('creates:A|B;', returns: [], creates: ['A', 'B']);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 test('gvn:false', expectedGvn: false); 292 test('gvn:false', expectedGvn: false);
307 test('returns:A;gvn:true', returns: ['A'], expectedGvn: true); 293 test('returns:A;gvn:true', returns: ['A'], expectedGvn: true);
308 test(' gvn : true ; returns:A;', returns: ['A'], expectedGvn: true); 294 test(' gvn : true ; returns:A;', returns: ['A'], expectedGvn: true);
309 test('gvn:true;returns:A;gvn:true', expectError: true); 295 test('gvn:true;returns:A;gvn:true', expectError: true);
310 296
311 test('gvn: true; new: true', expectError: true); 297 test('gvn: true; new: true', expectError: true);
312 test('gvn: true; new: false', expectedGvn: true, expectedNew: false); 298 test('gvn: true; new: false', expectedGvn: true, expectedNew: false);
313 test('gvn: false; new: true', expectedGvn: false, expectedNew: true); 299 test('gvn: false; new: true', expectedGvn: false, expectedNew: true);
314 test('gvn: false; new: false', expectedGvn: false, expectedNew: false); 300 test('gvn: false; new: false', expectedGvn: false, expectedNew: false);
315 } 301 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698