Index: tools/testing/dart/test_options.dart |
diff --git a/tools/testing/dart/test_options.dart b/tools/testing/dart/test_options.dart |
index 255564ac5c1688a84428a97b19f7fa2333f0428a..e501d08ba58de1f6ed7e91b504bc47d078383e2d 100644 |
--- a/tools/testing/dart/test_options.dart |
+++ b/tools/testing/dart/test_options.dart |
@@ -26,6 +26,7 @@ const List<String> defaultTestSelectors = const [ |
'pkg', |
'analyze_library', |
'service', |
+ 'kernel', |
'observatory_ui' |
]; |
@@ -75,9 +76,15 @@ class TestOptionsParser { |
dart2app: |
dart2appjit: Compile the Dart code into an app snapshot before running test |
- (only valid with dart_app runtime)''', |
+ (only valid with dart_app runtime) |
+ |
+ dartk: Compile the Dart source into Kernel before running test. |
+ |
+ dartkp: Compiler the Dart source into Kernel and then Kernel into AOT |
+ snapshot before running the test.''', |
['-c', '--compiler'], |
- ['none', 'precompiler', 'dart2js', 'dart2analyzer', 'dart2app', 'dart2appjit'], |
+ ['none', 'precompiler', 'dart2js', 'dart2analyzer', 'dart2app', |
+ 'dart2appjit', 'dartk', 'dartkp'], |
'none'), |
// TODO(antonm): fix the option drt. |
new _TestOptionSpecification( |
@@ -156,6 +163,16 @@ class TestOptionsParser { |
], |
'x64'), |
new _TestOptionSpecification( |
+ 'kernel_transformers', |
+ 'The kernel transformations to apply in order (separated by comma). ' |
+ 'A transformer can either be just a "name" (in which case it must be ' |
+ 'available in kernel/bin/tansform.dart) or a "name:path" pair ' |
+ '(in which case "path" must point to an executable script which takes' |
+ ' `input-file` and `output-file` as arguments).', |
+ ['--kernel_transformers'], |
+ [], |
+ ''), |
+ new _TestOptionSpecification( |
'system', |
'The operating system to run tests on', |
['-s', '--system'], |
@@ -677,6 +694,12 @@ Note: currently only implemented for dart2js.''', |
case 'precompiler': |
validRuntimes = const ['dart_precompiled']; |
break; |
+ case 'dartk': |
+ validRuntimes = const ['vm']; |
+ break; |
+ case 'dartkp': |
+ validRuntimes = const ['dart_precompiled']; |
+ break; |
case 'none': |
validRuntimes = const [ |
'vm', |
@@ -687,6 +710,13 @@ Note: currently only implemented for dart2js.''', |
]; |
break; |
} |
+ var kernelCompilers = const ['dartk', 'dartkp']; |
+ if (config['kernel_transformers']?.length > 0 && |
+ !kernelCompilers.contains(config['compiler'])) { |
+ isValid = false; |
+ print("Warning: The `--kernel_transformers` option can only be used in " |
+ "combination with the ${kernelCompilers.join(', ')} compilers."); |
+ } |
if (!validRuntimes.contains(config['runtime'])) { |
isValid = false; |
print("Warning: combination of compiler '${config['compiler']}' and " |
@@ -838,9 +868,9 @@ Note: currently only implemented for dart2js.''', |
if (configuration['package_root'] == null && |
configuration['packages'] == null) { |
configuration['packages'] = |
- TestUtils.dartDirUri.resolve('.packages').toFilePath(); |
+ TestUtils.dartDirUri.resolve('.packages').toFilePath(); |
} |
- |
+ |
// Expand the architectures. |
if (configuration['arch'].contains(',')) { |
return _expandHelper('arch', configuration); |