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

Unified Diff: pkg/front_end/test/incremental_kernel_generator_test.dart

Issue 2931183003: Implement promised watch behaviour for used == true. (Closed)
Patch Set: Created 3 years, 6 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
Index: pkg/front_end/test/incremental_kernel_generator_test.dart
diff --git a/pkg/front_end/test/incremental_kernel_generator_test.dart b/pkg/front_end/test/incremental_kernel_generator_test.dart
index 6bac963bb5c695213e299f8635216a3f668b84b9..c7cd4cd79169edf51620c7a6f18080b0a5f72e19 100644
--- a/pkg/front_end/test/incremental_kernel_generator_test.dart
+++ b/pkg/front_end/test/incremental_kernel_generator_test.dart
@@ -30,6 +30,9 @@ class IncrementalKernelGeneratorTest {
/// Virtual filesystem for testing.
final fileSystem = new MemoryFileSystem(Uri.parse('file:///'));
+ /// The used file watcher.
+ WatchUsedFilesFn watchFn = (uri, used) {};
+
/// The object under test.
IncrementalKernelGenerator incrementalKernelGenerator;
@@ -48,8 +51,8 @@ class IncrementalKernelGeneratorTest {
..chaseDependencies = true
..dartLibraries = dartLibraries
..packagesFileUri = Uri.parse('file:///test/.packages');
- incrementalKernelGenerator = await IncrementalKernelGenerator.newInstance(
- compilerOptions, entryPoint);
+ incrementalKernelGenerator = await IncrementalKernelGenerator
+ .newInstance(compilerOptions, entryPoint, watch: watchFn);
return (await incrementalKernelGenerator.computeDelta()).newProgram;
}
@@ -329,6 +332,26 @@ static field (core::String) → core::int f;
''');
}
+ test_invalidateAll() async {
+ writeFile('/test/.packages', '');
+ Uri aUri = writeFile('/test/a.dart', "import 'b.dart';\nint a = b;");
+ Uri bUri = writeFile('/test/b.dart', 'var b = 1;');
+
+ Program program = await getInitialState(aUri);
+ expect(_getLibraryText(_getLibrary(program, aUri)), contains("int a ="));
+ expect(_getLibraryText(_getLibrary(program, bUri)), contains("b = 1"));
+
+ writeFile('/test/a.dart', "import 'b.dart';\ndouble a = b;");
+ writeFile('/test/b.dart', 'var b = 2;');
+ incrementalKernelGenerator.invalidateAll();
+
+ DeltaProgram delta = await incrementalKernelGenerator.computeDelta();
+ program = delta.newProgram;
+ _assertLibraryUris(program, includes: [aUri, bUri]);
+ expect(_getLibraryText(_getLibrary(program, aUri)), contains("double a ="));
+ expect(_getLibraryText(_getLibrary(program, bUri)), contains("b = 2"));
+ }
+
test_limited_ast_to_binary() async {
writeFile('/test/.packages', 'test:lib/');
String aPath = '/test/lib/a.dart';
@@ -663,24 +686,48 @@ static method main() → void {}
}
}
- test_invalidateAll() async {
- writeFile('/test/.packages', '');
- Uri aUri = writeFile('/test/a.dart', "import 'b.dart';\nint a = b;");
- Uri bUri = writeFile('/test/b.dart', 'var b = 1;');
+ test_watch() async {
+ writeFile('/test/.packages', 'test:lib/');
+ String aPath = '/test/lib/a.dart';
+ String bPath = '/test/lib/b.dart';
+ String cPath = '/test/lib/c.dart';
+ Uri aUri = writeFile(aPath, '');
+ Uri bUri = writeFile(bPath, '');
+ Uri cUri = writeFile(
+ cPath,
+ r'''
+import 'a.dart';
+''');
- Program program = await getInitialState(aUri);
- expect(_getLibraryText(_getLibrary(program, aUri)), contains("int a ="));
- expect(_getLibraryText(_getLibrary(program, bUri)), contains("b = 1"));
+ var usedFiles = <Uri>[];
+ watchFn = (Uri uri, bool used) {
+ expect(used, isTrue);
+ usedFiles.add(uri);
+ return new Future.value();
+ };
- writeFile('/test/a.dart', "import 'b.dart';\ndouble a = b;");
- writeFile('/test/b.dart', 'var b = 2;');
- incrementalKernelGenerator.invalidateAll();
+ {
+ await getInitialState(cUri);
+ // We use at least c.dart and a.dart now.
+ expect(usedFiles, contains(cUri));
+ expect(usedFiles, contains(aUri));
+ usedFiles.clear();
+ }
- DeltaProgram delta = await incrementalKernelGenerator.computeDelta();
- program = delta.newProgram;
- _assertLibraryUris(program, includes: [aUri, bUri]);
- expect(_getLibraryText(_getLibrary(program, aUri)), contains("double a ="));
- expect(_getLibraryText(_getLibrary(program, bUri)), contains("b = 2"));
+ // Update c.dart to reference also b.dart file.
+ writeFile(
+ cPath,
+ r'''
+import 'a.dart';
+import 'b.dart';
+''');
+ incrementalKernelGenerator.invalidate(cUri);
+ {
+ await incrementalKernelGenerator.computeDelta();
+ // The only new file is b.dart now.
+ expect(usedFiles, [bUri]);
+ usedFiles.clear();
+ }
}
/// Write the given [text] of the file with the given [path] into the

Powered by Google App Engine
This is Rietveld 408576698