Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 analyzer.test.driver; | 5 library analyzer.test.driver; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:convert'; | 8 import 'dart:convert'; |
| 9 | 9 |
| 10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
| 11 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; | 11 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; |
| 12 import 'package:analyzer/dart/element/element.dart'; | 12 import 'package:analyzer/dart/element/element.dart'; |
| 13 import 'package:analyzer/dart/element/type.dart'; | 13 import 'package:analyzer/dart/element/type.dart'; |
| 14 import 'package:analyzer/error/error.dart'; | 14 import 'package:analyzer/error/error.dart'; |
| 15 import 'package:analyzer/file_system/file_system.dart'; | 15 import 'package:analyzer/file_system/file_system.dart'; |
| 16 import 'package:analyzer/file_system/memory_file_system.dart'; | 16 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 17 import 'package:analyzer/src/dart/analysis/byte_store.dart'; | 17 import 'package:analyzer/src/dart/analysis/byte_store.dart'; |
| 18 import 'package:analyzer/src/dart/analysis/driver.dart'; | 18 import 'package:analyzer/src/dart/analysis/driver.dart'; |
| 19 import 'package:analyzer/src/dart/analysis/file_state.dart'; | 19 import 'package:analyzer/src/dart/analysis/file_state.dart'; |
| 20 import 'package:analyzer/src/dart/analysis/status.dart'; | 20 import 'package:analyzer/src/dart/analysis/status.dart'; |
| 21 import 'package:analyzer/src/dart/analysis/top_level_declaration.dart'; | 21 import 'package:analyzer/src/dart/analysis/top_level_declaration.dart'; |
| 22 import 'package:analyzer/src/dart/constant/evaluation.dart'; | 22 import 'package:analyzer/src/dart/constant/evaluation.dart'; |
| 23 import 'package:analyzer/src/dart/element/element.dart'; | 23 import 'package:analyzer/src/dart/element/element.dart'; |
| 24 import 'package:analyzer/src/error/codes.dart'; | 24 import 'package:analyzer/src/error/codes.dart'; |
| 25 import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl; | 25 import 'package:analyzer/src/generated/engine.dart' show AnalysisOptionsImpl; |
| 26 import 'package:analyzer/src/generated/resolver.dart' show ResolverErrorCode; | 26 import 'package:analyzer/src/generated/resolver.dart' show ResolverErrorCode; |
| 27 import 'package:analyzer/src/generated/sdk.dart'; | 27 import 'package:analyzer/src/generated/sdk.dart'; |
| 28 import 'package:analyzer/src/generated/source.dart'; | 28 import 'package:analyzer/src/generated/source.dart'; |
| 29 import 'package:analyzer/src/summary/idl.dart'; | 29 import 'package:analyzer/src/summary/idl.dart'; |
| 30 import 'package:analyzer/src/summary/package_bundle_reader.dart'; | |
| 30 import 'package:convert/convert.dart'; | 31 import 'package:convert/convert.dart'; |
| 31 import 'package:crypto/crypto.dart'; | 32 import 'package:crypto/crypto.dart'; |
| 32 import 'package:test/test.dart'; | 33 import 'package:test/test.dart'; |
| 33 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 34 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 34 import 'package:typed_mock/typed_mock.dart'; | 35 import 'package:typed_mock/typed_mock.dart'; |
| 35 | 36 |
| 36 import '../../../utils.dart'; | 37 import '../../../utils.dart'; |
| 37 import '../../context/mock_sdk.dart'; | 38 import '../../context/mock_sdk.dart'; |
| 38 import 'base.dart'; | 39 import 'base.dart'; |
| 39 | 40 |
| (...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 981 library lib; | 982 library lib; |
| 982 part 'foo.dart'; | 983 part 'foo.dart'; |
| 983 '''); | 984 '''); |
| 984 | 985 |
| 985 AnalysisResult result = await driver.getResult(testFile); | 986 AnalysisResult result = await driver.getResult(testFile); |
| 986 List<AnalysisError> errors = result.errors; | 987 List<AnalysisError> errors = result.errors; |
| 987 expect(errors, hasLength(1)); | 988 expect(errors, hasLength(1)); |
| 988 expect(errors[0].errorCode, CompileTimeErrorCode.URI_DOES_NOT_EXIST); | 989 expect(errors[0].errorCode, CompileTimeErrorCode.URI_DOES_NOT_EXIST); |
| 989 } | 990 } |
| 990 | 991 |
| 992 solo_test_externalSummaries() async { | |
|
Brian Wilkerson
2017/04/21 16:19:39
Remove "solo_"
| |
| 993 var a = _p('/a.dart'); | |
| 994 var b = _p('/b.dart'); | |
| 995 provider.newFile( | |
| 996 a, | |
| 997 r''' | |
| 998 class A {} | |
| 999 '''); | |
| 1000 provider.newFile( | |
| 1001 b, | |
| 1002 r''' | |
| 1003 import 'a.dart'; | |
| 1004 var a = new A(); | |
| 1005 '''); | |
| 1006 | |
| 1007 // Prepare the store with a.dart and everything it needs. | |
| 1008 SummaryDataStore summaryStore = | |
| 1009 createAnalysisDriver().test.getSummaryStore(a); | |
| 1010 | |
| 1011 // There are at least a.dart and dart:core libraries. | |
| 1012 String aUri = 'file://$a'; | |
| 1013 expect(summaryStore.unlinkedMap.keys, contains(aUri)); | |
| 1014 expect(summaryStore.linkedMap.keys, contains(aUri)); | |
| 1015 expect(summaryStore.unlinkedMap.keys, contains('dart:core')); | |
| 1016 expect(summaryStore.linkedMap.keys, contains('dart:core')); | |
| 1017 | |
| 1018 // Remove a.dart from the file system. | |
| 1019 provider.deleteFile(a); | |
| 1020 | |
| 1021 // We don't need a.dart file when we analyze with the summary store. | |
| 1022 // Still no analysis errors. | |
| 1023 AnalysisDriver driver = | |
| 1024 createAnalysisDriver(externalSummaries: summaryStore); | |
| 1025 AnalysisResult result = await driver.getResult(b); | |
| 1026 expect(result.errors, isEmpty); | |
| 1027 } | |
| 1028 | |
| 991 test_generatedFile() async { | 1029 test_generatedFile() async { |
| 992 Uri uri = Uri.parse('package:aaa/foo.dart'); | 1030 Uri uri = Uri.parse('package:aaa/foo.dart'); |
| 993 String templatePath = _p('/aaa/lib/foo.dart'); | 1031 String templatePath = _p('/aaa/lib/foo.dart'); |
| 994 String generatedPath = _p('/generated/aaa/lib/foo.dart'); | 1032 String generatedPath = _p('/generated/aaa/lib/foo.dart'); |
| 995 | 1033 |
| 996 provider.newFile( | 1034 provider.newFile( |
| 997 templatePath, | 1035 templatePath, |
| 998 r''' | 1036 r''' |
| 999 a() {} | 1037 a() {} |
| 1000 b() {} | 1038 b() {} |
| (...skipping 1704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2705 var path = _p('/test.dart'); | 2743 var path = _p('/test.dart'); |
| 2706 expect(() { | 2744 expect(() { |
| 2707 driver.removeFile(path); | 2745 driver.removeFile(path); |
| 2708 }, throwsStateError); | 2746 }, throwsStateError); |
| 2709 } | 2747 } |
| 2710 | 2748 |
| 2711 String _p(String path) => provider.convertPath(path); | 2749 String _p(String path) => provider.convertPath(path); |
| 2712 } | 2750 } |
| 2713 | 2751 |
| 2714 class _SourceMock extends TypedMock implements Source {} | 2752 class _SourceMock extends TypedMock implements Source {} |
| OLD | NEW |