c42c76f590
This change tries to run from dartdev.dart.snapshot and falls back to running from dartdev.dill if incompatible VM flags are provided. Fixes https://github.com/dart-lang/sdk/issues/43969 Performance results: dart test.dart (no CLI isolate): 0.167s dart run test (from snapshot): 0.208s dart run test (from kernel): 0.326s TEST=pkg/dartdev/test/load_from_dill_test.dart Change-Id: I3195886b86676580ef2a0221f0284328964ef061 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/178300 Commit-Queue: Ben Konyi <bkonyi@google.com> Reviewed-by: Siva Annamalai <asiva@google.com>
30 lines
965 B
Dart
30 lines
965 B
Dart
// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:test/test.dart';
|
|
|
|
import 'utils.dart';
|
|
|
|
void main() {
|
|
TestProject p;
|
|
|
|
tearDown(() => p?.dispose());
|
|
|
|
test("Fallback to dartdev.dill from dartdev.dart.snapshot for 'Hello World'",
|
|
() {
|
|
p = project(mainSrc: "void main() { print('Hello World'); }");
|
|
// The DartDev snapshot includes the --use-bare-instructions flag. If
|
|
// --no-use-bare-instructions is passed, the VM will fail to load the
|
|
// snapshot and should fall back to using the DartDev dill file.
|
|
ProcessResult result =
|
|
p.runSync(['--no-use-bare-instructions', 'run', p.relativeFilePath]);
|
|
|
|
expect(result.stdout, contains('Hello World'));
|
|
expect(result.stderr, isEmpty);
|
|
expect(result.exitCode, 0);
|
|
});
|
|
}
|