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

Side by Side Diff: tests/compiler/dart2js/serialization/equivalence_test.dart

Issue 2110323003: Support serialization of loadLibrary (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: dartfmt Created 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.serialization_test; 5 library dart2js.serialization_test;
6 6
7 import 'dart:io'; 7 import 'dart:io';
8 import '../memory_compiler.dart'; 8 import '../memory_compiler.dart';
9 import 'package:async_helper/async_helper.dart'; 9 import 'package:async_helper/async_helper.dart';
10 import 'package:compiler/src/commandline_options.dart'; 10 import 'package:compiler/src/commandline_options.dart';
11 import 'package:compiler/src/common.dart'; 11 import 'package:compiler/src/common.dart';
12 import 'package:compiler/src/common/resolution.dart'; 12 import 'package:compiler/src/common/resolution.dart';
13 import 'package:compiler/src/constants/constructors.dart'; 13 import 'package:compiler/src/constants/constructors.dart';
14 import 'package:compiler/src/compiler.dart'; 14 import 'package:compiler/src/compiler.dart';
15 import 'package:compiler/src/diagnostics/invariant.dart'; 15 import 'package:compiler/src/diagnostics/invariant.dart';
16 import 'package:compiler/src/elements/elements.dart'; 16 import 'package:compiler/src/elements/elements.dart';
17 import 'package:compiler/src/elements/visitor.dart'; 17 import 'package:compiler/src/elements/visitor.dart';
18 import 'package:compiler/src/filenames.dart';
18 import 'package:compiler/src/library_loader.dart'; 19 import 'package:compiler/src/library_loader.dart';
19 import 'package:compiler/src/ordered_typeset.dart'; 20 import 'package:compiler/src/ordered_typeset.dart';
20 import 'package:compiler/src/serialization/element_serialization.dart'; 21 import 'package:compiler/src/serialization/element_serialization.dart';
21 import 'package:compiler/src/serialization/equivalence.dart'; 22 import 'package:compiler/src/serialization/equivalence.dart';
22 import 'package:compiler/src/serialization/json_serializer.dart'; 23 import 'package:compiler/src/serialization/json_serializer.dart';
23 import 'package:compiler/src/serialization/serialization.dart'; 24 import 'package:compiler/src/serialization/serialization.dart';
24 import 'package:expect/expect.dart'; 25 import 'package:expect/expect.dart';
25 import 'test_helper.dart'; 26 import 'test_helper.dart';
26 27
28 const TEST_SOURCES = const <String, String>{
29 'main.dart': '''
30 import 'a.dart' deferred as a;
31 ''',
32 'a.dart': '''
33 ''',
34 };
35
27 main(List<String> arguments) { 36 main(List<String> arguments) {
28 // Ensure that we can print out constant expressions. 37 // Ensure that we can print out constant expressions.
29 DEBUG_MODE = true; 38 DEBUG_MODE = true;
30 39
31 Uri entryPoint; 40 Uri entryPoint;
32 String outPath; 41 String outPath;
33 bool prettyPrint = false; 42 bool prettyPrint = false;
34 for (String arg in arguments) { 43 for (String arg in arguments) {
35 if (arg.startsWith('--')) { 44 if (arg.startsWith('--')) {
36 if (arg.startsWith('--out=')) { 45 if (arg.startsWith('--out=')) {
37 outPath = arg.substring('--out='.length); 46 outPath = arg.substring('--out='.length);
38 } else if (arg == '--pretty-print') { 47 } else if (arg == '--pretty-print') {
39 prettyPrint = true; 48 prettyPrint = true;
40 } else { 49 } else {
41 print("Unknown option $arg"); 50 print("Unknown option $arg");
42 } 51 }
43 } else { 52 } else {
44 if (entryPoint != null) { 53 if (entryPoint != null) {
45 print("Multiple entrypoints is not supported."); 54 print("Multiple entrypoints is not supported.");
46 } 55 }
47 entryPoint = Uri.parse(arg); 56 entryPoint = Uri.base.resolve(nativeToUriPath(arg));
48 } 57 }
49 } 58 }
59 Map<String, String> sourceFiles = const <String, String>{};
50 if (entryPoint == null) { 60 if (entryPoint == null) {
51 entryPoint = Uri.parse('dart:core'); 61 entryPoint = Uri.parse('memory:main.dart');
62 sourceFiles = TEST_SOURCES;
52 } 63 }
53 asyncTest(() async { 64 asyncTest(() async {
54 CompilationResult result = await runCompiler( 65 CompilationResult result = await runCompiler(
55 entryPoint: entryPoint, options: [Flags.analyzeAll]); 66 memorySourceFiles: sourceFiles,
67 entryPoint: entryPoint,
68 options: [Flags.analyzeAll]);
56 Compiler compiler = result.compiler; 69 Compiler compiler = result.compiler;
57 testSerialization( 70 testSerialization(
58 compiler.libraryLoader.libraries, 71 compiler.libraryLoader.libraries,
59 compiler.reporter, 72 compiler.reporter,
60 compiler.resolution, 73 compiler.resolution,
61 compiler.libraryLoader, 74 compiler.libraryLoader,
62 outPath: outPath, 75 outPath: outPath,
63 prettyPrint: prettyPrint); 76 prettyPrint: prettyPrint);
64 Expect.isFalse(compiler.reporter.hasReportedError, 77 Expect.isFalse(compiler.reporter.hasReportedError,
65 "Unexpected errors occured."); 78 "Unexpected errors occured.");
(...skipping 725 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 element1, element2, 'importedLibrary', 804 element1, element2, 'importedLibrary',
792 element1.exportedLibrary, element2.exportedLibrary); 805 element1.exportedLibrary, element2.exportedLibrary);
793 } 806 }
794 807
795 @override 808 @override
796 void visitPrefixElement(PrefixElement element1, PrefixElement element2) { 809 void visitPrefixElement(PrefixElement element1, PrefixElement element2) {
797 check( 810 check(
798 element1, element2, 'isDeferred', 811 element1, element2, 'isDeferred',
799 element1.isDeferred, element2.isDeferred); 812 element1.isDeferred, element2.isDeferred);
800 checkElementIdentities( 813 checkElementIdentities(
801 element1, element2, 'importedLibrary', 814 element1, element2, 'deferredImport',
802 element1.deferredImport, element2.deferredImport); 815 element1.deferredImport, element2.deferredImport);
816 if (element1.isDeferred) {
817 checkElementProperties(element1, element2,
818 'loadLibrary', element1.loadLibrary, element2.loadLibrary);
819 }
803 // TODO(johnniwinther): Check members. 820 // TODO(johnniwinther): Check members.
804 } 821 }
805 } 822 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698