Updated fuzzer scripts

Point to new Chromium location
Also enable UBSan

Change-Id: I4ba182e3c6a967ad89090b776d05762fa9ae6e40
This commit is contained in:
Wouter van Oortmerssen
2018-07-16 15:51:01 -07:00
parent 7c3cb5caa1
commit af6c0e6839
4 changed files with 26 additions and 8 deletions

View File

@@ -1952,19 +1952,19 @@ void EndianSwapTest() {
void UninitializedVectorTest() {
flatbuffers::FlatBufferBuilder builder;
Test *buf = nullptr;
auto vector_offset = builder.CreateUninitializedVectorOfStructs<Test>(2, &buf);
TEST_NOTNULL(buf);
buf[0] = Test(10, 20);
buf[1] = Test(30, 40);
auto required_name = builder.CreateString("myMonster");
auto monster_builder = MonsterBuilder(builder);
monster_builder.add_name(required_name); // required field mandated for monster.
monster_builder.add_test4(vector_offset);
builder.Finish(monster_builder.Finish());
auto p = builder.GetBufferPointer();
auto uvt = flatbuffers::GetRoot<Monster>(p);
TEST_NOTNULL(uvt);
@@ -1978,6 +1978,18 @@ void UninitializedVectorTest() {
TEST_EQ(test_1->b(), 40);
}
// For testing any binaries, e.g. from fuzzing.
void LoadVerifyBinaryTest() {
std::string binary;
if (flatbuffers::LoadFile((test_data_path +
"fuzzer/your-filename-here").c_str(),
true, &binary)) {
flatbuffers::Verifier verifier(
reinterpret_cast<const uint8_t *>(binary.data()), binary.size());
TEST_EQ(VerifyMonsterBuffer(verifier), true);
}
}
int main(int /*argc*/, const char * /*argv*/ []) {
// clang-format off
#if defined(FLATBUFFERS_MEMORY_LEAK_TRACKING) && \
@@ -2021,6 +2033,7 @@ int main(int /*argc*/, const char * /*argv*/ []) {
ReflectionTest(flatbuf.data(), flatbuf.size());
ParseProtoTest();
UnionVectorTest();
LoadVerifyBinaryTest();
#endif
// clang-format on