blob: fb0408d704fb57743e8ad14fdca4d02c879927cf [file] [log] [blame]
#include <stdlib.h>
#include <iostream>
#include "testing/libfuzzer/proto/lpm_interface.h"
#include "third_party/blink/renderer/platform/scheduler/test/fuzzer/proto/sequence_manager_test_description.pb.h"
#include "third_party/blink/renderer/platform/scheduler/test/fuzzer/sequence_manager_fuzzer_processor.h"
#include "third_party/blink/renderer/platform/wtf/allocator/partitions.h"
// Tests some APIs in base::sequence_manager::SequenceManager (ones defined in
// SequenceManagerTesrDescription proto) for crashes, hangs, memory leaks,
// etc ... by running randomly generated tests, and exposing problematic corner
// cases. For more details, check out go/libfuzzer-chromium.
DEFINE_BINARY_PROTO_FUZZER(
const base::sequence_manager::SequenceManagerTestDescription&
fuzzer_input) {
if (getenv("LPM_DUMP_NATIVE_INPUT")) {
std::cout << fuzzer_input.DebugString() << std::endl;
}
WTF::Partitions::Initialize();
base::sequence_manager::SequenceManagerFuzzerProcessor::ParseAndRun(
fuzzer_input);
}