#include #include "command.h" #include "report_lib_interface.cpp" #include "test_util.h" using namespace simpleperf; namespace { class CommandRegister { public: CommandRegister() { RegisterDumpRecordCommand(); } }; CommandRegister command_register; void TestReportLib(const char* record_file) { ReportLib* report_lib = CreateReportLib(); SetRecordFile(report_lib, record_file); while (true) { Sample* sample = GetNextSample(report_lib); if (sample == nullptr) { break; } } DestroyReportLib(report_lib); } void TestDumpCmd(const char* record_file) { std::unique_ptr dump_cmd = CreateCommandInstance("dump"); CaptureStdout capture; capture.Start(); dump_cmd->Run({"-i", record_file, "--dump-etm", "raw,packet,element"}); } } // namespace extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { TemporaryFile tmpfile; android::base::WriteFully(tmpfile.fd, data, size); TestReportLib(tmpfile.path); TestDumpCmd(tmpfile.path); return 0; }