Go to the documentation of this file. 1 #include <fuzzer/FuzzedDataProvider.h>
17 FuzzedDataProvider fuzz_data(data,
size);
23 env.
enums = std::make_shared<BT::EnumsTable>();
26 env.
vars->set(
"test_int", 42);
27 env.
vars->set(
"test_double", 3.14);
28 env.
vars->set(
"test_bool",
true);
29 env.
vars->set(
"test_string", std::string(
"test"));
32 (*env.
enums)[
"RUNNING"] = 0;
33 (*env.
enums)[
"SUCCESS"] = 1;
34 (*env.
enums)[
"FAILURE"] = 2;
36 std::string script = fuzz_data.ConsumeRandomLengthString();
40 if(!validation_result)
47 auto result = parsed_script.value()(env);
51 volatile auto num = result.cast<
double>();
54 env.
vars->set(
"result", result);
57 env.
vars->get(
"result", read_back);
66 catch(
const std::exception&)
constexpr auto size(const C &c) -> decltype(c.size())
Expected< ScriptFunction > ParseScript(const std::string &script)
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
Expected< Any > ParseScriptAndExecute(Ast::Environment &env, const std::string &script)
static Blackboard::Ptr create(Blackboard::Ptr parent={})
Result ValidateScript(const std::string &script)
ValidateScript will check if a certain string is valid.
The Environment class is used to encapsulate the information and states needed by the scripting langu...