1#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_EBPF_BACKEND_STF_STF_H_
2#define BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_EBPF_BACKEND_STF_STF_H_
8#include <inja/inja.hpp>
10#include "lib/cstring.h"
12#include "backends/p4tools/modules/testgen/lib/test_framework.h"
13#include "backends/p4tools/modules/testgen/lib/test_spec.h"
15namespace P4::P4Tools::P4Testgen::EBPF {
20 ~STF()
override =
default;
23 STF &operator=(
const STF &) =
delete;
24 STF &operator=(
STF &&) =
delete;
30 float currentCoverage)
override;
38 void emitTestcase(
const TestSpec *testSpec,
cstring selectedBranches,
size_t testId,
39 const std::string &testCase,
float currentCoverage);
42 static std::string getTestCaseTemplate();
45 static inja::json getControlPlane(
const TestSpec *testSpec);
48 static inja::json getSend(
const TestSpec *testSpec);
51 static inja::json getVerify(
const TestSpec *testSpec);
54 static inja::json getControlPlaneForTable(
const TableMatchMap &matches,
55 const std::vector<ActionArg> &args);