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

Unified Diff: pkg/analyzer/test/src/summary/summary_sdk_test.dart

Issue 1591483002: Prepare for chaining resynthesizers from AC to SDK AC. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Fallback to the SDK. Created 4 years, 11 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
« no previous file with comments | « pkg/analyzer/test/src/summary/resynthesize_test.dart ('k') | pkg/analyzer/test/src/summary/test_all.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/test/src/summary/summary_sdk_test.dart
diff --git a/pkg/analyzer/test/src/summary/summary_sdk_test.dart b/pkg/analyzer/test/src/summary/summary_sdk_test.dart
deleted file mode 100644
index 5ec807e35754b90e5ec61c16c21eed09255878cc..0000000000000000000000000000000000000000
--- a/pkg/analyzer/test/src/summary/summary_sdk_test.dart
+++ /dev/null
@@ -1,260 +0,0 @@
-// Copyright (c) 2016, 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.
-
-library test.src.summary.summary_sdk_test;
-
-import 'dart:io';
-
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/src/context/cache.dart';
-import 'package:analyzer/src/generated/engine.dart'
- show AnalysisContext, CacheState;
-import 'package:analyzer/src/generated/resolver.dart' show TypeProvider;
-import 'package:analyzer/src/generated/sdk.dart';
-import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/summary/format.dart';
-import 'package:analyzer/src/summary/summary_sdk.dart';
-import 'package:analyzer/src/task/dart.dart';
-import 'package:analyzer/task/dart.dart';
-import 'package:analyzer/task/model.dart' show AnalysisContextTarget;
-import 'package:analyzer/task/model.dart';
-import 'package:path/path.dart' as pathos;
-import 'package:unittest/unittest.dart';
-
-import '../../generated/test_support.dart';
-import '../../reflective_tests.dart';
-
-main() {
- groupSep = ' | ';
- runReflectiveTests(SummarySdkAnalysisContextTest);
-}
-
-@reflectiveTest
-class SummarySdkAnalysisContextTest {
- static String _analyzerPackagePath;
- static bool _analyzerPackagePathInitialized = false;
-
- static SdkBundle sdkBundle;
-
- SummarySdkAnalysisContext context;
-
- void setUp() {
- _initializeSdkContext();
- }
-
- test_libraryResults() {
- if (context == null) {
- return;
- }
- // verify that there are at least some interesting libraries in the bundle
- expect(sdkBundle.prelinkedLibraryUris, contains('dart:core'));
- expect(sdkBundle.prelinkedLibraryUris, contains('dart:async'));
- expect(sdkBundle.prelinkedLibraryUris, contains('dart:html'));
- // verify every library
- for (String uri in sdkBundle.prelinkedLibraryUris) {
- // TODO(scheglov) breaks at _LibraryResynthesizer.buildImplicitTopLevelVariable
- if (uri == 'dart:io' || uri == 'dart:_isolate_helper') {
- continue;
- }
- _assertLibraryResults(uri);
- }
- }
-
- test_sourceKind() {
- if (context == null) {
- return;
- }
- // libraries
- _assertHasSourceKind('dart:core', SourceKind.LIBRARY);
- _assertHasSourceKind('dart:async', SourceKind.LIBRARY);
- _assertHasSourceKind('dart:math', SourceKind.LIBRARY);
- // parts
- _assertHasSourceKind('dart:core/bool.dart', SourceKind.PART);
- _assertHasSourceKind('dart:async/future.dart', SourceKind.PART);
- // unknown
- _assertHasSourceKind('dart:no_such_library.dart', null);
- _assertHasSourceKind('dart:core/no_such_part.dart', null);
- }
-
- test_typeProvider() {
- if (context == null) {
- return;
- }
- AnalysisContextTarget target = AnalysisContextTarget.request;
- CacheEntry cacheEntry = context.getCacheEntry(target);
- bool hasResult = context.aboutToComputeResult(cacheEntry, TYPE_PROVIDER);
- expect(hasResult, isTrue);
- expect(cacheEntry.getState(TYPE_PROVIDER), CacheState.VALID);
- TypeProvider typeProvider = cacheEntry.getValue(TYPE_PROVIDER);
- expect(typeProvider.objectType, isNotNull);
- expect(typeProvider.boolType, isNotNull);
- expect(typeProvider.intType, isNotNull);
- expect(typeProvider.futureType, isNotNull);
- expect(typeProvider.futureDynamicType, isNotNull);
- expect(typeProvider.streamType, isNotNull);
- expect(typeProvider.streamDynamicType, isNotNull);
- }
-
- void _assertHasLibraryElement(CacheEntry cacheEntry,
- ResultDescriptor<LibraryElement> resultDescriptor) {
- bool hasResult = context.aboutToComputeResult(cacheEntry, resultDescriptor);
- expect(hasResult, isTrue);
- expect(cacheEntry.getState(resultDescriptor), CacheState.VALID);
- LibraryElement library = cacheEntry.getValue(resultDescriptor);
- expect(library, isNotNull);
- }
-
- void _assertHasSourceKind(String uri, SourceKind expectedValue) {
- Source target = context.sourceFactory.forUri(uri);
- CacheEntry cacheEntry = context.getCacheEntry(target);
- ResultDescriptor<SourceKind> resultDescriptor = SOURCE_KIND;
- bool hasResult = context.aboutToComputeResult(cacheEntry, resultDescriptor);
- if (expectedValue == null) {
- expect(hasResult, isFalse);
- expect(cacheEntry.getState(resultDescriptor), CacheState.INVALID);
- } else {
- expect(hasResult, isTrue);
- expect(cacheEntry.getState(resultDescriptor), CacheState.VALID);
- SourceKind value = cacheEntry.getValue(resultDescriptor);
- expect(value, expectedValue);
- }
- }
-
- void _assertIsLibraryElementReady(
- CacheEntry cacheEntry, ResultDescriptor<bool> resultDescriptor) {
- bool hasResult = context.aboutToComputeResult(cacheEntry, resultDescriptor);
- expect(hasResult, isTrue);
- expect(cacheEntry.getState(resultDescriptor), CacheState.VALID);
- bool ready = cacheEntry.getValue(resultDescriptor);
- expect(ready, isTrue);
- }
-
- void _assertLibraryResults(String uri) {
- Source target = context.sourceFactory.forUri(uri);
- CacheEntry cacheEntry = context.getCacheEntry(target);
- _assertHasLibraryElement(cacheEntry, LIBRARY_ELEMENT1);
- _assertHasLibraryElement(cacheEntry, LIBRARY_ELEMENT2);
- _assertHasLibraryElement(cacheEntry, LIBRARY_ELEMENT3);
- _assertHasLibraryElement(cacheEntry, LIBRARY_ELEMENT4);
- _assertHasLibraryElement(cacheEntry, LIBRARY_ELEMENT5);
- _assertHasLibraryElement(cacheEntry, LIBRARY_ELEMENT6);
- _assertHasLibraryElement(cacheEntry, LIBRARY_ELEMENT7);
- _assertHasLibraryElement(cacheEntry, LIBRARY_ELEMENT8);
- _assertHasLibraryElement(cacheEntry, LIBRARY_ELEMENT);
- _assertIsLibraryElementReady(cacheEntry, READY_LIBRARY_ELEMENT2);
- _assertIsLibraryElementReady(cacheEntry, READY_LIBRARY_ELEMENT5);
- _assertIsLibraryElementReady(cacheEntry, READY_LIBRARY_ELEMENT6);
- }
-
- void _initializeSdkBundle() {
- if (sdkBundle != null) {
- return;
- }
- // prepare analyzer path
- String analyzerPath = getAnalyzerPackagePath();
- if (analyzerPath == null) {
- return;
- }
- // prepare summary path
- String sdkSummaryPath = pathos.join(
- analyzerPath, 'test', 'src', 'summary', 'sdk_analysis_summary');
- File file = new File(sdkSummaryPath);
- if (!file.existsSync()) {
- return;
- }
- // load SdkBundle
- List<int> bytes = file.readAsBytesSync();
- sdkBundle = new SdkBundle.fromBuffer(bytes);
- }
-
- void _initializeSdkContext() {
- _initializeSdkBundle();
- if (sdkBundle == null) {
- return;
- }
- context = new _TestSummarySdkAnalysisContext(sdkBundle);
- DartSdk sdk = new _TestSummaryDartSdk();
- context.sourceFactory = new SourceFactory([new DartUriResolver(sdk)]);
- }
-
- static String getAnalyzerPackagePath() {
- if (!_analyzerPackagePathInitialized) {
- _analyzerPackagePathInitialized = true;
- _analyzerPackagePath = _computeAnalyzerPackagePath();
- }
- return _analyzerPackagePath;
- }
-
- /**
- * Return the path to the `analyzer` package root, or `null` if it cannot
- * be determined.
- *
- * This method expects that one of the `analyzer` tests was run, so
- * [Platform.script] is inside of the `analyzer/test` folder.
- */
- static String _computeAnalyzerPackagePath() {
- Uri uri = Platform.script;
- if (uri == null || uri.scheme != 'file') {
- return null;
- }
- String path = pathos.fromUri(uri);
- List<String> segments = pathos.split(path);
- while (segments.length > 2) {
- if (segments[segments.length - 1] == 'test' &&
- segments[segments.length - 2] == 'analyzer') {
- segments.removeLast();
- return pathos.joinAll(segments);
- }
- segments.removeLast();
- }
- return null;
- }
-}
-
-class _TestSummaryDartSdk implements DartSdk {
- @override
- Source mapDartUri(String uriStr) {
- Uri uri = Uri.parse(uriStr);
- List<String> segments = uri.pathSegments;
- if (segments.length == 1) {
- String libraryName = segments.first;
- String path = '/sdk/$libraryName/$libraryName.dart';
- return new _TestSummarySdkSource(path, uri);
- } else {
- String path = '/sdk/' + segments.join('/');
- return new _TestSummarySdkSource(path, uri);
- }
- }
-
- noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
-}
-
-/**
- * [SummarySdkAnalysisContext] with simplified cache creation.
- */
-class _TestSummarySdkAnalysisContext extends SummarySdkAnalysisContext {
- _TestSummarySdkAnalysisContext(SdkBundle bundle) : super(bundle);
-
- @override
- AnalysisCache createCacheFromSourceFactory(SourceFactory factory) {
- return new AnalysisCache(<CachePartition>[new SdkCachePartition(this)]);
- }
-}
-
-class _TestSummarySdkSource extends TestSourceWithUri {
- _TestSummarySdkSource(String path, Uri uri) : super(path, uri);
-
- @override
- bool get isInSystemLibrary => true;
-
- @override
- Uri resolveRelativeUri(Uri relativeUri) {
- Uri baseUri = uri;
- if (uri.scheme == 'dart') {
- String libraryName = uri.path;
- baseUri = Uri.parse('dart:$libraryName/$libraryName.dart');
- }
- return baseUri.resolveUri(relativeUri);
- }
-}
« no previous file with comments | « pkg/analyzer/test/src/summary/resynthesize_test.dart ('k') | pkg/analyzer/test/src/summary/test_all.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698