[infra] Add legacy AST mode builder to the test-matrix.json

This also removes the now redundant bytecode testing from the dartkb
builders.

Replace the useKernelBytecode boolean option with a more flexible
genKernelOptions string list option.

See also See also https://dart-review.googlesource.com/c/sdk/+/122321/ for the
corresponding Luci config updates.

Change-Id: Iabb207bc02637b758c42c00ae9175bd52f46559f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/122320
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
This commit is contained in:
Alexander Thomas 2019-10-25 15:11:00 +00:00
parent 6700ed4ac5
commit e62c7ae3bb
6 changed files with 210 additions and 39 deletions

View file

@ -244,6 +244,7 @@ class Configuration {
nnbdMode: nnbdMode,
babel: stringOption("babel"),
builderTag: stringOption("builder-tag"),
genKernelOptions: stringListOption("gen-kernel-options"),
vmOptions: stringListOption("vm-options"),
dart2jsOptions: stringListOption("dart2js-options"),
experiments: stringListOption("enable-experiment"),
@ -288,6 +289,8 @@ class Configuration {
final String builderTag;
final List<String> genKernelOptions;
final List<String> vmOptions;
final List<String> dart2jsOptions;
@ -335,6 +338,7 @@ class Configuration {
{NnbdMode nnbdMode,
String babel,
String builderTag,
List<String> genKernelOptions,
List<String> vmOptions,
List<String> dart2jsOptions,
List<String> experiments,
@ -354,6 +358,7 @@ class Configuration {
: nnbdMode = nnbdMode ?? NnbdMode.legacy,
babel = babel ?? "",
builderTag = builderTag ?? "",
genKernelOptions = genKernelOptions ?? <String>[],
vmOptions = vmOptions ?? <String>[],
dart2jsOptions = dart2jsOptions ?? <String>[],
experiments = experiments ?? <String>[],
@ -382,6 +387,7 @@ class Configuration {
nnbdMode == other.nnbdMode &&
babel == other.babel &&
builderTag == other.builderTag &&
_listsEqual(genKernelOptions, other.genKernelOptions) &&
_listsEqual(vmOptions, other.vmOptions) &&
_listsEqual(dart2jsOptions, other.dart2jsOptions) &&
_listsEqual(experiments, other.experiments) &&
@ -429,6 +435,7 @@ class Configuration {
nnbdMode.hashCode ^
babel.hashCode ^
builderTag.hashCode ^
genKernelOptions.join(" & ").hashCode ^
vmOptions.join(" & ").hashCode ^
dart2jsOptions.join(" & ").hashCode ^
experiments.join(" & ").hashCode ^
@ -469,6 +476,7 @@ class Configuration {
if (babel.isNotEmpty) fields.add("babel: $babel");
if (builderTag.isNotEmpty) fields.add("builder-tag: $builderTag");
stringListField("gen-kernel-options", genKernelOptions);
stringListField("vm-options", vmOptions);
stringListField("dart2js-options", dart2jsOptions);
stringListField("enable-experiment", experiments);
@ -522,6 +530,8 @@ class Configuration {
fields.add("nnbd: $nnbdMode ${other.nnbdMode}");
stringField("babel", babel, other.babel);
stringField("builder-tag", builderTag, other.builderTag);
stringListField(
"gen-kernel-options", genKernelOptions, other.genKernelOptions);
stringListField("vm-options", vmOptions, other.vmOptions);
stringListField("dart2js-options", dart2jsOptions, other.dart2jsOptions);
stringListField("experiments", experiments, other.experiments);

View file

@ -1101,11 +1101,7 @@ abstract class VMKernelCompilerMixin {
arguments.contains('--enable-asserts') ||
arguments.contains('--enable_asserts'))
'--enable-asserts',
if (_configuration.useKernelBytecode) ...[
'--gen-bytecode',
'--drop-ast',
'--bytecode-options=source-positions${_isProduct ? '' : ',local-var-info,debugger-stops'}'
]
..._configuration.genKernelOptions,
];
var batchArgs = [if (useAbiVersion != null) useAbiVersion];

View file

@ -42,7 +42,6 @@ class TestConfiguration {
this.reportInJson,
this.resetBrowser,
this.skipCompilation,
this.useKernelBytecode,
this.writeDebugLog,
this.writeResults,
this.writeLogs,
@ -94,7 +93,6 @@ class TestConfiguration {
final bool reportInJson;
final bool resetBrowser;
final bool skipCompilation;
final bool useKernelBytecode;
final bool writeDebugLog;
final bool writeResults;
final bool writeLogs;
@ -147,6 +145,9 @@ class TestConfiguration {
/// Extra dart2js options passed to the testing script.
List<String> get dart2jsOptions => configuration.dart2jsOptions;
/// Extra gen_kernel options passed to the testing script.
List<String> get genKernelOptions => configuration.genKernelOptions;
/// Extra VM options passed to the testing script.
List<String> get vmOptions => configuration.vmOptions;

View file

@ -744,8 +744,6 @@ compiler.''',
reportInJson: data["report_in_json"] as bool,
resetBrowser: data["reset_browser_configuration"] as bool,
skipCompilation: data["skip_compilation"] as bool,
useKernelBytecode:
innerConfiguration.compiler == Compiler.dartkb,
writeDebugLog: data["write_debug_log"] as bool,
writeResults: data["write_results"] as bool,
writeLogs: data["write_logs"] as bool,

View file

@ -182,7 +182,7 @@ dart/snapshot_version_test: RuntimeError # Please triage.
dart/data_uri_spawn_test: Skip # Timeout
dart/kernel_determinism_test: SkipSlow
[ $arch == arm || $arch == arm64 || $builder_tag == crossword || $compiler != dartkp ]
[ $arch == arm || $arch == arm64 || $builder_tag == crossword || $builder_tag == crossword_ast || $compiler != dartkp ]
dart/v8_snapshot_profile_writer_test: SkipByDesign # Only relevant for AOT. Doesn't work in cross-compilation (has to run on the host).
[ $arch == arm || $arch == ia32 || $arch == simarm || $arch == simdbc || $arch == simdbc64 ]
@ -241,7 +241,7 @@ dart/generic_field_invocation_test: SkipByDesign # DBC and KBC interpreters do n
[ $builder_tag == bytecode_interpreter || $builder_tag == bytecode_mixed || $builder_tag == optimization_counter_threshold || $hot_reload || $hot_reload_rollback || $arch != arm && $arch != simarm && $arch != x64 || $compiler != dartk && $compiler != dartkb && $compiler != dartkp ]
dart/entrypoints/*: SkipByDesign # These tests are for compiler optimizations and very sensible to when functions are optimized, so they are disabled on hotreload, optcounter and bytecode interpreter bots.
[ $builder_tag == crossword || $compiler != dartkp || $system != linux && $system != macos && $system != windows ]
[ $builder_tag == crossword || $builder_tag == crossword_ast || $compiler != dartkp || $system != linux && $system != macos && $system != windows ]
dart/run_appended_aot_snapshot_test: SkipByDesign # Tests the precompiled runtime.
[ $compiler == dart2analyzer || $compiler == dart2js ]

View file

@ -446,6 +446,27 @@
"use-elf": true
}},
"dartk-(linux|mac|win)-(debug|product|release)-(ia32|x64)": { },
"dartk-(linux|mac|win)-(debug|product|release)-(ia32|simarm|simarm64|x64)-ast": {
"options": {
"builder-tag": "ast",
"gen-kernel-options": ["--no-gen-bytecode"]
}},
"dartkp-(linux|mac)-(debug|product|release)-x64-ast": {
"options": {
"builder-tag": "ast",
"gen-kernel-options": ["--no-gen-bytecode"]
}},
"dartkp-(linux|mac)-(debug|product|release)-simarm64-ast": {
"options": {
"builder-tag": "ast",
"use-blobs": true,
"gen-kernel-options": ["--no-gen-bytecode"]
}},
"dartkp-linux-(debug|product|release)-simarm-crossword-ast": {
"options": {
"builder-tag": "crossword_ast",
"gen-kernel-options": ["--no-gen-bytecode"]
}},
"dartk-checked-(linux|mac|win)-(debug|product|release)-(ia32|x64)": {
"options": {
"enable-asserts": true
@ -469,20 +490,45 @@
"hot-reload-rollback": true
}},
"app_jitk-(linux|mac|win)-(debug|product|release)-(ia32|x64)": { },
"dartkb-interpret-(linux|mac|win)-(debug|product|release)-(ia32|x64|arm|arm64|simarm|simarm64)": {
"dartkb-interpret-(linux|mac|win)-product-(ia32|x64|arm|arm64|simarm|simarm64)": {
"options": {
"builder-tag": "bytecode_interpreter",
"gen-kernel-options": [
"--gen-bytecode",
"--drop-ast",
"--bytecode-options=source-positions"
],
"vm-options": ["--enable_interpreter", "--compilation-counter-threshold=-1"]
}},
"dartkb-mixed-(linux|mac|win)-(debug|product|release)-(ia32|x64|arm|arm64|simarm|simarm64)": {
"dartkb-interpret-(linux|mac|win)-(debug|release)-(ia32|x64|arm|arm64|simarm|simarm64)": {
"options": {
"builder-tag": "bytecode_interpreter",
"gen-kernel-options": [
"--gen-bytecode",
"--drop-ast",
"--bytecode-options=source-positions,local-var-info,debugger-stops"
],
"vm-options": ["--enable_interpreter", "--compilation-counter-threshold=-1"]
}},
"dartkb-mixed-(linux|mac|win)-(debug|release)-(ia32|x64|arm|arm64|simarm|simarm64)": {
"options": {
"builder-tag": "bytecode_mixed",
"gen-kernel-options": [
"--gen-bytecode",
"--drop-ast",
"--bytecode-options=source-positions,local-var-info,debugger-stops"
],
"vm-options": ["--enable_interpreter"]
}},
"dartkb-compile-(linux|mac|win)-(debug|product|release)-(ia32|x64|arm|arm64|simarm|simarm64)": {
"dartkb-mixed-(linux|mac|win)-product-(ia32|x64|arm|arm64|simarm|simarm64)": {
"options": {
"builder-tag": "bytecode_compiler",
"vm-options": ["--use_bytecode_compiler"]
"builder-tag": "bytecode_mixed",
"gen-kernel-options": [
"--gen-bytecode",
"--drop-ast",
"--bytecode-options=source-positions"
],
"vm-options": ["--enable_interpreter"]
}},
"(dartdevc|dartdevk)-checked-(linux|mac|win)-(debug|product|release)-(chrome|firefox)": {
"options": {
@ -575,12 +621,8 @@
},
{
"builders": [
"vm-dartkb-linux-debug-x64",
"vm-dartkb-linux-release-x64",
"vm-dartkb-linux-product-x64",
"vm-dartkb-linux-debug-simarm64",
"vm-dartkb-linux-release-simarm64",
"vm-dartkb-linux-product-simarm64"
"vm-dartkb-linux-release-simarm64"
],
"meta": {
"description": "This configuration is used by the vm kbc builders."
@ -619,23 +661,6 @@
"fileset": "vm-kernel",
"shards": 4
},
{
"name": "vm bytecode compiler tests",
"arguments": [
"-ndartkb-compile-linux-${mode}-${arch}"
],
"fileset": "vm-kernel",
"shards": 4
},
{
"name": "vm bytecode compiler co19 tests",
"arguments": [
"-ndartkb-compile-linux-${mode}-${arch}",
"co19_2"
],
"fileset": "vm-kernel",
"shards": 4
},
{
"name": "vm interpreter tests",
"arguments": [
@ -655,6 +680,92 @@
}
]
},
{
"builders": [
"vm-kernel-ast-linux-debug-ia32",
"vm-kernel-ast-linux-release-ia32",
"vm-kernel-ast-linux-debug-x64",
"vm-kernel-ast-linux-release-simarm",
"vm-kernel-ast-linux-release-simarm64",
"vm-kernel-ast-linux-release-x64",
"vm-kernel-ast-win-debug-x64",
"vm-kernel-ast-win-release-x64"
],
"meta": {
"description": "This configuration is used by the vm legacy AST-mode (no-bytecode) JIT builders."
},
"steps": [
{
"name": "configure dart",
"script": "tools/gn.py",
"arguments": [
"--mode=${mode}",
"--arch=${arch}",
"--no-bytecode"
]
},
{
"name": "build dart",
"script": "tools/build.py",
"arguments": [
"runtime"
]
},
{
"name": "vm tests",
"arguments": [
"-ndartk-${system}-${mode}-${arch}-ast"],
"fileset": "vm-kernel",
"shards": 8
},
{
"name": "vm co19 tests",
"arguments": [
"-ndartk-${system}-${mode}-${arch}-ast",
"co19_2"
],
"fileset": "vm-kernel",
"shards": 8
}
]
},
{
"builders": [
"vm-kernel-precomp-ast-linux-debug-x64",
"vm-kernel-precomp-ast-linux-release-simarm",
"vm-kernel-precomp-ast-linux-release-simarm64",
"vm-kernel-precomp-ast-linux-release-x64"
],
"meta": {
"description": "This configuration is used by the vm legacy AST-mode (no-bytecode) AOT builders."
},
"steps": [
{
"name": "configure dart",
"script": "tools/gn.py",
"arguments": [
"--mode=${mode}",
"--arch=${arch}",
"--no-bytecode"
]
},
{
"name": "build dart",
"script": "tools/build.py",
"arguments": [
"runtime",
"dart_precompiled_runtime"
]
},
{
"name": "vm tests",
"arguments": [
"-ndartkp-${system}-${mode}-${arch}-ast"],
"fileset": "vm-kernel",
"shards": 8
}
]
},
{
"builders": [
"vm-canary-linux-debug"
@ -751,7 +862,6 @@
"vm-kernel-precomp-linux-release-simarm64",
"vm-kernel-precomp-linux-release-x64",
"vm-kernel-precomp-mac-release-simarm64",
"vm-kernel-precomp-win-release-simarm64",
"vm-kernel-precomp-win-release-x64"
],
"meta": {
@ -2603,6 +2713,62 @@
"shards": 10
}
]
},
{
"builders": [
"vm-kernel-precomp-ast-linux-release-simarm_x64"
],
"meta": {
"description": "This configuration runs tests for the simarm_x64 architecture in AST mode."
},
"steps": [
{
"name": "configure dart for simarm_x64",
"script": "tools/gn.py",
"arguments": [
"--mode=${mode}",
"--arch=simarm_x64",
"--no-bytecode"
]
},
{
"name": "configure dart for simarm",
"script": "tools/gn.py",
"arguments": [
"--mode=${mode}",
"--arch=simarm",
"--no-bytecode"
]
},
{
"name": "build dart for simarm_x64",
"script": "tools/build.py",
"arguments": [
"--mode=${mode}",
"--arch=simarm_x64",
"gen_snapshot"
]
},
{
"name": "build dart for simarm",
"script": "tools/build.py",
"arguments": [
"--mode=${mode}",
"--arch=simarm",
"dart_precompiled_runtime",
"vm_platform"
]
},
{
"name": "vm tests",
"arguments": [
"-ndartkp-${system}-${mode}-simarm-crossword-ast",
"--gen-snapshot=${build_root}/gen_snapshot"
],
"fileset": "vm-kernel",
"shards": 10
}
]
}
]
}