Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Unified Diff: pkg/front_end/test/kernel_generator_test.dart

Issue 2979463002: Revert "Tweak public APIs and use them in patch_sdk, dart2js, and kernel-service." (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/test/kernel_generator_test.dart
diff --git a/pkg/front_end/test/kernel_generator_test.dart b/pkg/front_end/test/kernel_generator_test.dart
deleted file mode 100644
index 831dbaf63c5988368269709197a62acb67955afe..0000000000000000000000000000000000000000
--- a/pkg/front_end/test/kernel_generator_test.dart
+++ /dev/null
@@ -1,210 +0,0 @@
-// 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:front_end/front_end.dart';
-import 'package:front_end/src/fasta/kernel/utils.dart';
-import 'package:front_end/src/testing/compiler_common.dart';
-import 'package:kernel/ast.dart';
-
-import 'package:test/test.dart';
-
-main() {
- group('kernelForProgram', () {
- test('compiler fails if it cannot find sdk sources', () async {
- var errors = [];
- var options = new CompilerOptions()
- ..dartLibraries = invalidCoreLibs
- ..sdkSummary = null
- ..compileSdk = true // To prevent FE from loading an sdk-summary.
- ..onError = (e) => errors.add(e);
-
- var program =
- await compileScript('main() => print("hi");', options: options);
- expect(program, isNull);
- expect(errors, isNotEmpty);
- });
-
- test('compiler fails if it cannot find sdk summary', () async {
- var errors = [];
- var options = new CompilerOptions()
- ..sdkSummary = Uri.parse('file:///not_existing_summary_file')
- ..onError = (e) => errors.add(e);
-
- var program =
- await compileScript('main() => print("hi");', options: options);
- expect(program, isNull);
- expect(errors, isNotEmpty);
- });
-
- test('by default program is compiled using summaries', () async {
- var options = new CompilerOptions()
- // Note: we define [dartLibraries] with broken URIs to ensure we do not
- // attempt to lookup for sources of the sdk directly.
- ..dartLibraries = invalidCoreLibs;
- var program =
- await compileScript('main() => print("hi");', options: options);
- var core = program.libraries.firstWhere(isDartCoreLibrary);
- var printMember = core.members.firstWhere((m) => m.name.name == 'print');
-
- // Note: summaries created by the SDK today contain empty statements as
- // method bodies.
- expect(printMember.function.body is EmptyStatement, isTrue);
- });
-
- test('compiler requires a main method', () async {
- var errors = [];
- var options = new CompilerOptions()..onError = (e) => errors.add(e);
- await compileScript('a() => print("hi");', options: options);
- expect('${errors.first}', contains("No 'main' method found"));
- });
-
- test('default error handler throws', () async {
- var exceptionThrown = false;
- try {
- await compileScript('a() => print("hi");');
- } catch (e) {
- exceptionThrown = true;
- expect('$e', contains("No 'main' method found"));
- }
- expect(exceptionThrown, isTrue);
- });
-
- test('generated program contains source-info', () async {
- var program = await compileScript('a() => print("hi"); main() {}',
- fileName: 'a.dart');
- // Kernel always store an empty '' key in the map, so there is always at
- // least one. Having more means that source-info is added.
- expect(program.uriToSource.keys.length, greaterThan(1));
- expect(program.uriToSource['file:///a/b/c/a.dart'], isNotNull);
- });
-
- test('code from summary dependencies are marked external', () async {
- var program = await compileScript('a() => print("hi"); main() {}',
- fileName: 'a.dart');
- for (var lib in program.libraries) {
- if (lib.importUri.scheme == 'dart') {
- expect(lib.isExternal, isTrue);
- }
- }
-
- // Pretend that the compiled code is a summary
- var bytes = serializeProgram(program);
- program = await compileScript(
- {
- 'b.dart': 'import "a.dart" as m; b() => m.a(); main() {}',
- 'summary.dill': bytes
- },
- fileName: 'b.dart',
- inputSummaries: ['summary.dill']);
-
- var aLib = program.libraries
- .firstWhere((lib) => lib.importUri.path == '/a/b/c/a.dart');
- expect(aLib.isExternal, isTrue);
- });
-
- test('code from linked dependencies are not marked external', () async {
- var program = await compileScript('a() => print("hi"); main() {}',
- fileName: 'a.dart');
- for (var lib in program.libraries) {
- if (lib.importUri.scheme == 'dart') {
- expect(lib.isExternal, isTrue);
- }
- }
-
- var bytes = serializeProgram(program);
- program = await compileScript(
- {
- 'b.dart': 'import "a.dart" as m; b() => m.a(); main() {}',
- 'link.dill': bytes
- },
- fileName: 'b.dart',
- linkedDependencies: ['link.dill']);
-
- var aLib = program.libraries
- .firstWhere((lib) => lib.importUri.path == '/a/b/c/a.dart');
- expect(aLib.isExternal, isFalse);
- });
-
- // TODO(sigmund): add tests discovering libraries.json
- });
-
- group('kernelForBuildUnit', () {
- test('compiler does not require a main method', () async {
- var errors = [];
- var options = new CompilerOptions()..onError = (e) => errors.add(e);
- await compileUnit(['a.dart'], {'a.dart': 'a() => print("hi");'},
- options: options);
- expect(errors, isEmpty);
- });
-
- test('compiler by default is hermetic', () async {
- var errors = [];
- var options = new CompilerOptions()..onError = (e) => errors.add(e);
- var sources = {
- 'a.dart': 'import "b.dart"; a() => print("hi");',
- 'b.dart': ''
- };
- await compileUnit(['a.dart'], sources, options: options);
- expect(errors.first.toString(), contains('Invalid access'));
- errors.clear();
-
- await compileUnit(['a.dart', 'b.dart'], sources, options: options);
- expect(errors, isEmpty);
- });
-
- test('chaseDependencies=true removes hermetic restriction', () async {
- var errors = [];
- var options = new CompilerOptions()
- ..chaseDependencies = true
- ..onError = (e) => errors.add(e);
- await compileUnit([
- 'a.dart'
- ], {
- 'a.dart': 'import "b.dart"; a() => print("hi");',
- 'b.dart': ''
- }, options: options);
- expect(errors, isEmpty);
- });
-
- test('dependencies can be loaded in any order', () async {
- var sources = <String, dynamic>{
- 'a.dart': 'a() => print("hi");',
- 'b.dart': 'import "a.dart"; b() => a();',
- 'c.dart': 'import "b.dart"; c() => b();',
- 'd.dart': 'import "c.dart"; d() => c();',
- };
-
- var unitA = await compileUnit(['a.dart'], sources);
- // Pretend that the compiled code is a summary
- sources['a.dill'] = serializeProgram(unitA);
-
- var unitBC = await compileUnit(['b.dart', 'c.dart'], sources,
- inputSummaries: ['a.dill']);
-
- // Pretend that the compiled code is a summary
- sources['bc.dill'] = serializeProgram(unitBC);
-
- void checkDCallsC(Program program) {
- var dLib = findLibrary(program, 'd.dart');
- var cLib = findLibrary(program, 'c.dart');
- var dMethod = dLib.procedures.first;
- var dBody = dMethod.function.body;
- var dCall = (dBody as ReturnStatement).expression;
- var callTarget =
- (dCall as StaticInvocation).targetReference.asProcedure;
- expect(callTarget, same(cLib.procedures.first));
- }
-
- var unitD1 = await compileUnit(['d.dart'], sources,
- inputSummaries: ['a.dill', 'bc.dill']);
- checkDCallsC(unitD1);
-
- var unitD2 = await compileUnit(['d.dart'], sources,
- inputSummaries: ['bc.dill', 'a.dill']);
- checkDCallsC(unitD2);
- });
-
- // TODO(sigmund): add tests with trimming dependencies
- });
-}
« no previous file with comments | « pkg/front_end/test/incremental_kernel_generator_test.dart ('k') | pkg/front_end/test/src/base/processed_options_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698