| Index: mojo/public/cpp/bindings/tests/union_unittest.cc
|
| diff --git a/mojo/public/cpp/bindings/tests/union_unittest.cc b/mojo/public/cpp/bindings/tests/union_unittest.cc
|
| index fbb380bdb7b8985bd4e6e31be7abb259640dafe7..ed61524fd3ac82854b64bc50b0110ec23fd10fe1 100644
|
| --- a/mojo/public/cpp/bindings/tests/union_unittest.cc
|
| +++ b/mojo/public/cpp/bindings/tests/union_unittest.cc
|
| @@ -12,9 +12,9 @@
|
| #include "mojo/public/cpp/bindings/array.h"
|
| #include "mojo/public/cpp/bindings/binding.h"
|
| #include "mojo/public/cpp/bindings/lib/array_internal.h"
|
| -#include "mojo/public/cpp/bindings/lib/bounds_checker.h"
|
| #include "mojo/public/cpp/bindings/lib/fixed_buffer.h"
|
| #include "mojo/public/cpp/bindings/lib/serialization.h"
|
| +#include "mojo/public/cpp/bindings/lib/validation_context.h"
|
| #include "mojo/public/cpp/bindings/string.h"
|
| #include "mojo/public/cpp/test_support/test_utils.h"
|
| #include "mojo/public/interfaces/bindings/tests/test_structs.mojom.h"
|
| @@ -172,10 +172,10 @@ TEST(UnionTest, PodValidation) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| EXPECT_TRUE(
|
| - internal::PodUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + internal::PodUnion_Data::Validate(raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -224,8 +224,9 @@ TEST(UnionTest, SerializeIsNullNotInlined) {
|
|
|
| TEST(UnionTest, NullValidation) {
|
| void* buf = nullptr;
|
| - mojo::internal::BoundsChecker bounds_checker(buf, 0, 0);
|
| - EXPECT_TRUE(internal::PodUnion_Data::Validate(buf, &bounds_checker, false));
|
| + mojo::internal::ValidationContext validation_context(buf, 0, 0);
|
| + EXPECT_TRUE(internal::PodUnion_Data::Validate(
|
| + buf, &validation_context, false));
|
| }
|
|
|
| TEST(UnionTest, OutOfAlignmentValidation) {
|
| @@ -237,9 +238,10 @@ TEST(UnionTest, OutOfAlignmentValidation) {
|
|
|
| internal::PodUnion_Data* data =
|
| reinterpret_cast<internal::PodUnion_Data*>(buf);
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| - EXPECT_FALSE(internal::PodUnion_Data::Validate(buf, &bounds_checker, false));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| + EXPECT_FALSE(internal::PodUnion_Data::Validate(
|
| + buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -247,11 +249,11 @@ TEST(UnionTest, OOBValidation) {
|
| size_t size = sizeof(internal::PodUnion_Data) - 1;
|
| mojo::internal::FixedBufferForTesting buf(size);
|
| internal::PodUnion_Data* data = internal::PodUnion_Data::New(&buf);
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| void* raw_buf = buf.Leak();
|
| EXPECT_FALSE(
|
| - internal::PodUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + internal::PodUnion_Data::Validate(raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -260,11 +262,11 @@ TEST(UnionTest, UnknownTagValidation) {
|
| mojo::internal::FixedBufferForTesting buf(size);
|
| internal::PodUnion_Data* data = internal::PodUnion_Data::New(&buf);
|
| data->tag = static_cast<internal::PodUnion_Data::PodUnion_Tag>(0xFFFFFF);
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| void* raw_buf = buf.Leak();
|
| EXPECT_FALSE(
|
| - internal::PodUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + internal::PodUnion_Data::Validate(raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -281,10 +283,10 @@ TEST(UnionTest, UnknownEnumValueValidation) {
|
| mojo::internal::Serialize<PodUnionPtr>(pod, &buf, &data, false, nullptr);
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| EXPECT_FALSE(
|
| - internal::PodUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + internal::PodUnion_Data::Validate(raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -301,10 +303,10 @@ TEST(UnionTest, UnknownExtensibleEnumValueValidation) {
|
| mojo::internal::Serialize<PodUnionPtr>(pod, &buf, &data, false, nullptr);
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| EXPECT_TRUE(
|
| - internal::PodUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + internal::PodUnion_Data::Validate(raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -369,11 +371,11 @@ TEST(UnionTest, NullStringValidation) {
|
| internal::ObjectUnion_Data* data = internal::ObjectUnion_Data::New(&buf);
|
| data->tag = internal::ObjectUnion_Data::ObjectUnion_Tag::F_STRING;
|
| data->data.unknown = 0x0;
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| void* raw_buf = buf.Leak();
|
| - EXPECT_FALSE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + EXPECT_FALSE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -383,11 +385,11 @@ TEST(UnionTest, StringPointerOverflowValidation) {
|
| internal::ObjectUnion_Data* data = internal::ObjectUnion_Data::New(&buf);
|
| data->tag = internal::ObjectUnion_Data::ObjectUnion_Tag::F_STRING;
|
| data->data.unknown = 0xFFFFFFFFFFFFFFFF;
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| void* raw_buf = buf.Leak();
|
| - EXPECT_FALSE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + EXPECT_FALSE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -403,10 +405,10 @@ TEST(UnionTest, StringValidateOOB) {
|
| reinterpret_cast<mojo::internal::ArrayHeader*>(ptr + *ptr);
|
| array_header->num_bytes = 20; // This should go out of bounds.
|
| array_header->num_elements = 20;
|
| - mojo::internal::BoundsChecker bounds_checker(data, 32, 0);
|
| + mojo::internal::ValidationContext validation_context(data, 32, 0);
|
| void* raw_buf = buf.Leak();
|
| - EXPECT_FALSE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + EXPECT_FALSE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -511,10 +513,10 @@ TEST(UnionTest, ObjectUnionInArraySerialization) {
|
| data =
|
| reinterpret_cast<mojo::internal::Array_Data<internal::ObjectUnion_Data>*>(
|
| new_buf.data());
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| ASSERT_TRUE(mojo::internal::Array_Data<internal::ObjectUnion_Data>::Validate(
|
| - data, &bounds_checker, &validate_params));
|
| + data, &validation_context, &validate_params));
|
|
|
| data->DecodePointers();
|
| Array<ObjectUnionPtr> array2;
|
| @@ -600,9 +602,10 @@ TEST(UnionTest, Validation_UnionsInStruct) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| - EXPECT_TRUE(internal::SmallStruct_Data::Validate(raw_buf, &bounds_checker));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| + EXPECT_TRUE(internal::SmallStruct_Data::Validate(
|
| + raw_buf, &validation_context));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -625,9 +628,10 @@ TEST(UnionTest, Validation_PodUnionInStruct_Failure) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| - EXPECT_FALSE(internal::SmallStruct_Data::Validate(raw_buf, &bounds_checker));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| + EXPECT_FALSE(internal::SmallStruct_Data::Validate(
|
| + raw_buf, &validation_context));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -645,10 +649,10 @@ TEST(UnionTest, Validation_NullUnion_Failure) {
|
| internal::SmallStructNonNullableUnion_Data::New(&buf);
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| EXPECT_FALSE(internal::SmallStructNonNullableUnion_Data::Validate(
|
| - raw_buf, &bounds_checker));
|
| + raw_buf, &validation_context));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -668,9 +672,10 @@ TEST(UnionTest, Validation_NullableUnion) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| - EXPECT_TRUE(internal::SmallStruct_Data::Validate(raw_buf, &bounds_checker));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| + EXPECT_TRUE(internal::SmallStruct_Data::Validate(
|
| + raw_buf, &validation_context));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -796,10 +801,10 @@ TEST(UnionTest, StructInUnionValidation) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| - EXPECT_TRUE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| + EXPECT_TRUE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -819,10 +824,10 @@ TEST(UnionTest, StructInUnionValidationNonNullable) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| - EXPECT_FALSE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| + EXPECT_FALSE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -842,10 +847,10 @@ TEST(UnionTest, StructInUnionValidationNullable) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| - EXPECT_TRUE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| + EXPECT_TRUE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -904,11 +909,11 @@ TEST(UnionTest, ArrayInUnionValidation) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
|
|
| - EXPECT_TRUE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + EXPECT_TRUE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -971,11 +976,11 @@ TEST(UnionTest, MapInUnionValidation) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
|
|
| - EXPECT_TRUE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + EXPECT_TRUE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -1030,10 +1035,10 @@ TEST(UnionTest, UnionInUnionValidation) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| - EXPECT_TRUE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| + EXPECT_TRUE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -1052,10 +1057,10 @@ TEST(UnionTest, UnionInUnionValidationNonNullable) {
|
| data->EncodePointers();
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 0);
|
| - EXPECT_FALSE(
|
| - internal::ObjectUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 0);
|
| + EXPECT_FALSE(internal::ObjectUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -1129,10 +1134,10 @@ TEST(UnionTest, HandleInUnionValidation) {
|
| &context);
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 1);
|
| - EXPECT_TRUE(
|
| - internal::HandleUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 1);
|
| + EXPECT_TRUE(internal::HandleUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
| @@ -1152,10 +1157,10 @@ TEST(UnionTest, HandleInUnionValidationNull) {
|
| &context);
|
|
|
| void* raw_buf = buf.Leak();
|
| - mojo::internal::BoundsChecker bounds_checker(data,
|
| - static_cast<uint32_t>(size), 1);
|
| - EXPECT_FALSE(
|
| - internal::HandleUnion_Data::Validate(raw_buf, &bounds_checker, false));
|
| + mojo::internal::ValidationContext validation_context(
|
| + data, static_cast<uint32_t>(size), 1);
|
| + EXPECT_FALSE(internal::HandleUnion_Data::Validate(
|
| + raw_buf, &validation_context, false));
|
| free(raw_buf);
|
| }
|
|
|
|
|