mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-11 07:27:27 +00:00
Fixed Reflection Verifier not handling vectors of unions.
Change-Id: Ie94386ff8e10fd2a964bd9155139b50953746a37
This commit is contained in:
@@ -2348,12 +2348,11 @@ void UnionVectorTest() {
|
||||
fbb.CreateStruct(Rapunzel(/*hair_length=*/6)).Union(),
|
||||
fbb.CreateVector(types), fbb.CreateVector(characters));
|
||||
FinishMovieBuffer(fbb, movie_offset);
|
||||
auto buf = fbb.GetBufferPointer();
|
||||
|
||||
flatbuffers::Verifier verifier(buf, fbb.GetSize());
|
||||
flatbuffers::Verifier verifier(fbb.GetBufferPointer(), fbb.GetSize());
|
||||
TEST_EQ(VerifyMovieBuffer(verifier), true);
|
||||
|
||||
auto flat_movie = GetMovie(buf);
|
||||
auto flat_movie = GetMovie(fbb.GetBufferPointer());
|
||||
|
||||
auto TestMovie = [](const Movie *movie) {
|
||||
TEST_EQ(movie->main_character_type() == Character_Rapunzel, true);
|
||||
@@ -2485,6 +2484,13 @@ void UnionVectorTest() {
|
||||
" ]\n"
|
||||
"}\n");
|
||||
|
||||
// Simple test with reflection.
|
||||
parser.Serialize();
|
||||
auto schema = reflection::GetSchema(parser.builder_.GetBufferPointer());
|
||||
auto ok = flatbuffers::Verify(*schema, *schema->root_table(),
|
||||
fbb.GetBufferPointer(), fbb.GetSize());
|
||||
TEST_EQ(ok, true);
|
||||
|
||||
flatbuffers::Parser parser2(idl_opts);
|
||||
TEST_EQ(parser2.Parse("struct Bool { b:bool; }"
|
||||
"union Any { Bool }"
|
||||
|
||||
Reference in New Issue
Block a user