#pragma once
#include <inttypes.h>
#include <string>
#include "instrumentation.h"
#include "cxx.h"
class TinyInstInstrumentation : public Instrumentation
{
public:
~TinyInstInstrumentation();
void Init(int argc, char **argv) override;
RunResult Run(int argc, char **argv, uint32_t init_timeout,
uint32_t timeout) override;
RunResult RunWithCrashAnalysis(int argc, char **argv, uint32_t init_timeout,
uint32_t timeout) override;
void CleanTarget() override;
bool HasNewCoverage() override;
void GetCoverage(Coverage &coverage, rust::Vec<uint64_t> &afl_coverage, bool clear_coverage) override;
void ClearCoverage() override;
void IgnoreCoverage(Coverage &coverage) override;
uint64_t GetReturnValue() override;
std::string GetCrashName() override;
protected:
AFLCov *instrumentation;
bool persist;
int num_iterations;
int cur_iteration;
};