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 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);