d810c7d0c0
This commit was generated by the following steps: - Manually change the SDK constraint in `pkg/front_end/pubspec.yaml` - Run `gclient sync` - Run `find pkg/front_end/benchmarks pkg/front_end/lib pkg/front_end/presubmit_helper.dart pkg/front_end/presubmit_helper_spawn.dart pkg/front_end/test pkg/front_end/tool -iname '*.dart' | xargs tools/sdks/dart-sdk/bin/dart format` - Manually fix remaining long lines and add dead code ignore comments. - Fix coverage by running `dart --enable-asserts pkg/front_end/test/coverage_suite.dart --tasks=5 --add-and-remove-comments` - Fix `pkg/front_end/test/coverage_merger/assert_message_auto_ignored` by running `dart pkg/front_end/test/unit_test_suites.dart -p pkg/front_end/test/coverage_merger/assert_message_auto_ignored -DupdateExpectations=true` The diff is large because the version bump causes the formatter to switch into "tall mode". Change-Id: I6a6a696410da8b168060acfe0e4d6e91e294c4f0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/447628 Auto-Submit: Paul Berry <paulberry@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
96 lines
3.3 KiB
Dart
96 lines
3.3 KiB
Dart
// Copyright (c) 2017, 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 'package:expect/async_helper.dart' show asyncTest;
|
|
import 'package:expect/expect.dart' show Expect;
|
|
import "package:front_end/src/api_prototype/compiler_options.dart"
|
|
show CompilerOptions, CfeDiagnosticMessage;
|
|
import 'package:front_end/src/api_prototype/incremental_kernel_generator.dart'
|
|
show IncrementalCompilerResult;
|
|
import 'package:front_end/src/base/compiler_context.dart' show CompilerContext;
|
|
import 'package:front_end/src/base/incremental_compiler.dart'
|
|
show IncrementalCompiler;
|
|
import 'package:front_end/src/base/processed_options.dart'
|
|
show ProcessedOptions;
|
|
import 'package:front_end/src/compute_platform_binaries_location.dart'
|
|
show computePlatformBinariesLocation;
|
|
import 'package:kernel/ast.dart' show Component;
|
|
import 'package:kernel/target/targets.dart' show TargetFlags;
|
|
import 'package:vm/modular/target/vm.dart' show VmTarget;
|
|
|
|
void diagnosticMessageHandler(CfeDiagnosticMessage message) {
|
|
throw "Unexpected message: ${message.plainTextFormatted.join('\n')}";
|
|
}
|
|
|
|
Future<void> test({required bool sdkFromSource}) async {
|
|
final CompilerOptions optionBuilder = new CompilerOptions()
|
|
..packagesFileUri = Uri.base.resolve(".dart_tool/package_config.json")
|
|
..target = new VmTarget(new TargetFlags())
|
|
..omitPlatform = true
|
|
..onDiagnostic = diagnosticMessageHandler
|
|
..environmentDefines = const {};
|
|
|
|
if (sdkFromSource) {
|
|
optionBuilder.librariesSpecificationUri = Uri.base.resolve(
|
|
"sdk/lib/libraries.json",
|
|
);
|
|
} else {
|
|
optionBuilder.sdkSummary = computePlatformBinariesLocation(
|
|
forceBuildDir: true,
|
|
).resolve("vm_platform.dill");
|
|
}
|
|
|
|
final Uri helloDart = Uri.base.resolve(
|
|
"pkg/front_end/testcases/general/hello.dart",
|
|
);
|
|
|
|
final ProcessedOptions options = new ProcessedOptions(
|
|
options: optionBuilder,
|
|
inputs: [helloDart],
|
|
);
|
|
|
|
IncrementalCompiler compiler = new IncrementalCompiler(
|
|
new CompilerContext(options),
|
|
);
|
|
|
|
IncrementalCompilerResult compilerResult = await compiler.computeDelta();
|
|
Component component = compilerResult.component;
|
|
|
|
if (sdkFromSource) {
|
|
// Expect that the new component contains at least the following libraries:
|
|
// dart:core, dart:async, and hello.dart.
|
|
Expect.isTrue(
|
|
component.libraries.length > 2,
|
|
"${component.libraries.length} <= 2",
|
|
);
|
|
} else {
|
|
// Expect that the new component contains exactly hello.dart.
|
|
Expect.isTrue(
|
|
component.libraries.length == 1,
|
|
"${component.libraries.length} != 1",
|
|
);
|
|
}
|
|
|
|
compiler.invalidate(helloDart);
|
|
|
|
compilerResult = await compiler.computeDelta(entryPoints: [helloDart]);
|
|
component = compilerResult.component;
|
|
// Expect that the new component contains exactly hello.dart
|
|
Expect.isTrue(
|
|
component.libraries.length == 1,
|
|
"${component.libraries.length} != 1",
|
|
);
|
|
|
|
compilerResult = await compiler.computeDelta(entryPoints: [helloDart]);
|
|
component = compilerResult.component;
|
|
Expect.isTrue(component.libraries.isEmpty);
|
|
}
|
|
|
|
void main() {
|
|
asyncTest(() async {
|
|
await test(sdkFromSource: true);
|
|
await test(sdkFromSource: false);
|
|
});
|
|
}
|