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

Side by Side Diff: tools/testing/dart/runtime_configuration.dart

Issue 1915853004: Option to output precompiled instructions as a blob for use with mmap instead of assembly for use i… (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 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
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 library runtime_configuration; 5 library runtime_configuration;
6 6
7 import 'compiler_configuration.dart' show CommandArtifact; 7 import 'compiler_configuration.dart' show CommandArtifact;
8 8
9 // TODO(ahe): Remove this import, we can precompute all the values required 9 // TODO(ahe): Remove this import, we can precompute all the values required
10 // from TestSuite once the refactoring is complete. 10 // from TestSuite once the refactoring is complete.
11 import 'test_suite.dart' show TestSuite; 11 import 'test_suite.dart' show TestSuite;
12 12
13 import 'test_runner.dart' show Command, CommandBuilder; 13 import 'test_runner.dart' show Command, CommandBuilder;
14 14
15 // TODO(ahe): I expect this class will become abstract very soon. 15 // TODO(ahe): I expect this class will become abstract very soon.
16 class RuntimeConfiguration { 16 class RuntimeConfiguration {
17 // TODO(ahe): Remove this constructor and move the switch to 17 // TODO(ahe): Remove this constructor and move the switch to
18 // test_options.dart. We probably want to store an instance of 18 // test_options.dart. We probably want to store an instance of
19 // [RuntimeConfiguration] in [configuration] there. 19 // [RuntimeConfiguration] in [configuration] there.
20 factory RuntimeConfiguration(Map configuration) { 20 factory RuntimeConfiguration(Map configuration) {
21 String runtime = configuration['runtime']; 21 String runtime = configuration['runtime'];
22 bool useBlobs = configuration['use_blobs'];
23
22 switch (runtime) { 24 switch (runtime) {
23 case 'ContentShellOnAndroid': 25 case 'ContentShellOnAndroid':
24 case 'DartiumOnAndroid': 26 case 'DartiumOnAndroid':
25 case 'chrome': 27 case 'chrome':
26 case 'chromeOnAndroid': 28 case 'chromeOnAndroid':
27 case 'dartium': 29 case 'dartium':
28 case 'ff': 30 case 'ff':
29 case 'firefox': 31 case 'firefox':
30 case 'ie11': 32 case 'ie11':
31 case 'ie10': 33 case 'ie10':
(...skipping 13 matching lines...) Expand all
45 case 'none': 47 case 'none':
46 return new NoneRuntimeConfiguration(); 48 return new NoneRuntimeConfiguration();
47 49
48 case 'vm': 50 case 'vm':
49 return new StandaloneDartRuntimeConfiguration(); 51 return new StandaloneDartRuntimeConfiguration();
50 52
51 case 'dart_product': 53 case 'dart_product':
52 return new DartProductRuntimeConfiguration(); 54 return new DartProductRuntimeConfiguration();
53 55
54 case 'dart_precompiled': 56 case 'dart_precompiled':
55 return new DartPrecompiledRuntimeConfiguration(); 57 return new DartPrecompiledRuntimeConfiguration(useBlobs: useBlobs);
56 58
57 case 'drt': 59 case 'drt':
58 return new DrtRuntimeConfiguration(); 60 return new DrtRuntimeConfiguration();
59 61
60 default: 62 default:
61 throw "Unknown runtime '$runtime'"; 63 throw "Unknown runtime '$runtime'";
62 } 64 }
63 } 65 }
64 66
65 RuntimeConfiguration._subclass(); 67 RuntimeConfiguration._subclass();
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 augmentedArgs.addAll(arguments); 238 augmentedArgs.addAll(arguments);
237 239
238 return <Command>[ 240 return <Command>[
239 commandBuilder.getVmCommand(suite.dartVmBinaryFileName, 241 commandBuilder.getVmCommand(suite.dartVmBinaryFileName,
240 augmentedArgs, environmentOverrides) 242 augmentedArgs, environmentOverrides)
241 ]; 243 ];
242 } 244 }
243 } 245 }
244 246
245 class DartPrecompiledRuntimeConfiguration extends DartVmRuntimeConfiguration { 247 class DartPrecompiledRuntimeConfiguration extends DartVmRuntimeConfiguration {
248 final bool useBlobs;
249 DartPrecompiledRuntimeConfiguration({bool useBlobs}) : useBlobs = useBlobs;
250
246 List<Command> computeRuntimeCommands( 251 List<Command> computeRuntimeCommands(
247 TestSuite suite, 252 TestSuite suite,
248 CommandBuilder commandBuilder, 253 CommandBuilder commandBuilder,
249 CommandArtifact artifact, 254 CommandArtifact artifact,
250 List<String> arguments, 255 List<String> arguments,
251 Map<String, String> environmentOverrides) { 256 Map<String, String> environmentOverrides) {
252 String script = artifact.filename; 257 String script = artifact.filename;
253 String type = artifact.mimeType; 258 String type = artifact.mimeType;
254 if (script != null && type != 'application/dart-precompiled') { 259 if (script != null && type != 'application/dart-precompiled') {
255 throw "dart_precompiled cannot run files of type '$type'."; 260 throw "dart_precompiled cannot run files of type '$type'.";
256 } 261 }
257 262
258 var augmentedArgs = new List(); 263 var augmentedArgs = new List();
259 augmentedArgs.add("--run-precompiled-snapshot=${artifact.filename}"); 264 augmentedArgs.add("--run-precompiled-snapshot=${artifact.filename}");
265 if (useBlobs) {
266 augmentedArgs.add("--use_blobs");
267 }
260 augmentedArgs.addAll(arguments); 268 augmentedArgs.addAll(arguments);
261 269
262 return <Command>[ 270 return <Command>[
263 commandBuilder.getVmCommand(suite.dartPrecompiledBinaryFileName, 271 commandBuilder.getVmCommand(suite.dartPrecompiledBinaryFileName,
264 augmentedArgs, environmentOverrides) 272 augmentedArgs, environmentOverrides)
265 ]; 273 ];
266 } 274 }
267 } 275 }
268 276
269 /// Temporary runtime configuration for browser runtimes that haven't been 277 /// Temporary runtime configuration for browser runtimes that haven't been
270 /// migrated yet. 278 /// migrated yet.
271 // TODO(ahe): Remove this class. 279 // TODO(ahe): Remove this class.
272 class DummyRuntimeConfiguration extends DartVmRuntimeConfiguration { 280 class DummyRuntimeConfiguration extends DartVmRuntimeConfiguration {
273 List<Command> computeRuntimeCommands( 281 List<Command> computeRuntimeCommands(
274 TestSuite suite, 282 TestSuite suite,
275 CommandBuilder commandBuilder, 283 CommandBuilder commandBuilder,
276 CommandArtifact artifact, 284 CommandArtifact artifact,
277 List<String> arguments, 285 List<String> arguments,
278 Map<String, String> environmentOverrides) { 286 Map<String, String> environmentOverrides) {
279 throw "Unimplemented runtime '$runtimeType'"; 287 throw "Unimplemented runtime '$runtimeType'";
280 } 288 }
281 } 289 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698