| 273 | } |
| 274 | |
| 275 | void TestValidateOffsets() { |
| 276 | ASSERT_OK(ValidateFull(0, {0}, "")); |
| 277 | ASSERT_OK(ValidateFull(1, {0, 4}, "data")); |
| 278 | ASSERT_OK(ValidateFull(2, {0, 4, 4}, "data")); |
| 279 | ASSERT_OK(ValidateFull(2, {0, 5, 9}, "some data")); |
| 280 | |
| 281 | // Non-zero array offset |
| 282 | ASSERT_OK(ValidateFull(0, {0, 4}, "data", 1)); |
| 283 | ASSERT_OK(ValidateFull(1, {0, 5, 9}, "some data", 1)); |
| 284 | ASSERT_OK(ValidateFull(0, {0, 5, 9}, "some data", 2)); |
| 285 | |
| 286 | // Not enough offsets |
| 287 | ASSERT_RAISES(Invalid, ValidateFull(1, {}, "")); |
| 288 | ASSERT_RAISES(Invalid, ValidateFull(1, {0}, "")); |
| 289 | ASSERT_RAISES(Invalid, ValidateFull(2, {0, 4}, "data")); |
| 290 | ASSERT_RAISES(Invalid, ValidateFull(1, {0, 4}, "data", 1)); |
| 291 | |
| 292 | // Offset out of bounds |
| 293 | ASSERT_RAISES(Invalid, ValidateFull(1, {0, 5}, "data")); |
| 294 | // Negative offset |
| 295 | ASSERT_RAISES(Invalid, ValidateFull(1, {-1, 0}, "data")); |
| 296 | ASSERT_RAISES(Invalid, ValidateFull(1, {0, -1}, "data")); |
| 297 | ASSERT_RAISES(Invalid, ValidateFull(1, {0, -1, -1}, "data", 1)); |
| 298 | // Offsets non-monotonic |
| 299 | ASSERT_RAISES(Invalid, ValidateFull(2, {0, 5, 4}, "some data")); |
| 300 | } |
| 301 | |
| 302 | void TestValidateData() { |
| 303 | // Valid UTF8 |
no test coverage detected