| 1128 | } |
| 1129 | |
| 1130 | void |
| 1131 | testAllowTrailing() |
| 1132 | { |
| 1133 | parse_options disabled; |
| 1134 | parse_options enabled; |
| 1135 | enabled.allow_trailing_commas = true; |
| 1136 | |
| 1137 | TEST_BAD_EXT("[1,]", disabled); |
| 1138 | TEST_GOOD_EXT("[1,]", enabled); |
| 1139 | |
| 1140 | TEST_BAD_EXT("[1,[],]", disabled); |
| 1141 | TEST_GOOD_EXT("[1,[],]", enabled); |
| 1142 | |
| 1143 | TEST_BAD_EXT("[1,{},]", disabled); |
| 1144 | TEST_GOOD_EXT("[1,{},]", enabled); |
| 1145 | |
| 1146 | TEST_BAD_EXT("[1,{\"a\":1,},]", disabled); |
| 1147 | TEST_GOOD_EXT("[1,{\"a\":1,},]", enabled); |
| 1148 | |
| 1149 | TEST_BAD_EXT("{\"a\":1,}", disabled); |
| 1150 | TEST_GOOD_EXT("{\"a\":1,}", enabled); |
| 1151 | |
| 1152 | TEST_BAD_EXT("{\"a\":[1,],}", disabled); |
| 1153 | TEST_GOOD_EXT("{\"a\":[1,],}", enabled); |
| 1154 | |
| 1155 | TEST_BAD_EXT("{\"a\":[],}", disabled); |
| 1156 | TEST_GOOD_EXT("{\"a\":[],}", enabled); |
| 1157 | |
| 1158 | TEST_BAD_EXT("{\"a\":[{}, [1,]],}", disabled); |
| 1159 | TEST_GOOD_EXT("{\"a\":[{}, [1,]],}", enabled); |
| 1160 | |
| 1161 | TEST_BAD_EXT("[[[[[[[],],],],],],]", disabled); |
| 1162 | TEST_GOOD_EXT("[[[[[[[],],],],],],]", enabled); |
| 1163 | |
| 1164 | TEST_BAD_EXT( |
| 1165 | "{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{},},},},},},}", |
| 1166 | disabled); |
| 1167 | TEST_GOOD_EXT( |
| 1168 | "{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{\"a\":{},},},},},},}", |
| 1169 | enabled); |
| 1170 | } |
| 1171 | |
| 1172 | class utf8_parser |
| 1173 | { |