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

Side by Side Diff: pkg/analyzer/lib/src/summary/package_bundle_reader.dart

Issue 2186143002: Tests for several SummaryDataStore and ResynthesizerResultProvider features. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 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 import 'dart:io' as io; 1 import 'dart:io' as io;
2 2
3 import 'package:analyzer/dart/element/element.dart'; 3 import 'package:analyzer/dart/element/element.dart';
4 import 'package:analyzer/src/context/cache.dart'; 4 import 'package:analyzer/src/context/cache.dart';
5 import 'package:analyzer/src/context/context.dart'; 5 import 'package:analyzer/src/context/context.dart';
6 import 'package:analyzer/src/dart/element/element.dart'; 6 import 'package:analyzer/src/dart/element/element.dart';
7 import 'package:analyzer/src/generated/engine.dart'; 7 import 'package:analyzer/src/generated/engine.dart';
8 import 'package:analyzer/src/generated/java_io.dart'; 8 import 'package:analyzer/src/generated/java_io.dart';
9 import 'package:analyzer/src/generated/resolver.dart'; 9 import 'package:analyzer/src/generated/resolver.dart';
10 import 'package:analyzer/src/generated/source.dart'; 10 import 'package:analyzer/src/generated/source.dart';
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 entry.setValue(result, SourceKind.LIBRARY, TargetedResult.EMPTY_LIST); 179 entry.setValue(result, SourceKind.LIBRARY, TargetedResult.EMPTY_LIST);
180 return true; 180 return true;
181 } 181 }
182 if (_dataStore.unlinkedMap.containsKey(uriString)) { 182 if (_dataStore.unlinkedMap.containsKey(uriString)) {
183 entry.setValue(result, SourceKind.PART, TargetedResult.EMPTY_LIST); 183 entry.setValue(result, SourceKind.PART, TargetedResult.EMPTY_LIST);
184 return true; 184 return true;
185 } 185 }
186 return false; 186 return false;
187 } else if (result == CONTAINING_LIBRARIES) { 187 } else if (result == CONTAINING_LIBRARIES) {
188 List<String> libraryUriStrings = 188 List<String> libraryUriStrings =
189 _dataStore._getContainingLibraryUris(uriString); 189 _dataStore.getContainingLibraryUris(uriString);
190 if (libraryUriStrings != null) { 190 if (libraryUriStrings != null) {
191 List<Source> librarySources = libraryUriStrings 191 List<Source> librarySources = libraryUriStrings
192 .map((libraryUriString) => 192 .map((libraryUriString) =>
193 context.sourceFactory.resolveUri(target, libraryUriString)) 193 context.sourceFactory.resolveUri(target, libraryUriString))
194 .toList(growable: false); 194 .toList(growable: false);
195 entry.setValue(result, librarySources, TargetedResult.EMPTY_LIST); 195 entry.setValue(result, librarySources, TargetedResult.EMPTY_LIST);
196 return true; 196 return true;
197 } 197 }
198 return false; 198 return false;
199 } 199 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 String uri = bundle.unlinkedUnitUris[i]; 301 String uri = bundle.unlinkedUnitUris[i];
302 uriToSummaryPath[uri] = path; 302 uriToSummaryPath[uri] = path;
303 unlinkedMap[uri] = bundle.unlinkedUnits[i]; 303 unlinkedMap[uri] = bundle.unlinkedUnits[i];
304 } 304 }
305 for (int i = 0; i < bundle.linkedLibraryUris.length; i++) { 305 for (int i = 0; i < bundle.linkedLibraryUris.length; i++) {
306 String uri = bundle.linkedLibraryUris[i]; 306 String uri = bundle.linkedLibraryUris[i];
307 linkedMap[uri] = bundle.linkedLibraries[i]; 307 linkedMap[uri] = bundle.linkedLibraries[i];
308 } 308 }
309 } 309 }
310 310
311 void _fillMaps(String path) {
312 io.File file = new io.File(path);
313 List<int> buffer = file.readAsBytesSync();
314 PackageBundle bundle = new PackageBundle.fromBuffer(buffer);
315 addBundle(path, bundle);
316 }
317
318 /** 311 /**
319 * Return a list of absolute URIs of the libraries that contain the unit with 312 * Return a list of absolute URIs of the libraries that contain the unit with
320 * the given [unitUriString], or `null` if no such library is in the store. 313 * the given [unitUriString], or `null` if no such library is in the store.
321 */ 314 */
322 List<String> _getContainingLibraryUris(String unitUriString) { 315 List<String> getContainingLibraryUris(String unitUriString) {
323 // The unit is the defining unit of a library. 316 // The unit is the defining unit of a library.
324 if (linkedMap.containsKey(unitUriString)) { 317 if (linkedMap.containsKey(unitUriString)) {
325 return <String>[unitUriString]; 318 return <String>[unitUriString];
326 } 319 }
327 // Check every unlinked unit whether it uses [unitUri] as a part. 320 // Check every unlinked unit whether it uses [unitUri] as a part.
328 List<String> libraryUriStrings = <String>[]; 321 List<String> libraryUriStrings = <String>[];
329 unlinkedMap.forEach((unlinkedUnitUriString, unlinkedUnit) { 322 unlinkedMap.forEach((unlinkedUnitUriString, unlinkedUnit) {
330 Uri libraryUri = FastUri.parse(unlinkedUnitUriString); 323 Uri libraryUri = FastUri.parse(unlinkedUnitUriString);
331 for (String partUriString in unlinkedUnit.publicNamespace.parts) { 324 for (String partUriString in unlinkedUnit.publicNamespace.parts) {
332 Uri partUri = FastUri.parse(partUriString); 325 Uri partUri = FastUri.parse(partUriString);
333 String partAbsoluteUriString = 326 String partAbsoluteUriString =
334 resolveRelativeUri(libraryUri, partUri).toString(); 327 resolveRelativeUri(libraryUri, partUri).toString();
335 if (partAbsoluteUriString == unitUriString) { 328 if (partAbsoluteUriString == unitUriString) {
336 libraryUriStrings.add(unlinkedUnitUriString); 329 libraryUriStrings.add(unlinkedUnitUriString);
337 } 330 }
338 } 331 }
339 }); 332 });
340 return libraryUriStrings.isNotEmpty ? libraryUriStrings : null; 333 return libraryUriStrings.isNotEmpty ? libraryUriStrings : null;
341 } 334 }
335
336 void _fillMaps(String path) {
337 io.File file = new io.File(path);
338 List<int> buffer = file.readAsBytesSync();
339 PackageBundle bundle = new PackageBundle.fromBuffer(buffer);
340 addBundle(path, bundle);
341 }
342 } 342 }
343 343
344 /** 344 /**
345 * A concrete resynthesizer that serves summaries from given file paths. 345 * A concrete resynthesizer that serves summaries from given file paths.
346 */ 346 */
347 class _FileBasedSummaryResynthesizer extends SummaryResynthesizer { 347 class _FileBasedSummaryResynthesizer extends SummaryResynthesizer {
348 final SummaryDataStore _dataStore; 348 final SummaryDataStore _dataStore;
349 349
350 _FileBasedSummaryResynthesizer( 350 _FileBasedSummaryResynthesizer(
351 SummaryResynthesizer parent, 351 SummaryResynthesizer parent,
(...skipping 27 matching lines...) Expand all
379 * also provides [summaryPath]. 379 * also provides [summaryPath].
380 */ 380 */
381 class _InSummaryFallbackSource extends FileBasedSource 381 class _InSummaryFallbackSource extends FileBasedSource
382 implements InSummarySource { 382 implements InSummarySource {
383 @override 383 @override
384 final String summaryPath; 384 final String summaryPath;
385 385
386 _InSummaryFallbackSource(JavaFile file, Uri uri, this.summaryPath) 386 _InSummaryFallbackSource(JavaFile file, Uri uri, this.summaryPath)
387 : super(file, uri); 387 : super(file, uri);
388 } 388 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/test/src/summary/test_all.dart » ('j') | pkg/analyzer/test/src/summary/test_all.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698