Skip to content

Commit 1f4d251

Browse files
aartbikcommit-bot@chromium.org
authored andcommitted
[vm/fuzzer] Added mode where kbc x64 goes directly "from source"
Change-Id: I88902a83d701033ab7cc47b0e0cd78bc48069478 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112400 Reviewed-by: Ben Konyi <[email protected]> Commit-Queue: Aart Bik <[email protected]>
1 parent 8a0ae57 commit 1f4d251

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

runtime/tools/dartfuzz/dartfuzz_test.dart

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ abstract class TestRunner {
4848
Map<String, String> env, String fileName, Random rand) {
4949
String prefix = mode.substring(0, 3).toUpperCase();
5050
String tag = getTag(mode);
51-
// Prepare extra flags.
5251
List<String> extraFlags = [];
52+
// Required extra flags for kbc.
5353
if (mode.startsWith('kbc-int')) {
5454
prefix += '-INT';
5555
extraFlags += [
@@ -63,6 +63,14 @@ abstract class TestRunner {
6363
prefix += '-CMP';
6464
extraFlags += ['--use-bytecode-compiler'];
6565
}
66+
// Every once in a while, go directly from source for kbc-*-x64.
67+
bool kbcSrc = false;
68+
if (mode.startsWith('kbc') &&
69+
mode.endsWith('x64') &&
70+
rand.nextInt(4) == 0) {
71+
prefix += '-SRC';
72+
kbcSrc = true;
73+
}
6674
// Every once in a while, stress test JIT.
6775
if (mode.startsWith('jit') && rand.nextInt(4) == 0) {
6876
final r = rand.nextInt(7);
@@ -108,7 +116,7 @@ abstract class TestRunner {
108116
prefix, tag, top, tmp, env, fileName, extraFlags);
109117
} else if (mode.startsWith('kbc')) {
110118
return new TestRunnerKBC(
111-
prefix, tag, top, tmp, env, fileName, extraFlags);
119+
prefix, tag, top, tmp, env, fileName, extraFlags, kbcSrc);
112120
} else if (mode.startsWith('djs')) {
113121
return new TestRunnerDJS(prefix, tag, top, tmp, env, fileName);
114122
}
@@ -185,20 +193,26 @@ class TestRunnerAOT implements TestRunner {
185193
/// Concrete test runner of bytecode.
186194
class TestRunnerKBC implements TestRunner {
187195
TestRunnerKBC(String prefix, String tag, String top, String tmp, this.env,
188-
this.fileName, List<String> extraFlags) {
196+
this.fileName, List<String> extraFlags, bool kbcSrc) {
189197
description = '$prefix-$tag';
190-
generate = '$top/pkg/vm/tool/gen_kernel';
191-
platform = '--platform=$top/out/$tag/vm_platform_strong.dill';
192-
dill = '$tmp/out.dill';
193198
dart = '$top/out/$tag/dart';
194-
cmd = [dart] + extraFlags + [dill];
199+
if (kbcSrc) {
200+
cmd = [dart] + extraFlags + [fileName];
201+
} else {
202+
generate = '$top/pkg/vm/tool/gen_kernel';
203+
platform = '--platform=$top/out/$tag/vm_platform_strong.dill';
204+
dill = '$tmp/out.dill';
205+
cmd = [dart] + extraFlags + [dill];
206+
}
195207
}
196208

197209
TestResult run() {
198-
TestResult result = runCommand(
199-
[generate, '--gen-bytecode', platform, '-o', dill, fileName], env);
200-
if (result.exitCode != 0) {
201-
return result;
210+
if (generate != null) {
211+
TestResult result = runCommand(
212+
[generate, '--gen-bytecode', platform, '-o', dill, fileName], env);
213+
if (result.exitCode != 0) {
214+
return result;
215+
}
202216
}
203217
return runCommand(cmd, env);
204218
}

0 commit comments

Comments
 (0)