OLD | NEW |
---|---|
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 library barback.test.package_graph.transform_test; | 5 library barback.test.package_graph.transform_test; |
6 | 6 |
7 import 'package:barback/src/utils.dart'; | 7 import 'package:barback/src/utils.dart'; |
8 import 'package:scheduled_test/scheduled_test.dart'; | 8 import 'package:scheduled_test/scheduled_test.dart'; |
9 | 9 |
10 import '../utils.dart'; | 10 import '../utils.dart'; |
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
353 buildShouldSucceed(); | 353 buildShouldSucceed(); |
354 | 354 |
355 removeSources(["app|foo.txt"]); | 355 removeSources(["app|foo.txt"]); |
356 expectNoAsset("app|foo.out"); | 356 expectNoAsset("app|foo.out"); |
357 buildShouldSucceed(); | 357 buildShouldSucceed(); |
358 | 358 |
359 updateSources(["app|foo.txt"]); | 359 updateSources(["app|foo.txt"]); |
360 expectAsset("app|foo.out", "foo.mid.out"); | 360 expectAsset("app|foo.out", "foo.mid.out"); |
361 buildShouldSucceed(); | 361 buildShouldSucceed(); |
362 }); | 362 }); |
363 | |
364 // Regression test for issue 19540. | |
365 solo_test("a phase is removed and then one of its inputs is updated", () { | |
Bob Nystrom
2014/06/19 21:07:29
Don't solo! :)
nweiz
2014/06/19 21:10:53
I dunno, I think this is probably the only really
| |
366 // Have an empty first phase because the first phase is never removed. | |
367 initGraph(["app|foo.txt"], { | |
368 "app": [[], [new RewriteTransformer("txt", "out")]] | |
369 }); | |
370 | |
371 updateSources(["app|foo.txt"]); | |
372 expectAsset("app|foo.out", "foo.out"); | |
373 buildShouldSucceed(); | |
374 | |
375 // First empty both phases. This allows the second phase to be considered | |
376 // idle even when its transformer is no longer running. | |
377 updateTransformers("app", [[], []]); | |
378 buildShouldSucceed(); | |
379 | |
380 // Now remove the second phase. It should unsubscribe from its input's | |
381 // events. | |
382 updateTransformers("app", [[]]); | |
383 buildShouldSucceed(); | |
384 | |
385 // Update the input. With issue 19540, this would cause the removed phase to | |
386 // try to update its status, which would crash. | |
387 updateSources(["app|foo.txt"]); | |
388 buildShouldSucceed(); | |
389 }); | |
363 } | 390 } |
OLD | NEW |