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

Unified Diff: pkg/barback/test/package_graph/declaring_transformer_test.dart

Issue 255483002: Expand barback's notion of dirtiness to understand declaredness. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 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/barback/test/package_graph/declaring_transformer_test.dart
diff --git a/pkg/barback/test/package_graph/declaring_transformer_test.dart b/pkg/barback/test/package_graph/declaring_transformer_test.dart
index d45cbbdb595a6f184a4ac2da5788c2f8358cfef9..a61fb2b936c1746ebcbdd509d618a2a2abe9edad 100644
--- a/pkg/barback/test/package_graph/declaring_transformer_test.dart
+++ b/pkg/barback/test/package_graph/declaring_transformer_test.dart
@@ -61,19 +61,58 @@ main() {
buildShouldSucceed();
});
- // TODO(nweiz): Enable this test when issue 18226 is fixed.
- // test("fails to get a consumed asset before apply is finished", () {
- // var transformer = new DeclaringRewriteTransformer("blub", "blab")
- // ..consumePrimary = true;
- // initGraph(["app|foo.blub"], {"app": [[transformer]]});
- //
- // transformer.pauseApply();
- // updateSources(["app|foo.blub"]);
- // expectNoAsset("app|foo.blub");
- //
- // transformer.resumeApply();
- // buildShouldSucceed();
- // });
+ test("fails to get a consumed asset before apply is finished", () {
+ var transformer = new DeclaringRewriteTransformer("blub", "blab")
+ ..consumePrimary = true;
+ initGraph(["app|foo.blub"], {"app": [[transformer]]});
+
+ transformer.pauseApply();
+ updateSources(["app|foo.blub"]);
+ expectNoAsset("app|foo.blub");
+
+ transformer.resumeApply();
+ buildShouldSucceed();
+ });
+
+ test("blocks on getting a declared asset that wasn't generated last run", () {
+ var transformer = new DeclaringCheckContentAndRenameTransformer(
+ "txt", "yes", "out", "done");
+ initGraph({"app|foo.txt": "no"}, {"app": [[transformer]]});
+
+ updateSources(["app|foo.txt"]);
+ expectNoAsset("app|foo.out");
+ buildShouldSucceed();
+
+ // The transform should remember that foo.out was declared, so it should
+ // expect that it might still be generated even though it wasn't last time.
+ transformer.pauseApply();
+ modifyAsset("app|foo.txt", "yes");
+ updateSources(["app|foo.txt"]);
+ expectAssetDoesNotComplete("app|foo.out");
+
+ transformer.resumeApply();
+ expectAsset("app|foo.out", "done");
+ buildShouldSucceed();
+ });
+
+ test("doesn't block on on getting an undeclared asset that wasn't generated "
+ "last run", () {
+ var transformer = new DeclaringCheckContentAndRenameTransformer(
+ "txt", "yes", "out", "done");
+ initGraph({"app|foo.txt": "no"}, {"app": [[transformer]]});
+
+ updateSources(["app|foo.txt"]);
+ expectNoAsset("app|foo.out");
+ buildShouldSucceed();
+
+ transformer.pauseApply();
+ modifyAsset("app|foo.txt", "yes");
+ updateSources(["app|foo.txt"]);
+ expectNoAsset("app|undeclared.out");
+
+ transformer.resumeApply();
+ buildShouldSucceed();
+ });
Bob Nystrom 2014/04/25 22:02:33 There's a bunch of code (all the .dirtiest() calls
nweiz 2014/04/28 21:02:00 Done.
test("waits until apply is finished to get an overwritten asset", () {
var transformer = new DeclaringRewriteTransformer("blub", "blub");
@@ -143,36 +182,38 @@ main() {
expect(declaring.numRuns, completion(equals(2)));
});
- group("with an error in declareOutputs", () {
- test("still runs apply", () {
- initGraph(["app|foo.txt"], {"app": [[
- new DeclaringBadTransformer("app|out.txt",
- declareError: true, applyError: false)
- ]]});
-
- updateSources(["app|foo.txt"]);
- expectAsset("app|out.txt", "bad out");
- expectAsset("app|foo.txt", "foo");
- buildShouldFail([isTransformerException(BadTransformer.ERROR)]);
- });
-
- test("waits for apply to complete before passing through the input even if "
- "consumePrimary was called", () {
- var transformer = new DeclaringBadTransformer("app|out.txt",
- declareError: true, applyError: false)..consumePrimary = true;
- initGraph(["app|foo.txt"], {"app": [[transformer]]});
-
- transformer.pauseApply();
- updateSources(["app|foo.txt"]);
- expectAssetDoesNotComplete("app|out.txt");
- expectAssetDoesNotComplete("app|foo.txt");
-
- transformer.resumeApply();
- expectAsset("app|out.txt", "bad out");
- expectNoAsset("app|foo.txt");
- buildShouldFail([isTransformerException(BadTransformer.ERROR)]);
- });
- });
+ // TODO(nweiz): Re-enable these when barback is capable of dealing with a
+ // changing [TransformNode.deferred] value.
Bob Nystrom 2014/04/25 22:02:33 Tracking bug?
nweiz 2014/04/28 21:02:00 I already have a patch for this, I don't think it'
+ // group("with an error in declareOutputs", () {
+ // test("still runs apply", () {
+ // initGraph(["app|foo.txt"], {"app": [[
+ // new DeclaringBadTransformer("app|out.txt",
+ // declareError: true, applyError: false)
+ // ]]});
+ //
+ // updateSources(["app|foo.txt"]);
+ // expectAsset("app|out.txt", "bad out");
+ // expectAsset("app|foo.txt", "foo");
+ // buildShouldFail([isTransformerException(BadTransformer.ERROR)]);
+ // });
+ //
+ // test("waits for apply to complete before passing through the input even if "
+ // "consumePrimary was called", () {
+ // var transformer = new DeclaringBadTransformer("app|out.txt",
+ // declareError: true, applyError: false)..consumePrimary = true;
+ // initGraph(["app|foo.txt"], {"app": [[transformer]]});
+ //
+ // transformer.pauseApply();
+ // updateSources(["app|foo.txt"]);
+ // expectAssetDoesNotComplete("app|out.txt");
+ // expectAssetDoesNotComplete("app|foo.txt");
+ //
+ // transformer.resumeApply();
+ // expectAsset("app|out.txt", "bad out");
+ // expectNoAsset("app|foo.txt");
+ // buildShouldFail([isTransformerException(BadTransformer.ERROR)]);
+ // });
+ // });
test("with an error in apply still passes through the input", () {
initGraph(["app|foo.txt"], {"app": [[

Powered by Google App Engine
This is Rietveld 408576698