mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-02 04:04:19 +00:00
Fix ambiguity of a type deduction in TEST_EQ macro if arguments have enum class type. (#5630)
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
075e8d676b
commit
c3c32ec942
@@ -1394,7 +1394,7 @@ void FuzzTest2() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
TEST_NOTNULL(NULL);
|
||||
TEST_NOTNULL(nullptr);
|
||||
}
|
||||
|
||||
// clang-format off
|
||||
@@ -2985,32 +2985,28 @@ void FixedLengthArrayTest() {
|
||||
TEST_NOTNULL(mArStruct->mutable_d()->GetMutablePointer(1));
|
||||
TEST_NOTNULL(mArStruct->mutable_d()->GetMutablePointer(1)->mutable_a());
|
||||
mArStruct->mutable_d()->GetMutablePointer(1)->mutable_a()->Mutate(1, 5);
|
||||
TEST_EQ(mArStruct->d()->Get(1)->a()->Get(1), 5);
|
||||
TEST_EQ(mArStruct->d()->Get(0)->b() == MyGame::Example::TestEnum::B, true);
|
||||
TEST_EQ(5, mArStruct->d()->Get(1)->a()->Get(1));
|
||||
TEST_EQ(MyGame::Example::TestEnum::B, mArStruct->d()->Get(0)->b());
|
||||
TEST_NOTNULL(mArStruct->d()->Get(0)->c());
|
||||
TEST_EQ(mArStruct->d()->Get(0)->c()->Get(0) == MyGame::Example::TestEnum::C,
|
||||
true);
|
||||
TEST_EQ(mArStruct->d()->Get(0)->c()->Get(1) == MyGame::Example::TestEnum::A,
|
||||
true);
|
||||
TEST_EQ(mArStruct->d()->Get(0)->d()->Get(0),
|
||||
flatbuffers::numeric_limits<int64_t>::max());
|
||||
TEST_EQ(mArStruct->d()->Get(0)->d()->Get(1),
|
||||
flatbuffers::numeric_limits<int64_t>::min());
|
||||
TEST_EQ(mArStruct->d()->Get(1)->b() == MyGame::Example::TestEnum::C, true);
|
||||
TEST_EQ(MyGame::Example::TestEnum::C, mArStruct->d()->Get(0)->c()->Get(0));
|
||||
TEST_EQ(MyGame::Example::TestEnum::A, mArStruct->d()->Get(0)->c()->Get(1));
|
||||
TEST_EQ(flatbuffers::numeric_limits<int64_t>::max(),
|
||||
mArStruct->d()->Get(0)->d()->Get(0));
|
||||
TEST_EQ(flatbuffers::numeric_limits<int64_t>::min(),
|
||||
mArStruct->d()->Get(0)->d()->Get(1));
|
||||
TEST_EQ(MyGame::Example::TestEnum::C, mArStruct->d()->Get(1)->b());
|
||||
TEST_NOTNULL(mArStruct->d()->Get(1)->c());
|
||||
TEST_EQ(mArStruct->d()->Get(1)->c()->Get(0) == MyGame::Example::TestEnum::C,
|
||||
true);
|
||||
TEST_EQ(mArStruct->d()->Get(1)->c()->Get(1) == MyGame::Example::TestEnum::A,
|
||||
true);
|
||||
TEST_EQ(mArStruct->d()->Get(1)->d()->Get(0),
|
||||
flatbuffers::numeric_limits<int64_t>::min());
|
||||
TEST_EQ(mArStruct->d()->Get(1)->d()->Get(1),
|
||||
flatbuffers::numeric_limits<int64_t>::max());
|
||||
TEST_EQ(MyGame::Example::TestEnum::C, mArStruct->d()->Get(1)->c()->Get(0));
|
||||
TEST_EQ(MyGame::Example::TestEnum::A, mArStruct->d()->Get(1)->c()->Get(1));
|
||||
TEST_EQ(flatbuffers::numeric_limits<int64_t>::min(),
|
||||
mArStruct->d()->Get(1)->d()->Get(0));
|
||||
TEST_EQ(flatbuffers::numeric_limits<int64_t>::max(),
|
||||
mArStruct->d()->Get(1)->d()->Get(1));
|
||||
for (int i = 0; i < mArStruct->b()->size() - 1; i++)
|
||||
TEST_EQ(mArStruct->b()->Get(i), i + 1);
|
||||
// Check alignment
|
||||
TEST_EQ(reinterpret_cast<uintptr_t>(mArStruct->d()) % 8, 0);
|
||||
TEST_EQ(reinterpret_cast<uintptr_t>(mArStruct->f()) % 8, 0);
|
||||
TEST_EQ(0, reinterpret_cast<uintptr_t>(mArStruct->d()) % 8);
|
||||
TEST_EQ(0, reinterpret_cast<uintptr_t>(mArStruct->f()) % 8);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user