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

Side by Side Diff: pkg/analyzer/test/src/summary/incremental_cache_test.dart

Issue 1814013004: Add source kind to the incremental cache. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 9 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) 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 import 'package:analyzer/file_system/file_system.dart'; 5 import 'package:analyzer/file_system/file_system.dart';
6 import 'package:analyzer/src/generated/source.dart';
6 import 'package:analyzer/src/summary/idl.dart'; 7 import 'package:analyzer/src/summary/idl.dart';
7 import 'package:analyzer/src/summary/incremental_cache.dart'; 8 import 'package:analyzer/src/summary/incremental_cache.dart';
8 import 'package:unittest/unittest.dart'; 9 import 'package:unittest/unittest.dart';
9 10
10 import '../../reflective_tests.dart'; 11 import '../../reflective_tests.dart';
11 import '../abstract_single_unit.dart'; 12 import '../abstract_single_unit.dart';
12 13
13 main() { 14 main() {
14 groupSep = ' | '; 15 groupSep = ' | ';
15 runReflectiveTests(LibraryBundleCacheTest); 16 runReflectiveTests(LibraryBundleCacheTest);
16 } 17 }
17 18
18 /** 19 /**
19 * TODO(scheglov) write more tests for invalidation. 20 * TODO(scheglov) write more tests for invalidation.
20 */ 21 */
21 @reflectiveTest 22 @reflectiveTest
22 class LibraryBundleCacheTest extends AbstractSingleUnitTest { 23 class LibraryBundleCacheTest extends AbstractSingleUnitTest {
23 Folder cacheFolder; 24 Folder cacheFolder;
24 LibraryBundleCache cache; 25 LibraryBundleCache cache;
25 26
26 @override 27 @override
27 void setUp() { 28 void setUp() {
28 super.setUp(); 29 super.setUp();
29 cacheFolder = resourceProvider.newFolder('/cache'); 30 cacheFolder = resourceProvider.newFolder('/cache');
30 cache = new LibraryBundleCache('pid.tmp', cacheFolder, context, <int>[]); 31 cache = new LibraryBundleCache('pid.tmp', cacheFolder, context, <int>[]);
31 } 32 }
32 33
34 void test_getSourceKind_library() {
35 resolveTestUnit(r'''
36 main() {}
37 ''');
38 cache.putLibrary(testLibraryElement);
39 expect(cache.getSourceKind(testSource), SourceKind.LIBRARY);
40 }
41
42 void test_getSourceKind_notCached() {
43 resolveTestUnit(r'''
44 main() {}
45 ''');
46 expect(cache.getSourceKind(testSource), isNull);
47 }
48
49 void test_getSourceKind_part() {
50 Source partSource = addSource('/foo.dart', 'part of lib;');
51 resolveTestUnit(r'''
52 library lib;
53 part 'foo.dart';
54 ''');
55 cache.putLibrary(testLibraryElement);
56 expect(cache.getSourceKind(testSource), SourceKind.LIBRARY);
57 expect(cache.getSourceKind(partSource), SourceKind.PART);
58 }
59
33 void test_readBundle_emptyCache() { 60 void test_readBundle_emptyCache() {
34 resolveTestUnit('main() {}'); 61 resolveTestUnit('main() {}');
35 // the cache is empty, no bundle 62 // the cache is empty, no bundle
36 PackageBundle bundle = cache.readBundle(testSource); 63 PackageBundle bundle = cache.readBundle(testSource);
37 expect(bundle, isNull); 64 expect(bundle, isNull);
38 } 65 }
39 66
40 void test_readBundle_importSdk() { 67 void test_readBundle_exportLib() {
68 addSource('/a.dart', '// 1');
41 resolveTestUnit(r''' 69 resolveTestUnit(r'''
42 import 'dart:async'; 70 export 'a.dart';
43 main() {} 71 main() {}
44 '''); 72 ''');
45 cache.putLibrary(testLibraryElement); 73 cache.putLibrary(testLibraryElement);
46 // has bundle 74 // has bundle
47 PackageBundle bundle = cache.readBundle(testSource); 75 expect(cache.readBundle(testSource), isNotNull);
48 expect(bundle, isNotNull); 76 // update a.dart, no bundle
77 cache.clearInternalCaches();
78 resourceProvider.updateFile('/a.dart', '// 2');
79 expect(cache.readBundle(testSource), isNull);
49 } 80 }
50 81
51 void test_readBundle_importLib() { 82 void test_readBundle_importLib() {
52 addSource('/a.dart', '// 1'); 83 addSource('/a.dart', '// 1');
53 resolveTestUnit(r''' 84 resolveTestUnit(r'''
54 import 'a.dart'; 85 import 'a.dart';
55 main() {} 86 main() {}
56 '''); 87 ''');
57 cache.putLibrary(testLibraryElement); 88 cache.putLibrary(testLibraryElement);
58 // has bundle 89 // has bundle
59 expect(cache.readBundle(testSource), isNotNull); 90 expect(cache.readBundle(testSource), isNotNull);
60 // update a.dart, no bundle 91 // update a.dart, no bundle
61 cache.clearInternalCaches(); 92 cache.clearInternalCaches();
62 resourceProvider.updateFile('/a.dart', '// 2'); 93 resourceProvider.updateFile('/a.dart', '// 2');
63 expect(cache.readBundle(testSource), isNull); 94 expect(cache.readBundle(testSource), isNull);
64 } 95 }
65 96
97 void test_readBundle_importSdk() {
98 resolveTestUnit(r'''
99 import 'dart:async';
100 main() {}
101 ''');
102 cache.putLibrary(testLibraryElement);
103 // has bundle
104 PackageBundle bundle = cache.readBundle(testSource);
105 expect(bundle, isNotNull);
106 }
107
66 void test_readBundle_withoutDependencies() { 108 void test_readBundle_withoutDependencies() {
67 resolveTestUnit('main() {}'); 109 resolveTestUnit('main() {}');
68 cache.putLibrary(testLibraryElement); 110 cache.putLibrary(testLibraryElement);
69 // has bundle 111 // has bundle
70 PackageBundle bundle = cache.readBundle(testSource); 112 PackageBundle bundle = cache.readBundle(testSource);
71 expect(bundle, isNotNull); 113 expect(bundle, isNotNull);
72 } 114 }
73 } 115 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698