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

Unified Diff: sdk/lib/_internal/pub/test/transformer/cache_test.dart

Issue 651993006: "pub get" doesn't choke on previously-cached unknown transformers. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes. Created 6 years, 2 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: sdk/lib/_internal/pub/test/transformer/cache_test.dart
diff --git a/sdk/lib/_internal/pub/test/transformer/cache_test.dart b/sdk/lib/_internal/pub/test/transformer/cache_test.dart
index 270d307cd94e6029dedfdfe27ed3903857485d88..d4a51a0fae36711d9f29a37b8011f8a9d8c846e0 100644
--- a/sdk/lib/_internal/pub/test/transformer/cache_test.dart
+++ b/sdk/lib/_internal/pub/test/transformer/cache_test.dart
@@ -4,6 +4,7 @@
library pub_tests;
+import 'package:scheduled_test/scheduled_stream.dart';
import 'package:scheduled_test/scheduled_test.dart';
import '../descriptor.dart' as d;
@@ -53,6 +54,8 @@ void setUp() {
d.file("transformer.dart", replaceTransformer("Goodbye", "See ya"))
])
]);
+
+ builder.serve("baz", "1.2.3");
});
d.dir(appPath, [
@@ -266,6 +269,60 @@ main() {
process.stdout.expect("See ya!");
process.shouldExit();
});
+
+ // Issue 21298.
+ integration("doesn't recache when a transformer is removed", () {
+ setUp();
+
+ d.dir(appPath, [
+ d.pubspec({
+ "name": "myapp",
+ "dependencies": {
+ "foo": "1.2.3",
+ "bar": "1.2.3"
+ },
+ "transformers": ["foo", "bar"]
+ }),
+ d.dir("bin", [
+ d.file("myapp.dart", "main() => print('Hello!');")
+ ])
+ ]).create();
+
+ var process = pubRun(args: ['myapp']);
+ process.stdout.expect("See ya!");
+ process.shouldExit();
+
+ d.dir(appPath, [
+ d.pubspec({
+ "name": "myapp",
+ "dependencies": {
+ "foo": "1.2.3",
+ // Add a new dependency to trigger another "pub get". This works
+ // around issue 20498.
+ "baz": "1.2.3"
+ },
+ "transformers": ["foo"]
+ }),
+ d.dir("bin", [
+ d.file("myapp.dart", "main() => print('Hello!');")
+ ])
+ ]).create();
+
+ process = pubRun(args: ['myapp']);
+ process.stdout.expect(
+ "Your pubspec has changed, so we need to update your lockfile:");
+ process.stdout.expect(consumeThrough("Goodbye!"));
+ process.shouldExit();
+
+ // "bar" should still be in the manifest, since there's no reason to
+ // recompile the cache.
+ d.dir(appPath, [
+ d.dir(".pub/transformers", [
+ d.file("manifest.txt", "0.1.2+3\nbar,foo"),
+ d.matcherFile("transformers.snapshot", isNot(isEmpty))
+ ])
+ ]).validate();
+ });
}
String replaceTransformer(String input, String output) {

Powered by Google App Engine
This is Rietveld 408576698