| Index: pkg/barback/test/package_graph/transform/concurrency_test.dart
|
| diff --git a/pkg/barback/test/package_graph/transform/concurrency_test.dart b/pkg/barback/test/package_graph/transform/concurrency_test.dart
|
| index 3dd2da2f39011f33235cac6a301671db8da519cc..5b0d2e9709beabf82686353bc5f67a0698568187 100644
|
| --- a/pkg/barback/test/package_graph/transform/concurrency_test.dart
|
| +++ b/pkg/barback/test/package_graph/transform/concurrency_test.dart
|
| @@ -505,4 +505,38 @@ main() {
|
| expectAsset("app|foo.in", "foo");
|
| buildShouldSucceed();
|
| });
|
| +
|
| + test("re-runs if the primary input is invalidated before accessing", () {
|
| + var transformer1 = new RewriteTransformer("txt", "mid");
|
| + var transformer2 = new RewriteTransformer("mid", "out");
|
| +
|
| + initGraph([
|
| + "app|foo.txt"
|
| + ], {"app": [
|
| + [transformer1],
|
| + [transformer2]
|
| + ]});
|
| +
|
| + transformer2.pausePrimaryInput();
|
| + updateSources(["app|foo.txt"]);
|
| +
|
| + // Wait long enough to ensure that transformer1 has completed and
|
| + // transformer2 has started.
|
| + schedule(pumpEventQueue);
|
| +
|
| + // Update the source again so that transformer1 invalidates the primary
|
| + // input of transformer2.
|
| + transformer1.pauseApply();
|
| + modifyAsset("app|foo.txt", "new foo");
|
| + updateSources(["app|foo.txt"]);
|
| +
|
| + transformer2.resumePrimaryInput();
|
| + transformer1.resumeApply();
|
| +
|
| + expectAsset("app|foo.out", "new foo.mid.out");
|
| + buildShouldSucceed();
|
| +
|
| + expect(transformer1.numRuns, completion(equals(2)));
|
| + expect(transformer2.numRuns, completion(equals(2)));
|
| + });
|
| }
|
|
|