Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 dev_compiler.test.dependency_graph_test; | 5 library dev_compiler.test.dependency_graph_test; |
| 6 | 6 |
| 7 import 'package:unittest/compact_vm_config.dart'; | 7 import 'package:unittest/compact_vm_config.dart'; |
| 8 import 'package:unittest/unittest.dart'; | 8 import 'package:unittest/unittest.dart'; |
| 9 | 9 |
| 10 import 'package:dev_compiler/src/checker/dart_sdk.dart' | 10 import 'package:dev_compiler/src/checker/dart_sdk.dart' |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 543 expect(node.structureChanged, isFalse); | 543 expect(node.structureChanged, isFalse); |
| 544 node.update(graph); | 544 node.update(graph); |
| 545 expect(node.structureChanged, isTrue); | 545 expect(node.structureChanged, isTrue); |
| 546 }); | 546 }); |
| 547 }); | 547 }); |
| 548 }); | 548 }); |
| 549 | 549 |
| 550 group('refresh structure and marks', () { | 550 group('refresh structure and marks', () { |
| 551 test('initial marks', () { | 551 test('initial marks', () { |
| 552 var node = nodeOf('/index3.html'); | 552 var node = nodeOf('/index3.html'); |
| 553 expectGraph(node, 'index3.html'); | 553 expectGraph(node, ''' |
| 554 index3.html | |
| 555 |-- dart_runtime.js | |
| 556 |-- harmony_feature_check.js | |
|
Jennifer Messerly
2015/03/09 16:12:41
not related to this CL, but ... I'm not sure we wa
Siggi Cherem (dart-lang)
2015/03/09 17:31:39
True, I've opened #87 to track
| |
| 557 '''); | |
| 554 refreshStructureAndMarks(node, graph); | 558 refreshStructureAndMarks(node, graph); |
| 555 expectGraph(node, ''' | 559 expectGraph(node, ''' |
| 556 index3.html [needs-rebuild] [structure-changed] | 560 index3.html [needs-rebuild] [structure-changed] |
| 557 |-- a2.dart [needs-rebuild] [structure-changed] | 561 |-- a2.dart [needs-rebuild] [structure-changed] |
| 558 | |-- a3.dart [needs-rebuild] | 562 | |-- a3.dart [needs-rebuild] |
| 559 | |-- a4.dart [needs-rebuild] [structure-changed] | 563 | |-- a4.dart [needs-rebuild] [structure-changed] |
| 560 | | |-- a10.dart [needs-rebuild] | 564 | | |-- a10.dart [needs-rebuild] |
| 561 | |-- a5.dart [needs-rebuild] | 565 | |-- a5.dart [needs-rebuild] |
| 562 | |-- a6.dart (part) [needs-rebuild] | 566 | |-- a6.dart (part) [needs-rebuild] |
| 567 |-- dart_runtime.js [needs-rebuild] | |
| 568 |-- harmony_feature_check.js [needs-rebuild] | |
| 563 '''); | 569 '''); |
| 564 }); | 570 }); |
| 565 | 571 |
| 566 test('cleared marks stay clear', () { | 572 test('cleared marks stay clear', () { |
| 567 var node = nodeOf('/index3.html'); | 573 var node = nodeOf('/index3.html'); |
| 568 refreshStructureAndMarks(node, graph); | 574 refreshStructureAndMarks(node, graph); |
| 569 expectGraph(node, ''' | 575 expectGraph(node, ''' |
| 570 index3.html [needs-rebuild] [structure-changed] | 576 index3.html [needs-rebuild] [structure-changed] |
| 571 |-- a2.dart [needs-rebuild] [structure-changed] | 577 |-- a2.dart [needs-rebuild] [structure-changed] |
| 572 | |-- a3.dart [needs-rebuild] | 578 | |-- a3.dart [needs-rebuild] |
| 573 | |-- a4.dart [needs-rebuild] [structure-changed] | 579 | |-- a4.dart [needs-rebuild] [structure-changed] |
| 574 | | |-- a10.dart [needs-rebuild] | 580 | | |-- a10.dart [needs-rebuild] |
| 575 | |-- a5.dart [needs-rebuild] | 581 | |-- a5.dart [needs-rebuild] |
| 576 | |-- a6.dart (part) [needs-rebuild] | 582 | |-- a6.dart (part) [needs-rebuild] |
| 583 |-- dart_runtime.js [needs-rebuild] | |
| 584 |-- harmony_feature_check.js [needs-rebuild] | |
| 577 '''); | 585 '''); |
| 578 clearMarks(node); | 586 clearMarks(node); |
| 579 expectGraph(node, ''' | 587 expectGraph(node, ''' |
| 580 index3.html | 588 index3.html |
| 581 |-- a2.dart | 589 |-- a2.dart |
| 582 | |-- a3.dart | 590 | |-- a3.dart |
| 583 | |-- a4.dart | 591 | |-- a4.dart |
| 584 | | |-- a10.dart | 592 | | |-- a10.dart |
| 585 | |-- a5.dart | 593 | |-- a5.dart |
| 586 | |-- a6.dart (part) | 594 | |-- a6.dart (part) |
| 595 |-- dart_runtime.js | |
| 596 |-- harmony_feature_check.js | |
| 587 '''); | 597 '''); |
| 588 | 598 |
| 589 refreshStructureAndMarks(node, graph); | 599 refreshStructureAndMarks(node, graph); |
| 590 expectGraph(node, ''' | 600 expectGraph(node, ''' |
| 591 index3.html | 601 index3.html |
| 592 |-- a2.dart | 602 |-- a2.dart |
| 593 | |-- a3.dart | 603 | |-- a3.dart |
| 594 | |-- a4.dart | 604 | |-- a4.dart |
| 595 | | |-- a10.dart | 605 | | |-- a10.dart |
| 596 | |-- a5.dart | 606 | |-- a5.dart |
| 597 | |-- a6.dart (part) | 607 | |-- a6.dart (part) |
| 608 |-- dart_runtime.js | |
| 609 |-- harmony_feature_check.js | |
| 598 '''); | 610 '''); |
| 599 }); | 611 }); |
| 600 | 612 |
| 601 test('needsRebuild mark updated on local modifications', () { | 613 test('needsRebuild mark updated on local modifications', () { |
| 602 var node = nodeOf('/index3.html'); | 614 var node = nodeOf('/index3.html'); |
| 603 refreshStructureAndMarks(node, graph); | 615 refreshStructureAndMarks(node, graph); |
| 604 clearMarks(node); | 616 clearMarks(node); |
| 605 var a3 = nodeOf('/a3.dart'); | 617 var a3 = nodeOf('/a3.dart'); |
| 606 a3.source.contents.modificationTime++; | 618 a3.source.contents.modificationTime++; |
| 607 | 619 |
| 608 refreshStructureAndMarks(node, graph); | 620 refreshStructureAndMarks(node, graph); |
| 609 expectGraph(node, ''' | 621 expectGraph(node, ''' |
| 610 index3.html | 622 index3.html |
| 611 |-- a2.dart | 623 |-- a2.dart |
| 612 | |-- a3.dart [needs-rebuild] | 624 | |-- a3.dart [needs-rebuild] |
| 613 | |-- a4.dart | 625 | |-- a4.dart |
| 614 | | |-- a10.dart | 626 | | |-- a10.dart |
| 615 | |-- a5.dart | 627 | |-- a5.dart |
| 616 | |-- a6.dart (part) | 628 | |-- a6.dart (part) |
| 629 |-- dart_runtime.js | |
| 630 |-- harmony_feature_check.js | |
| 617 '''); | 631 '''); |
| 618 }); | 632 }); |
| 619 | 633 |
| 620 test('structuredChanged mark updated on structure modifications', () { | 634 test('structuredChanged mark updated on structure modifications', () { |
| 621 var node = nodeOf('/index3.html'); | 635 var node = nodeOf('/index3.html'); |
| 622 refreshStructureAndMarks(node, graph); | 636 refreshStructureAndMarks(node, graph); |
| 623 clearMarks(node); | 637 clearMarks(node); |
| 624 var a5 = nodeOf('/a5.dart'); | 638 var a5 = nodeOf('/a5.dart'); |
| 625 a5.source.contents.modificationTime++; | 639 a5.source.contents.modificationTime++; |
| 626 a5.source.contents.data = 'import "a8.dart";'; | 640 a5.source.contents.data = 'import "a8.dart";'; |
| 627 | 641 |
| 628 refreshStructureAndMarks(node, graph); | 642 refreshStructureAndMarks(node, graph); |
| 629 expectGraph(node, ''' | 643 expectGraph(node, ''' |
| 630 index3.html | 644 index3.html |
| 631 |-- a2.dart | 645 |-- a2.dart |
| 632 | |-- a3.dart | 646 | |-- a3.dart |
| 633 | |-- a4.dart | 647 | |-- a4.dart |
| 634 | | |-- a10.dart | 648 | | |-- a10.dart |
| 635 | |-- a5.dart [needs-rebuild] [structure-changed] | 649 | |-- a5.dart [needs-rebuild] [structure-changed] |
| 636 | | |-- a8.dart [needs-rebuild] [structure-changed] | 650 | | |-- a8.dart [needs-rebuild] [structure-changed] |
| 637 | | | |-- a8.dart... | 651 | | | |-- a8.dart... |
| 638 | |-- a6.dart (part) | 652 | |-- a6.dart (part) |
| 653 |-- dart_runtime.js | |
| 654 |-- harmony_feature_check.js | |
| 639 '''); | 655 '''); |
| 640 }); | 656 }); |
| 641 }); | 657 }); |
| 642 | 658 |
| 643 group('rebuild', () { | 659 group('rebuild', () { |
| 644 var results; | 660 var results; |
| 645 void addName(SourceNode n) => results.add(nameFor(n)); | 661 void addName(SourceNode n) => results.add(nameFor(n)); |
| 646 | 662 |
| 647 bool buildNoTransitiveChange(SourceNode n) { | 663 bool buildNoTransitiveChange(SourceNode n) { |
| 648 addName(n); | 664 addName(n); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 661 test('everything build on first run', () { | 677 test('everything build on first run', () { |
| 662 var node = nodeOf('/index3.html'); | 678 var node = nodeOf('/index3.html'); |
| 663 rebuild(node, graph, buildNoTransitiveChange); | 679 rebuild(node, graph, buildNoTransitiveChange); |
| 664 // Note: a6.dart is not included because it built as part of a2.dart | 680 // Note: a6.dart is not included because it built as part of a2.dart |
| 665 expect(results, [ | 681 expect(results, [ |
| 666 'a3.dart', | 682 'a3.dart', |
| 667 'a10.dart', | 683 'a10.dart', |
| 668 'a4.dart', | 684 'a4.dart', |
| 669 'a5.dart', | 685 'a5.dart', |
| 670 'a2.dart', | 686 'a2.dart', |
| 671 'index3.html' | 687 'dart_runtime.js', |
| 688 'harmony_feature_check.js', | |
| 689 'index3.html', | |
| 672 ]); | 690 ]); |
| 673 | 691 |
| 674 // Marks are removed automatically by rebuild | 692 // Marks are removed automatically by rebuild |
| 675 expectGraph(node, ''' | 693 expectGraph(node, ''' |
| 676 index3.html | 694 index3.html |
| 677 |-- a2.dart | 695 |-- a2.dart |
| 678 | |-- a3.dart | 696 | |-- a3.dart |
| 679 | |-- a4.dart | 697 | |-- a4.dart |
| 680 | | |-- a10.dart | 698 | | |-- a10.dart |
| 681 | |-- a5.dart | 699 | |-- a5.dart |
| 682 | |-- a6.dart (part) | 700 | |-- a6.dart (part) |
| 701 |-- dart_runtime.js | |
| 702 |-- harmony_feature_check.js | |
| 683 '''); | 703 '''); |
| 684 }); | 704 }); |
| 685 | 705 |
| 686 test('nothing to do after build', () { | 706 test('nothing to do after build', () { |
| 687 var node = nodeOf('/index3.html'); | 707 var node = nodeOf('/index3.html'); |
| 688 rebuild(node, graph, buildNoTransitiveChange); | 708 rebuild(node, graph, buildNoTransitiveChange); |
| 689 | 709 |
| 690 results = []; | 710 results = []; |
| 691 rebuild(node, graph, buildNoTransitiveChange); | 711 rebuild(node, graph, buildNoTransitiveChange); |
| 692 expect(results, []); | 712 expect(results, []); |
| (...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 823 rebuild(node, graph, buildNoTransitiveChange); | 843 rebuild(node, graph, buildNoTransitiveChange); |
| 824 | 844 |
| 825 expectGraph(node, ''' | 845 expectGraph(node, ''' |
| 826 index3.html | 846 index3.html |
| 827 |-- a2.dart | 847 |-- a2.dart |
| 828 | |-- a3.dart | 848 | |-- a3.dart |
| 829 | |-- a4.dart | 849 | |-- a4.dart |
| 830 | | |-- a10.dart | 850 | | |-- a10.dart |
| 831 | |-- a5.dart | 851 | |-- a5.dart |
| 832 | |-- a6.dart (part) | 852 | |-- a6.dart (part) |
| 853 |-- dart_runtime.js | |
| 854 |-- harmony_feature_check.js | |
| 833 '''); | 855 '''); |
| 834 | 856 |
| 835 // Modify the file first: | 857 // Modify the file first: |
| 836 a6.source.contents.modificationTime++; | 858 a6.source.contents.modificationTime++; |
| 837 a6.source.contents.data = 'library a6; import "a5.dart";'; | 859 a6.source.contents.data = 'library a6; import "a5.dart";'; |
| 838 results = []; | 860 results = []; |
| 839 rebuild(node, graph, buildNoTransitiveChange); | 861 rebuild(node, graph, buildNoTransitiveChange); |
| 840 | 862 |
| 841 // Looks to us like a change in a part, we'll report errors that the | 863 // Looks to us like a change in a part, we'll report errors that the |
| 842 // part is not really a part-file. Note that a6.dart is not included | 864 // part is not really a part-file. Note that a6.dart is not included |
| 843 // below, because we don't build it as a library. | 865 // below, because we don't build it as a library. |
| 844 expect(results, ['a2.dart']); | 866 expect(results, ['a2.dart']); |
| 845 expectGraph(node, ''' | 867 expectGraph(node, ''' |
| 846 index3.html | 868 index3.html |
| 847 |-- a2.dart | 869 |-- a2.dart |
| 848 | |-- a3.dart | 870 | |-- a3.dart |
| 849 | |-- a4.dart | 871 | |-- a4.dart |
| 850 | | |-- a10.dart | 872 | | |-- a10.dart |
| 851 | |-- a5.dart | 873 | |-- a5.dart |
| 852 | |-- a6.dart (part) | 874 | |-- a6.dart (part) |
| 875 |-- dart_runtime.js | |
| 876 |-- harmony_feature_check.js | |
| 853 '''); | 877 '''); |
| 854 | 878 |
| 855 a2.source.contents.modificationTime++; | 879 a2.source.contents.modificationTime++; |
| 856 a2.source.contents.data = ''' | 880 a2.source.contents.data = ''' |
| 857 library a2; | 881 library a2; |
| 858 import 'a3.dart'; | 882 import 'a3.dart'; |
| 859 import 'a4.dart'; | 883 import 'a4.dart'; |
| 860 import 'a6.dart'; // properly import it | 884 import 'a6.dart'; // properly import it |
| 861 export 'a5.dart'; | 885 export 'a5.dart'; |
| 862 '''; | 886 '''; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 873 | 897 |
| 874 expectGraph(node, ''' | 898 expectGraph(node, ''' |
| 875 index3.html | 899 index3.html |
| 876 |-- a2.dart | 900 |-- a2.dart |
| 877 | |-- a3.dart | 901 | |-- a3.dart |
| 878 | |-- a4.dart | 902 | |-- a4.dart |
| 879 | | |-- a10.dart | 903 | | |-- a10.dart |
| 880 | |-- a6.dart | 904 | |-- a6.dart |
| 881 | | |-- a5.dart | 905 | | |-- a5.dart |
| 882 | |-- a5.dart... | 906 | |-- a5.dart... |
| 907 |-- dart_runtime.js | |
| 908 |-- harmony_feature_check.js | |
| 883 '''); | 909 '''); |
| 884 }); | 910 }); |
| 885 | 911 |
| 886 test('convert part to a library after updating the import', () { | 912 test('convert part to a library after updating the import', () { |
| 887 var node = nodeOf('/index3.html'); | 913 var node = nodeOf('/index3.html'); |
| 888 var a2 = nodeOf('/a2.dart'); | 914 var a2 = nodeOf('/a2.dart'); |
| 889 var a6 = nodeOf('/a6.dart'); | 915 var a6 = nodeOf('/a6.dart'); |
| 890 rebuild(node, graph, buildNoTransitiveChange); | 916 rebuild(node, graph, buildNoTransitiveChange); |
| 891 | 917 |
| 892 expectGraph(node, ''' | 918 expectGraph(node, ''' |
| 893 index3.html | 919 index3.html |
| 894 |-- a2.dart | 920 |-- a2.dart |
| 895 | |-- a3.dart | 921 | |-- a3.dart |
| 896 | |-- a4.dart | 922 | |-- a4.dart |
| 897 | | |-- a10.dart | 923 | | |-- a10.dart |
| 898 | |-- a5.dart | 924 | |-- a5.dart |
| 899 | |-- a6.dart (part) | 925 | |-- a6.dart (part) |
| 926 |-- dart_runtime.js | |
| 927 |-- harmony_feature_check.js | |
| 900 '''); | 928 '''); |
| 901 | 929 |
| 902 a2.source.contents.modificationTime++; | 930 a2.source.contents.modificationTime++; |
| 903 a2.source.contents.data = ''' | 931 a2.source.contents.data = ''' |
| 904 library a2; | 932 library a2; |
| 905 import 'a3.dart'; | 933 import 'a3.dart'; |
| 906 import 'a4.dart'; | 934 import 'a4.dart'; |
| 907 import 'a6.dart'; // properly import it | 935 import 'a6.dart'; // properly import it |
| 908 export 'a5.dart'; | 936 export 'a5.dart'; |
| 909 '''; | 937 '''; |
| 910 results = []; | 938 results = []; |
| 911 rebuild(node, graph, buildNoTransitiveChange); | 939 rebuild(node, graph, buildNoTransitiveChange); |
| 912 expect(results, ['a6.dart', 'a2.dart', 'index3.html']); | 940 expect(results, ['a6.dart', 'a2.dart', 'index3.html']); |
| 913 expectGraph(node, ''' | 941 expectGraph(node, ''' |
| 914 index3.html | 942 index3.html |
| 915 |-- a2.dart | 943 |-- a2.dart |
| 916 | |-- a3.dart | 944 | |-- a3.dart |
| 917 | |-- a4.dart | 945 | |-- a4.dart |
| 918 | | |-- a10.dart | 946 | | |-- a10.dart |
| 919 | |-- a6.dart | 947 | |-- a6.dart |
| 920 | |-- a5.dart | 948 | |-- a5.dart |
| 949 |-- dart_runtime.js | |
| 950 |-- harmony_feature_check.js | |
| 921 '''); | 951 '''); |
| 922 | 952 |
| 923 a6.source.contents.modificationTime++; | 953 a6.source.contents.modificationTime++; |
| 924 a6.source.contents.data = 'library a6; import "a5.dart";'; | 954 a6.source.contents.data = 'library a6; import "a5.dart";'; |
| 925 results = []; | 955 results = []; |
| 926 rebuild(node, graph, buildNoTransitiveChange); | 956 rebuild(node, graph, buildNoTransitiveChange); |
| 927 expect(results, ['a6.dart', 'index3.html']); | 957 expect(results, ['a6.dart', 'index3.html']); |
| 928 expectGraph(node, ''' | 958 expectGraph(node, ''' |
| 929 index3.html | 959 index3.html |
| 930 |-- a2.dart | 960 |-- a2.dart |
| 931 | |-- a3.dart | 961 | |-- a3.dart |
| 932 | |-- a4.dart | 962 | |-- a4.dart |
| 933 | | |-- a10.dart | 963 | | |-- a10.dart |
| 934 | |-- a6.dart | 964 | |-- a6.dart |
| 935 | | |-- a5.dart | 965 | | |-- a5.dart |
| 936 | |-- a5.dart... | 966 | |-- a5.dart... |
| 967 |-- dart_runtime.js | |
| 968 |-- harmony_feature_check.js | |
| 937 '''); | 969 '''); |
| 938 }); | 970 }); |
| 939 | 971 |
| 940 test('disconnect part making it a library', () { | 972 test('disconnect part making it a library', () { |
| 941 var node = nodeOf('/index3.html'); | 973 var node = nodeOf('/index3.html'); |
| 942 var a2 = nodeOf('/a2.dart'); | 974 var a2 = nodeOf('/a2.dart'); |
| 943 var a6 = nodeOf('/a6.dart'); | 975 var a6 = nodeOf('/a6.dart'); |
| 944 rebuild(node, graph, buildNoTransitiveChange); | 976 rebuild(node, graph, buildNoTransitiveChange); |
| 945 | 977 |
| 946 expectGraph(node, ''' | 978 expectGraph(node, ''' |
| 947 index3.html | 979 index3.html |
| 948 |-- a2.dart | 980 |-- a2.dart |
| 949 | |-- a3.dart | 981 | |-- a3.dart |
| 950 | |-- a4.dart | 982 | |-- a4.dart |
| 951 | | |-- a10.dart | 983 | | |-- a10.dart |
| 952 | |-- a5.dart | 984 | |-- a5.dart |
| 953 | |-- a6.dart (part) | 985 | |-- a6.dart (part) |
| 986 |-- dart_runtime.js | |
| 987 |-- harmony_feature_check.js | |
| 954 '''); | 988 '''); |
| 955 | 989 |
| 956 a2.source.contents.modificationTime++; | 990 a2.source.contents.modificationTime++; |
| 957 a2.source.contents.data = ''' | 991 a2.source.contents.data = ''' |
| 958 library a2; | 992 library a2; |
| 959 import 'a3.dart'; | 993 import 'a3.dart'; |
| 960 import 'a4.dart'; | 994 import 'a4.dart'; |
| 961 export 'a5.dart'; | 995 export 'a5.dart'; |
| 962 '''; | 996 '''; |
| 963 a6.source.contents.modificationTime++; | 997 a6.source.contents.modificationTime++; |
| 964 a6.source.contents.data = 'library a6; import "a5.dart";'; | 998 a6.source.contents.data = 'library a6; import "a5.dart";'; |
| 965 results = []; | 999 results = []; |
| 966 rebuild(node, graph, buildNoTransitiveChange); | 1000 rebuild(node, graph, buildNoTransitiveChange); |
| 967 // a6 is not here, it's not reachable so we don't build it. | 1001 // a6 is not here, it's not reachable so we don't build it. |
| 968 expect(results, ['a2.dart', 'index3.html']); | 1002 expect(results, ['a2.dart', 'index3.html']); |
| 969 expectGraph(node, ''' | 1003 expectGraph(node, ''' |
| 970 index3.html | 1004 index3.html |
| 971 |-- a2.dart | 1005 |-- a2.dart |
| 972 | |-- a3.dart | 1006 | |-- a3.dart |
| 973 | |-- a4.dart | 1007 | |-- a4.dart |
| 974 | | |-- a10.dart | 1008 | | |-- a10.dart |
| 975 | |-- a5.dart | 1009 | |-- a5.dart |
| 1010 |-- dart_runtime.js | |
| 1011 |-- harmony_feature_check.js | |
| 976 '''); | 1012 '''); |
| 977 }); | 1013 }); |
| 978 | 1014 |
| 979 test('convert a library to a part', () { | 1015 test('convert a library to a part', () { |
| 980 var node = nodeOf('/index3.html'); | 1016 var node = nodeOf('/index3.html'); |
| 981 var a2 = nodeOf('/a2.dart'); | 1017 var a2 = nodeOf('/a2.dart'); |
| 982 var a5 = nodeOf('/a5.dart'); | 1018 var a5 = nodeOf('/a5.dart'); |
| 983 rebuild(node, graph, buildNoTransitiveChange); | 1019 rebuild(node, graph, buildNoTransitiveChange); |
| 984 | 1020 |
| 985 expectGraph(node, ''' | 1021 expectGraph(node, ''' |
| 986 index3.html | 1022 index3.html |
| 987 |-- a2.dart | 1023 |-- a2.dart |
| 988 | |-- a3.dart | 1024 | |-- a3.dart |
| 989 | |-- a4.dart | 1025 | |-- a4.dart |
| 990 | | |-- a10.dart | 1026 | | |-- a10.dart |
| 991 | |-- a5.dart | 1027 | |-- a5.dart |
| 992 | |-- a6.dart (part) | 1028 | |-- a6.dart (part) |
| 1029 |-- dart_runtime.js | |
| 1030 |-- harmony_feature_check.js | |
| 993 '''); | 1031 '''); |
| 994 | 1032 |
| 995 a2.source.contents.modificationTime++; | 1033 a2.source.contents.modificationTime++; |
| 996 a2.source.contents.data = ''' | 1034 a2.source.contents.data = ''' |
| 997 library a2; | 1035 library a2; |
| 998 import 'a3.dart'; | 1036 import 'a3.dart'; |
| 999 import 'a4.dart'; | 1037 import 'a4.dart'; |
| 1000 part 'a5.dart'; // make it a part | 1038 part 'a5.dart'; // make it a part |
| 1001 part 'a6.dart'; | 1039 part 'a6.dart'; |
| 1002 '''; | 1040 '''; |
| 1003 results = []; | 1041 results = []; |
| 1004 rebuild(node, graph, buildNoTransitiveChange); | 1042 rebuild(node, graph, buildNoTransitiveChange); |
| 1005 expect(results, ['a2.dart', 'index3.html']); | 1043 expect(results, ['a2.dart', 'index3.html']); |
| 1006 expectGraph(node, ''' | 1044 expectGraph(node, ''' |
| 1007 index3.html | 1045 index3.html |
| 1008 |-- a2.dart | 1046 |-- a2.dart |
| 1009 | |-- a3.dart | 1047 | |-- a3.dart |
| 1010 | |-- a4.dart | 1048 | |-- a4.dart |
| 1011 | | |-- a10.dart | 1049 | | |-- a10.dart |
| 1012 | |-- a5.dart (part) | 1050 | |-- a5.dart (part) |
| 1013 | |-- a6.dart (part) | 1051 | |-- a6.dart (part) |
| 1052 |-- dart_runtime.js | |
| 1053 |-- harmony_feature_check.js | |
| 1014 '''); | 1054 '''); |
| 1015 | 1055 |
| 1016 a5.source.contents.modificationTime++; | 1056 a5.source.contents.modificationTime++; |
| 1017 a5.source.contents.data = 'part of a2;'; | 1057 a5.source.contents.data = 'part of a2;'; |
| 1018 results = []; | 1058 results = []; |
| 1019 rebuild(node, graph, buildNoTransitiveChange); | 1059 rebuild(node, graph, buildNoTransitiveChange); |
| 1020 expect(results, ['a2.dart']); | 1060 expect(results, ['a2.dart']); |
| 1021 expectGraph(node, ''' | 1061 expectGraph(node, ''' |
| 1022 index3.html | 1062 index3.html |
| 1023 |-- a2.dart | 1063 |-- a2.dart |
| 1024 | |-- a3.dart | 1064 | |-- a3.dart |
| 1025 | |-- a4.dart | 1065 | |-- a4.dart |
| 1026 | | |-- a10.dart | 1066 | | |-- a10.dart |
| 1027 | |-- a5.dart (part) | 1067 | |-- a5.dart (part) |
| 1028 | |-- a6.dart (part) | 1068 | |-- a6.dart (part) |
| 1069 |-- dart_runtime.js | |
| 1070 |-- harmony_feature_check.js | |
| 1029 '''); | 1071 '''); |
| 1030 }); | 1072 }); |
| 1031 }); | 1073 }); |
| 1032 }); | 1074 }); |
| 1033 } | 1075 } |
| 1034 | 1076 |
| 1035 expectGraph(SourceNode node, String expectation) { | 1077 expectGraph(SourceNode node, String expectation) { |
| 1036 expect(printReachable(node), equalsIgnoringWhitespace(expectation)); | 1078 expect(printReachable(node), equalsIgnoringWhitespace(expectation)); |
| 1037 } | 1079 } |
| 1038 | 1080 |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 1069 ..write(e.structureChanged ? '[structure-changed] ' : ' ') | 1111 ..write(e.structureChanged ? '[structure-changed] ' : ' ') |
| 1070 ..write('\n'); | 1112 ..write('\n'); |
| 1071 }); | 1113 }); |
| 1072 } | 1114 } |
| 1073 } | 1115 } |
| 1074 helper(node); | 1116 helper(node); |
| 1075 return sb.toString(); | 1117 return sb.toString(); |
| 1076 } | 1118 } |
| 1077 | 1119 |
| 1078 bool _same(Set a, Set b) => a.length == b.length && a.containsAll(b); | 1120 bool _same(Set a, Set b) => a.length == b.length && a.containsAll(b); |
| OLD | NEW |