Changeset 196025 in webkit
- Timestamp:
- Feb 2, 2016 12:51:46 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r196024 r196025 1 2016-02-02 Brady Eidson <beidson@apple.com> 2 3 Modern IDB: storage/indexeddb/cursor-continue-validity.html fails. 4 https://bugs.webkit.org/show_bug.cgi?id=153791 5 6 Reviewed by Alex Christensen. 7 8 In addition to unskipping the test, I augmented it to print out more of what was going on. 9 10 The additional printed info is what helped me track down the bug, and will make it more 11 likely to catch any future regressions. 12 13 * platform/mac-wk1/TestExpectations: 14 * storage/indexeddb/cursor-continue-validity-expected.txt: 15 * storage/indexeddb/cursor-continue-validity-private-expected.txt: 16 * storage/indexeddb/resources/cursor-continue-validity.js: 17 1 18 2016-02-01 Dave Hyatt <hyatt@apple.com> 2 19 -
trunk/LayoutTests/platform/mac-wk1/TestExpectations
r196021 r196025 257 257 imported/w3c/indexeddb/idbindex-multientry-big.htm [ Failure ] 258 258 259 # Cursor iterates one less time than expected260 storage/indexeddb/cursor-continue-validity.html [ Failure ]261 262 259 # Integer part of the test iterates 0, 1, 2, Inf, -1, -2, -Inf - Should be in order from -Inf to Inf. 263 260 storage/indexeddb/cursor-primary-key-order.html [ Failure ] -
trunk/LayoutTests/storage/indexeddb/cursor-continue-validity-expected.txt
r195181 r196025 784 784 self.continueValue = 0 785 785 cursor = event.target.result 786 cursor.continue() 787 cursor = event.target.result 788 cursor.update({ x: 100 + self.continueValue }) 789 cursor.continue() 790 cursor = event.target.result 786 787 Index key is: 0 788 Primary key is: 0 789 Value.x is: 0 790 Continue value: 1 791 cursor.continue() 792 cursor = event.target.result 793 794 Index key is: 1 795 Primary key is: 1 796 Value.x is: 1 797 Continue value: 2 798 New Index key for primary key 1 is 102 799 cursor.update({ x: 100 + self.continueValue }) 800 cursor.continue() 801 cursor = event.target.result 802 803 Index key is: 2 804 Primary key is: 2 805 Value.x is: 2 806 Continue value: 3 807 Deleting primary key 2 which currently has Index key 2 791 808 cursor.delete() 792 809 cursor.continue() 793 810 cursor = event.target.result 794 cursor.update({ x: 100 + self.continueValue }) 795 cursor.continue() 796 cursor = event.target.result 797 cursor.continue() 811 812 Index key is: 3 813 Primary key is: 3 814 Value.x is: 3 815 Continue value: 4 816 New Index key for primary key 3 is 104 817 cursor.update({ x: 100 + self.continueValue }) 818 cursor.continue() 819 cursor = event.target.result 820 821 Index key is: 4 822 Primary key is: 4 823 Value.x is: 4 824 Continue value: 5 825 cursor.continue() 826 Expecting exception setting new Index key for primary key 4 to 105 798 827 Expecting exception from cursor.update({ x: 100 + self.continueValue}) 799 828 PASS Exception was thrown. … … 801 830 Exception message: Failed to execute 'update' on 'IDBCursor': The cursor is being iterated or has iterated past its end. 802 831 cursor = event.target.result 803 cursor.update({ x: 100 + self.continueValue }) 804 cursor.continue() 805 cursor = event.target.result 806 cursor.continue() 832 833 Index key is: 5 834 Primary key is: 5 835 Value.x is: 5 836 Continue value: 6 837 New Index key for primary key 5 is 106 838 cursor.update({ x: 100 + self.continueValue }) 839 cursor.continue() 840 cursor = event.target.result 841 842 Index key is: 6 843 Primary key is: 6 844 Value.x is: 6 845 Continue value: 7 846 cursor.continue() 847 Expecting exception deleting primary key 6 which currently has Index key 6 807 848 Expecting exception from cursor.delete() 808 849 PASS Exception was thrown. … … 810 851 Exception message: Failed to execute 'delete' on 'IDBCursor': The cursor is being iterated or has iterated past its end. 811 852 cursor = event.target.result 812 cursor.update({ x: 100 + self.continueValue }) 813 cursor.continue() 814 cursor = event.target.result 853 854 Index key is: 7 855 Primary key is: 7 856 Value.x is: 7 857 Continue value: 8 858 New Index key for primary key 7 is 108 859 cursor.update({ x: 100 + self.continueValue }) 860 cursor.continue() 861 cursor = event.target.result 862 863 Index key is: 8 864 Primary key is: 8 865 Value.x is: 8 866 Continue value: 9 867 Deleting primary key 8 which currently has Index key 8 815 868 cursor.delete() 816 869 cursor.continue() 817 870 cursor = event.target.result 818 cursor.update({ x: 100 + self.continueValue }) 819 cursor.continue() 820 cursor = event.target.result 821 cursor.continue() 822 cursor = event.target.result 823 cursor.update({ x: 100 + self.continueValue }) 824 cursor.continue() 825 cursor = event.target.result 826 cursor.continue() 827 cursor = event.target.result 828 cursor.update({ x: 100 + self.continueValue }) 829 cursor.continue() 830 cursor = event.target.result 871 872 Index key is: 9 873 Primary key is: 9 874 Value.x is: 9 875 Continue value: 10 876 New Index key for primary key 9 is 110 877 cursor.update({ x: 100 + self.continueValue }) 878 cursor.continue() 879 cursor = event.target.result 880 881 Index key is: 10 882 Primary key is: 10 883 Value.x is: 10 884 Continue value: 11 885 cursor.continue() 886 cursor = event.target.result 887 888 Index key is: 11 889 Primary key is: 11 890 Value.x is: 11 891 Continue value: 12 892 New Index key for primary key 11 is 112 893 cursor.update({ x: 100 + self.continueValue }) 894 cursor.continue() 895 cursor = event.target.result 896 897 Index key is: 12 898 Primary key is: 12 899 Value.x is: 12 900 Continue value: 13 901 cursor.continue() 902 cursor = event.target.result 903 904 Index key is: 13 905 Primary key is: 13 906 Value.x is: 13 907 Continue value: 14 908 New Index key for primary key 13 is 114 909 cursor.update({ x: 100 + self.continueValue }) 910 cursor.continue() 911 cursor = event.target.result 912 913 Index key is: 14 914 Primary key is: 14 915 Value.x is: 14 916 Continue value: 15 917 Deleting primary key 14 which currently has Index key 14 831 918 cursor.delete() 832 919 cursor.continue() 833 920 cursor = event.target.result 834 cursor.update({ x: 100 + self.continueValue }) 835 cursor.continue() 836 cursor = event.target.result 837 cursor.continue() 838 cursor = event.target.result 839 cursor.update({ x: 100 + self.continueValue }) 840 cursor.continue() 841 cursor = event.target.result 842 cursor.continue() 843 cursor = event.target.result 844 cursor.update({ x: 100 + self.continueValue }) 845 cursor.continue() 846 cursor = event.target.result 921 922 Index key is: 15 923 Primary key is: 15 924 Value.x is: 15 925 Continue value: 16 926 New Index key for primary key 15 is 116 927 cursor.update({ x: 100 + self.continueValue }) 928 cursor.continue() 929 cursor = event.target.result 930 931 Index key is: 16 932 Primary key is: 16 933 Value.x is: 16 934 Continue value: 17 935 cursor.continue() 936 cursor = event.target.result 937 938 Index key is: 17 939 Primary key is: 17 940 Value.x is: 17 941 Continue value: 18 942 New Index key for primary key 17 is 118 943 cursor.update({ x: 100 + self.continueValue }) 944 cursor.continue() 945 cursor = event.target.result 946 947 Index key is: 18 948 Primary key is: 18 949 Value.x is: 18 950 Continue value: 19 951 cursor.continue() 952 cursor = event.target.result 953 954 Index key is: 19 955 Primary key is: 19 956 Value.x is: 19 957 Continue value: 20 958 New Index key for primary key 19 is 120 959 cursor.update({ x: 100 + self.continueValue }) 960 cursor.continue() 961 cursor = event.target.result 962 963 Index key is: 20 964 Primary key is: 20 965 Value.x is: 20 966 Continue value: 21 967 Deleting primary key 20 which currently has Index key 20 847 968 cursor.delete() 848 969 cursor.continue() 849 970 cursor = event.target.result 850 cursor.update({ x: 100 + self.continueValue }) 851 cursor.continue() 852 cursor = event.target.result 853 cursor.continue() 854 cursor = event.target.result 855 cursor.update({ x: 100 + self.continueValue }) 856 cursor.continue() 857 cursor = event.target.result 858 cursor.continue() 971 972 Index key is: 21 973 Primary key is: 21 974 Value.x is: 21 975 Continue value: 22 976 New Index key for primary key 21 is 122 977 cursor.update({ x: 100 + self.continueValue }) 978 cursor.continue() 979 cursor = event.target.result 980 981 Index key is: 22 982 Primary key is: 22 983 Value.x is: 22 984 Continue value: 23 985 cursor.continue() 986 cursor = event.target.result 987 988 Index key is: 23 989 Primary key is: 23 990 Value.x is: 23 991 Continue value: 24 992 New Index key for primary key 23 is 124 993 cursor.update({ x: 100 + self.continueValue }) 994 cursor.continue() 995 cursor = event.target.result 996 997 Index key is: 24 998 Primary key is: 24 999 Value.x is: 24 1000 Continue value: 25 1001 cursor.continue() 1002 Expecting exception setting new Index key for primary key 24 to 125 859 1003 Expecting exception from cursor.update({ x: 100 + self.continueValue}) 860 1004 PASS Exception was thrown. … … 862 1006 Exception message: Failed to execute 'update' on 'IDBCursor': The cursor is being iterated or has iterated past its end. 863 1007 cursor = event.target.result 864 cursor.update({ x: 100 + self.continueValue }) 865 cursor.continue() 866 cursor = event.target.result 1008 1009 Index key is: 102 1010 Primary key is: 1 1011 Value.x is: 102 1012 Continue value: 26 1013 New Index key for primary key 1 is 126 1014 cursor.update({ x: 100 + self.continueValue }) 1015 cursor.continue() 1016 cursor = event.target.result 1017 1018 Index key is: 104 1019 Primary key is: 3 1020 Value.x is: 104 1021 Continue value: 27 1022 Deleting primary key 3 which currently has Index key 104 867 1023 cursor.delete() 868 1024 cursor.continue() 869 1025 cursor = event.target.result 870 cursor.update({ x: 100 + self.continueValue }) 871 cursor.continue() 872 cursor = event.target.result 873 cursor.continue() 874 cursor = event.target.result 875 cursor.update({ x: 100 + self.continueValue }) 876 cursor.continue() 877 cursor = event.target.result 878 cursor.continue() 879 cursor = event.target.result 880 cursor.update({ x: 100 + self.continueValue }) 881 cursor.continue() 882 cursor = event.target.result 1026 1027 Index key is: 106 1028 Primary key is: 5 1029 Value.x is: 106 1030 Continue value: 28 1031 New Index key for primary key 5 is 128 1032 cursor.update({ x: 100 + self.continueValue }) 1033 cursor.continue() 1034 cursor = event.target.result 1035 1036 Index key is: 108 1037 Primary key is: 7 1038 Value.x is: 108 1039 Continue value: 29 1040 cursor.continue() 1041 cursor = event.target.result 1042 1043 Index key is: 110 1044 Primary key is: 9 1045 Value.x is: 110 1046 Continue value: 30 1047 New Index key for primary key 9 is 130 1048 cursor.update({ x: 100 + self.continueValue }) 1049 cursor.continue() 1050 cursor = event.target.result 1051 1052 Index key is: 112 1053 Primary key is: 11 1054 Value.x is: 112 1055 Continue value: 31 1056 cursor.continue() 1057 cursor = event.target.result 1058 1059 Index key is: 114 1060 Primary key is: 13 1061 Value.x is: 114 1062 Continue value: 32 1063 New Index key for primary key 13 is 132 1064 cursor.update({ x: 100 + self.continueValue }) 1065 cursor.continue() 1066 cursor = event.target.result 1067 1068 Index key is: 116 1069 Primary key is: 15 1070 Value.x is: 116 1071 Continue value: 33 1072 Deleting primary key 15 which currently has Index key 116 883 1073 cursor.delete() 884 1074 cursor.continue() 885 1075 cursor = event.target.result 886 cursor.update({ x: 100 + self.continueValue }) 887 cursor.continue() 888 cursor = event.target.result 889 cursor.continue() 1076 1077 Index key is: 118 1078 Primary key is: 17 1079 Value.x is: 118 1080 Continue value: 34 1081 New Index key for primary key 17 is 134 1082 cursor.update({ x: 100 + self.continueValue }) 1083 cursor.continue() 1084 cursor = event.target.result 1085 1086 Index key is: 120 1087 Primary key is: 19 1088 Value.x is: 120 1089 Continue value: 35 1090 cursor.continue() 1091 Expecting exception setting new Index key for primary key 19 to 135 890 1092 Expecting exception from cursor.update({ x: 100 + self.continueValue}) 891 1093 PASS Exception was thrown. … … 893 1095 Exception message: Failed to execute 'update' on 'IDBCursor': The cursor is being iterated or has iterated past its end. 894 1096 cursor = event.target.result 895 cursor.update({ x: 100 + self.continueValue }) 896 cursor.continue() 897 cursor = event.target.result 898 cursor.continue() 899 cursor = event.target.result 900 cursor.update({ x: 100 + self.continueValue }) 901 cursor.continue() 902 cursor = event.target.result 1097 1098 Index key is: 122 1099 Primary key is: 21 1100 Value.x is: 122 1101 Continue value: 36 1102 New Index key for primary key 21 is 136 1103 cursor.update({ x: 100 + self.continueValue }) 1104 cursor.continue() 1105 cursor = event.target.result 1106 1107 Index key is: 124 1108 Primary key is: 23 1109 Value.x is: 124 1110 Continue value: 37 1111 cursor.continue() 1112 cursor = event.target.result 1113 1114 Index key is: 126 1115 Primary key is: 1 1116 Value.x is: 126 1117 Continue value: 38 1118 New Index key for primary key 1 is 138 1119 cursor.update({ x: 100 + self.continueValue }) 1120 cursor.continue() 1121 cursor = event.target.result 1122 1123 Index key is: 128 1124 Primary key is: 5 1125 Value.x is: 128 1126 Continue value: 39 1127 Deleting primary key 5 which currently has Index key 128 903 1128 cursor.delete() 904 1129 cursor.continue() 905 1130 cursor = event.target.result 906 cursor.update({ x: 100 + self.continueValue }) 907 cursor.continue() 908 cursor = event.target.result 909 cursor.continue() 910 cursor = event.target.result 911 cursor.update({ x: 100 + self.continueValue }) 912 cursor.continue() 913 cursor = event.target.result 914 cursor.continue() 915 cursor = event.target.result 916 cursor.update({ x: 100 + self.continueValue }) 917 cursor.continue() 918 cursor = event.target.result 1131 1132 Index key is: 130 1133 Primary key is: 9 1134 Value.x is: 130 1135 Continue value: 40 1136 New Index key for primary key 9 is 140 1137 cursor.update({ x: 100 + self.continueValue }) 1138 cursor.continue() 1139 cursor = event.target.result 1140 1141 Index key is: 132 1142 Primary key is: 13 1143 Value.x is: 132 1144 Continue value: 41 1145 cursor.continue() 1146 cursor = event.target.result 1147 1148 Index key is: 134 1149 Primary key is: 17 1150 Value.x is: 134 1151 Continue value: 42 1152 New Index key for primary key 17 is 142 1153 cursor.update({ x: 100 + self.continueValue }) 1154 cursor.continue() 1155 cursor = event.target.result 1156 1157 Index key is: 136 1158 Primary key is: 21 1159 Value.x is: 136 1160 Continue value: 43 1161 cursor.continue() 1162 cursor = event.target.result 1163 1164 Index key is: 138 1165 Primary key is: 1 1166 Value.x is: 138 1167 Continue value: 44 1168 New Index key for primary key 1 is 144 1169 cursor.update({ x: 100 + self.continueValue }) 1170 cursor.continue() 1171 cursor = event.target.result 1172 1173 Index key is: 140 1174 Primary key is: 9 1175 Value.x is: 140 1176 Continue value: 45 1177 Deleting primary key 9 which currently has Index key 140 919 1178 cursor.delete() 920 1179 cursor.continue() 921 1180 cursor = event.target.result 922 cursor.update({ x: 100 + self.continueValue }) 923 cursor.continue() 924 cursor = event.target.result 925 cursor.continue() 926 cursor = event.target.result 927 cursor.update({ x: 100 + self.continueValue }) 928 cursor.continue() 929 cursor = event.target.result 930 cursor.continue() 1181 1182 Index key is: 142 1183 Primary key is: 17 1184 Value.x is: 142 1185 Continue value: 46 1186 New Index key for primary key 17 is 146 1187 cursor.update({ x: 100 + self.continueValue }) 1188 cursor.continue() 1189 cursor = event.target.result 1190 1191 Index key is: 144 1192 Primary key is: 1 1193 Value.x is: 144 1194 Continue value: 47 1195 cursor.continue() 1196 cursor = event.target.result 1197 1198 Index key is: 146 1199 Primary key is: 17 1200 Value.x is: 146 1201 Continue value: 48 1202 New Index key for primary key 17 is 148 1203 cursor.update({ x: 100 + self.continueValue }) 1204 cursor.continue() 1205 cursor = event.target.result 1206 1207 Index key is: 148 1208 Primary key is: 17 1209 Value.x is: 148 1210 Continue value: 49 1211 cursor.continue() 1212 Expecting exception deleting primary key 17 which currently has Index key 148 931 1213 Expecting exception from cursor.delete() 932 1214 PASS Exception was thrown. -
trunk/LayoutTests/storage/indexeddb/cursor-continue-validity-private-expected.txt
r195247 r196025 784 784 self.continueValue = 0 785 785 cursor = event.target.result 786 cursor.continue() 787 cursor = event.target.result 788 cursor.update({ x: 100 + self.continueValue }) 789 cursor.continue() 790 cursor = event.target.result 786 787 Index key is: 0 788 Primary key is: 0 789 Value.x is: 0 790 Continue value: 1 791 cursor.continue() 792 cursor = event.target.result 793 794 Index key is: 1 795 Primary key is: 1 796 Value.x is: 1 797 Continue value: 2 798 New Index key for primary key 1 is 102 799 cursor.update({ x: 100 + self.continueValue }) 800 cursor.continue() 801 cursor = event.target.result 802 803 Index key is: 2 804 Primary key is: 2 805 Value.x is: 2 806 Continue value: 3 807 Deleting primary key 2 which currently has Index key 2 791 808 cursor.delete() 792 809 cursor.continue() 793 810 cursor = event.target.result 794 cursor.update({ x: 100 + self.continueValue }) 795 cursor.continue() 796 cursor = event.target.result 797 cursor.continue() 811 812 Index key is: 3 813 Primary key is: 3 814 Value.x is: 3 815 Continue value: 4 816 New Index key for primary key 3 is 104 817 cursor.update({ x: 100 + self.continueValue }) 818 cursor.continue() 819 cursor = event.target.result 820 821 Index key is: 4 822 Primary key is: 4 823 Value.x is: 4 824 Continue value: 5 825 cursor.continue() 826 Expecting exception setting new Index key for primary key 4 to 105 798 827 Expecting exception from cursor.update({ x: 100 + self.continueValue}) 799 828 PASS Exception was thrown. … … 801 830 Exception message: Failed to execute 'update' on 'IDBCursor': The cursor is being iterated or has iterated past its end. 802 831 cursor = event.target.result 803 cursor.update({ x: 100 + self.continueValue }) 804 cursor.continue() 805 cursor = event.target.result 806 cursor.continue() 832 833 Index key is: 5 834 Primary key is: 5 835 Value.x is: 5 836 Continue value: 6 837 New Index key for primary key 5 is 106 838 cursor.update({ x: 100 + self.continueValue }) 839 cursor.continue() 840 cursor = event.target.result 841 842 Index key is: 6 843 Primary key is: 6 844 Value.x is: 6 845 Continue value: 7 846 cursor.continue() 847 Expecting exception deleting primary key 6 which currently has Index key 6 807 848 Expecting exception from cursor.delete() 808 849 PASS Exception was thrown. … … 810 851 Exception message: Failed to execute 'delete' on 'IDBCursor': The cursor is being iterated or has iterated past its end. 811 852 cursor = event.target.result 812 cursor.update({ x: 100 + self.continueValue }) 813 cursor.continue() 814 cursor = event.target.result 853 854 Index key is: 7 855 Primary key is: 7 856 Value.x is: 7 857 Continue value: 8 858 New Index key for primary key 7 is 108 859 cursor.update({ x: 100 + self.continueValue }) 860 cursor.continue() 861 cursor = event.target.result 862 863 Index key is: 8 864 Primary key is: 8 865 Value.x is: 8 866 Continue value: 9 867 Deleting primary key 8 which currently has Index key 8 815 868 cursor.delete() 816 869 cursor.continue() 817 870 cursor = event.target.result 818 cursor.update({ x: 100 + self.continueValue }) 819 cursor.continue() 820 cursor = event.target.result 821 cursor.continue() 822 cursor = event.target.result 823 cursor.update({ x: 100 + self.continueValue }) 824 cursor.continue() 825 cursor = event.target.result 826 cursor.continue() 827 cursor = event.target.result 828 cursor.update({ x: 100 + self.continueValue }) 829 cursor.continue() 830 cursor = event.target.result 871 872 Index key is: 9 873 Primary key is: 9 874 Value.x is: 9 875 Continue value: 10 876 New Index key for primary key 9 is 110 877 cursor.update({ x: 100 + self.continueValue }) 878 cursor.continue() 879 cursor = event.target.result 880 881 Index key is: 10 882 Primary key is: 10 883 Value.x is: 10 884 Continue value: 11 885 cursor.continue() 886 cursor = event.target.result 887 888 Index key is: 11 889 Primary key is: 11 890 Value.x is: 11 891 Continue value: 12 892 New Index key for primary key 11 is 112 893 cursor.update({ x: 100 + self.continueValue }) 894 cursor.continue() 895 cursor = event.target.result 896 897 Index key is: 12 898 Primary key is: 12 899 Value.x is: 12 900 Continue value: 13 901 cursor.continue() 902 cursor = event.target.result 903 904 Index key is: 13 905 Primary key is: 13 906 Value.x is: 13 907 Continue value: 14 908 New Index key for primary key 13 is 114 909 cursor.update({ x: 100 + self.continueValue }) 910 cursor.continue() 911 cursor = event.target.result 912 913 Index key is: 14 914 Primary key is: 14 915 Value.x is: 14 916 Continue value: 15 917 Deleting primary key 14 which currently has Index key 14 831 918 cursor.delete() 832 919 cursor.continue() 833 920 cursor = event.target.result 834 cursor.update({ x: 100 + self.continueValue }) 835 cursor.continue() 836 cursor = event.target.result 837 cursor.continue() 838 cursor = event.target.result 839 cursor.update({ x: 100 + self.continueValue }) 840 cursor.continue() 841 cursor = event.target.result 842 cursor.continue() 843 cursor = event.target.result 844 cursor.update({ x: 100 + self.continueValue }) 845 cursor.continue() 846 cursor = event.target.result 921 922 Index key is: 15 923 Primary key is: 15 924 Value.x is: 15 925 Continue value: 16 926 New Index key for primary key 15 is 116 927 cursor.update({ x: 100 + self.continueValue }) 928 cursor.continue() 929 cursor = event.target.result 930 931 Index key is: 16 932 Primary key is: 16 933 Value.x is: 16 934 Continue value: 17 935 cursor.continue() 936 cursor = event.target.result 937 938 Index key is: 17 939 Primary key is: 17 940 Value.x is: 17 941 Continue value: 18 942 New Index key for primary key 17 is 118 943 cursor.update({ x: 100 + self.continueValue }) 944 cursor.continue() 945 cursor = event.target.result 946 947 Index key is: 18 948 Primary key is: 18 949 Value.x is: 18 950 Continue value: 19 951 cursor.continue() 952 cursor = event.target.result 953 954 Index key is: 19 955 Primary key is: 19 956 Value.x is: 19 957 Continue value: 20 958 New Index key for primary key 19 is 120 959 cursor.update({ x: 100 + self.continueValue }) 960 cursor.continue() 961 cursor = event.target.result 962 963 Index key is: 20 964 Primary key is: 20 965 Value.x is: 20 966 Continue value: 21 967 Deleting primary key 20 which currently has Index key 20 847 968 cursor.delete() 848 969 cursor.continue() 849 970 cursor = event.target.result 850 cursor.update({ x: 100 + self.continueValue }) 851 cursor.continue() 852 cursor = event.target.result 853 cursor.continue() 854 cursor = event.target.result 855 cursor.update({ x: 100 + self.continueValue }) 856 cursor.continue() 857 cursor = event.target.result 858 cursor.continue() 971 972 Index key is: 21 973 Primary key is: 21 974 Value.x is: 21 975 Continue value: 22 976 New Index key for primary key 21 is 122 977 cursor.update({ x: 100 + self.continueValue }) 978 cursor.continue() 979 cursor = event.target.result 980 981 Index key is: 22 982 Primary key is: 22 983 Value.x is: 22 984 Continue value: 23 985 cursor.continue() 986 cursor = event.target.result 987 988 Index key is: 23 989 Primary key is: 23 990 Value.x is: 23 991 Continue value: 24 992 New Index key for primary key 23 is 124 993 cursor.update({ x: 100 + self.continueValue }) 994 cursor.continue() 995 cursor = event.target.result 996 997 Index key is: 24 998 Primary key is: 24 999 Value.x is: 24 1000 Continue value: 25 1001 cursor.continue() 1002 Expecting exception setting new Index key for primary key 24 to 125 859 1003 Expecting exception from cursor.update({ x: 100 + self.continueValue}) 860 1004 PASS Exception was thrown. … … 862 1006 Exception message: Failed to execute 'update' on 'IDBCursor': The cursor is being iterated or has iterated past its end. 863 1007 cursor = event.target.result 864 cursor.update({ x: 100 + self.continueValue }) 865 cursor.continue() 866 cursor = event.target.result 1008 1009 Index key is: 102 1010 Primary key is: 1 1011 Value.x is: 102 1012 Continue value: 26 1013 New Index key for primary key 1 is 126 1014 cursor.update({ x: 100 + self.continueValue }) 1015 cursor.continue() 1016 cursor = event.target.result 1017 1018 Index key is: 104 1019 Primary key is: 3 1020 Value.x is: 104 1021 Continue value: 27 1022 Deleting primary key 3 which currently has Index key 104 867 1023 cursor.delete() 868 1024 cursor.continue() 869 1025 cursor = event.target.result 870 cursor.update({ x: 100 + self.continueValue }) 871 cursor.continue() 872 cursor = event.target.result 873 cursor.continue() 874 cursor = event.target.result 875 cursor.update({ x: 100 + self.continueValue }) 876 cursor.continue() 877 cursor = event.target.result 878 cursor.continue() 879 cursor = event.target.result 880 cursor.update({ x: 100 + self.continueValue }) 881 cursor.continue() 882 cursor = event.target.result 1026 1027 Index key is: 106 1028 Primary key is: 5 1029 Value.x is: 106 1030 Continue value: 28 1031 New Index key for primary key 5 is 128 1032 cursor.update({ x: 100 + self.continueValue }) 1033 cursor.continue() 1034 cursor = event.target.result 1035 1036 Index key is: 108 1037 Primary key is: 7 1038 Value.x is: 108 1039 Continue value: 29 1040 cursor.continue() 1041 cursor = event.target.result 1042 1043 Index key is: 110 1044 Primary key is: 9 1045 Value.x is: 110 1046 Continue value: 30 1047 New Index key for primary key 9 is 130 1048 cursor.update({ x: 100 + self.continueValue }) 1049 cursor.continue() 1050 cursor = event.target.result 1051 1052 Index key is: 112 1053 Primary key is: 11 1054 Value.x is: 112 1055 Continue value: 31 1056 cursor.continue() 1057 cursor = event.target.result 1058 1059 Index key is: 114 1060 Primary key is: 13 1061 Value.x is: 114 1062 Continue value: 32 1063 New Index key for primary key 13 is 132 1064 cursor.update({ x: 100 + self.continueValue }) 1065 cursor.continue() 1066 cursor = event.target.result 1067 1068 Index key is: 116 1069 Primary key is: 15 1070 Value.x is: 116 1071 Continue value: 33 1072 Deleting primary key 15 which currently has Index key 116 883 1073 cursor.delete() 884 1074 cursor.continue() 885 1075 cursor = event.target.result 886 cursor.update({ x: 100 + self.continueValue }) 887 cursor.continue() 888 cursor = event.target.result 889 cursor.continue() 1076 1077 Index key is: 118 1078 Primary key is: 17 1079 Value.x is: 118 1080 Continue value: 34 1081 New Index key for primary key 17 is 134 1082 cursor.update({ x: 100 + self.continueValue }) 1083 cursor.continue() 1084 cursor = event.target.result 1085 1086 Index key is: 120 1087 Primary key is: 19 1088 Value.x is: 120 1089 Continue value: 35 1090 cursor.continue() 1091 Expecting exception setting new Index key for primary key 19 to 135 890 1092 Expecting exception from cursor.update({ x: 100 + self.continueValue}) 891 1093 PASS Exception was thrown. … … 893 1095 Exception message: Failed to execute 'update' on 'IDBCursor': The cursor is being iterated or has iterated past its end. 894 1096 cursor = event.target.result 895 cursor.update({ x: 100 + self.continueValue }) 896 cursor.continue() 897 cursor = event.target.result 898 cursor.continue() 899 cursor = event.target.result 900 cursor.update({ x: 100 + self.continueValue }) 901 cursor.continue() 902 cursor = event.target.result 1097 1098 Index key is: 122 1099 Primary key is: 21 1100 Value.x is: 122 1101 Continue value: 36 1102 New Index key for primary key 21 is 136 1103 cursor.update({ x: 100 + self.continueValue }) 1104 cursor.continue() 1105 cursor = event.target.result 1106 1107 Index key is: 124 1108 Primary key is: 23 1109 Value.x is: 124 1110 Continue value: 37 1111 cursor.continue() 1112 cursor = event.target.result 1113 1114 Index key is: 126 1115 Primary key is: 1 1116 Value.x is: 126 1117 Continue value: 38 1118 New Index key for primary key 1 is 138 1119 cursor.update({ x: 100 + self.continueValue }) 1120 cursor.continue() 1121 cursor = event.target.result 1122 1123 Index key is: 128 1124 Primary key is: 5 1125 Value.x is: 128 1126 Continue value: 39 1127 Deleting primary key 5 which currently has Index key 128 903 1128 cursor.delete() 904 1129 cursor.continue() 905 1130 cursor = event.target.result 906 cursor.update({ x: 100 + self.continueValue }) 907 cursor.continue() 908 cursor = event.target.result 909 cursor.continue() 910 cursor = event.target.result 911 cursor.update({ x: 100 + self.continueValue }) 912 cursor.continue() 913 cursor = event.target.result 914 cursor.continue() 915 cursor = event.target.result 916 cursor.update({ x: 100 + self.continueValue }) 917 cursor.continue() 918 cursor = event.target.result 1131 1132 Index key is: 130 1133 Primary key is: 9 1134 Value.x is: 130 1135 Continue value: 40 1136 New Index key for primary key 9 is 140 1137 cursor.update({ x: 100 + self.continueValue }) 1138 cursor.continue() 1139 cursor = event.target.result 1140 1141 Index key is: 132 1142 Primary key is: 13 1143 Value.x is: 132 1144 Continue value: 41 1145 cursor.continue() 1146 cursor = event.target.result 1147 1148 Index key is: 134 1149 Primary key is: 17 1150 Value.x is: 134 1151 Continue value: 42 1152 New Index key for primary key 17 is 142 1153 cursor.update({ x: 100 + self.continueValue }) 1154 cursor.continue() 1155 cursor = event.target.result 1156 1157 Index key is: 136 1158 Primary key is: 21 1159 Value.x is: 136 1160 Continue value: 43 1161 cursor.continue() 1162 cursor = event.target.result 1163 1164 Index key is: 138 1165 Primary key is: 1 1166 Value.x is: 138 1167 Continue value: 44 1168 New Index key for primary key 1 is 144 1169 cursor.update({ x: 100 + self.continueValue }) 1170 cursor.continue() 1171 cursor = event.target.result 1172 1173 Index key is: 140 1174 Primary key is: 9 1175 Value.x is: 140 1176 Continue value: 45 1177 Deleting primary key 9 which currently has Index key 140 919 1178 cursor.delete() 920 1179 cursor.continue() 921 1180 cursor = event.target.result 922 cursor.update({ x: 100 + self.continueValue }) 923 cursor.continue() 924 cursor = event.target.result 925 cursor.continue() 926 cursor = event.target.result 927 cursor.update({ x: 100 + self.continueValue }) 928 cursor.continue() 929 cursor = event.target.result 930 cursor.continue() 1181 1182 Index key is: 142 1183 Primary key is: 17 1184 Value.x is: 142 1185 Continue value: 46 1186 New Index key for primary key 17 is 146 1187 cursor.update({ x: 100 + self.continueValue }) 1188 cursor.continue() 1189 cursor = event.target.result 1190 1191 Index key is: 144 1192 Primary key is: 1 1193 Value.x is: 144 1194 Continue value: 47 1195 cursor.continue() 1196 cursor = event.target.result 1197 1198 Index key is: 146 1199 Primary key is: 17 1200 Value.x is: 146 1201 Continue value: 48 1202 New Index key for primary key 17 is 148 1203 cursor.update({ x: 100 + self.continueValue }) 1204 cursor.continue() 1205 cursor = event.target.result 1206 1207 Index key is: 148 1208 Primary key is: 17 1209 Value.x is: 148 1210 Continue value: 49 1211 cursor.continue() 1212 Expecting exception deleting primary key 17 which currently has Index key 148 931 1213 Expecting exception from cursor.delete() 932 1214 PASS Exception was thrown. -
trunk/LayoutTests/storage/indexeddb/resources/cursor-continue-validity.js
r163963 r196025 126 126 self.continueValue++; 127 127 if (cursor) { 128 debug(""); 129 debug("Index key is: " + cursor.key); 130 debug("Primary key is: " + cursor.primaryKey); 131 debug("Value.x is: " + cursor.value.x); 132 debug("Continue value: " + self.continueValue); 133 128 134 // we sprinkle these checks across the dataset, to sample 129 135 // behavior against pre-fetching. Make sure to use prime … … 131 137 if (self.continueValue % 2 == 0) { 132 138 // it's ok to call update() and then continue.. 139 debug("New Index key for primary key " + cursor.primaryKey + " is " + (100 + self.continueValue)); 133 140 evalAndLog("cursor.update({ x: 100 + self.continueValue })"); 134 141 evalAndLog("cursor.continue()"); 135 142 } else if (self.continueValue % 3 == 0) { 136 143 // it's ok to call delete() and then continue 144 debug("Deleting primary key " + cursor.primaryKey + " which currently has Index key " + cursor.key); 137 145 evalAndLog("cursor.delete()"); 138 146 evalAndLog("cursor.continue()"); … … 140 148 // it's NOT ok to call continue and then update 141 149 evalAndLog("cursor.continue()"); 150 debug("Expecting exception setting new Index key for primary key " + cursor.primaryKey + " to " + (100 + self.continueValue)); 142 151 evalAndExpectException("cursor.update({ x: 100 + self.continueValue})", 143 152 "DOMException.INVALID_STATE_ERR"); … … 145 154 // it's NOT ok to call continue and then delete 146 155 evalAndLog("cursor.continue()"); 156 debug("Expecting exception deleting primary key " + cursor.primaryKey + " which currently has Index key " + cursor.key); 147 157 evalAndExpectException("cursor.delete()", 148 158 "DOMException.INVALID_STATE_ERR"); -
trunk/Source/WebCore/ChangeLog
r196024 r196025 1 2016-02-02 Brady Eidson <beidson@apple.com> 2 3 Modern IDB: storage/indexeddb/cursor-continue-validity.html fails. 4 https://bugs.webkit.org/show_bug.cgi?id=153791 5 6 Reviewed by Alex Christensen. 7 8 No new tests (Existing test now unskipped). 9 10 There was a preexisting check in the SQLite cursor for remembering the current record and 11 refusing to refetch it. 12 13 This check was causing this bug, because we needed to refetch the current record. 14 15 Removing the check (and its associated flag) doesn't regress any other test, and fixes this one. 16 17 * Modules/indexeddb/server/SQLiteIDBCursor.cpp: 18 (WebCore::IDBServer::SQLiteIDBCursor::resetAndRebindStatement): 19 (WebCore::IDBServer::SQLiteIDBCursor::internalAdvanceOnce): 20 * Modules/indexeddb/server/SQLiteIDBCursor.h: 21 1 22 2016-02-01 Dave Hyatt <hyatt@apple.com> 2 23 -
trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.cpp
r195787 r196025 231 231 m_keyRange.lowerKey = m_currentLowerKey; 232 232 m_statement = nullptr; 233 m_currentRecordID = -1;234 233 } 235 234 } else { … … 239 238 m_keyRange.upperKey = m_currentUpperKey; 240 239 m_statement = nullptr; 241 m_currentRecordID = -1;242 240 } 243 241 } … … 358 356 return AdvanceResult::Failure; 359 357 } 360 361 int64_t recordID = m_statement->getColumnInt64(0);362 363 // If the recordID of the record just fetched is the same as the current record ID364 // then this statement must have been re-prepared in response to an object store change.365 // We don't want to re-use the current record so we'll move on to the next one.366 if (recordID == m_currentRecordID)367 return AdvanceResult::ShouldAdvanceAgain;368 369 m_currentRecordID = recordID;370 358 371 359 Vector<uint8_t> keyData; -
trunk/Source/WebCore/Modules/indexeddb/server/SQLiteIDBCursor.h
r195784 r196025 101 101 IDBKeyData m_currentUpperKey; 102 102 103 int64_t m_currentRecordID { -1 };104 103 IDBKeyData m_currentKey; 105 104 IDBKeyData m_currentPrimaryKey;
Note: See TracChangeset
for help on using the changeset viewer.