20#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_TOFINO_TEST_BACKEND_STF_H_
21#define BACKENDS_P4TOOLS_MODULES_TESTGEN_TARGETS_TOFINO_TEST_BACKEND_STF_H_
27#include <inja/inja.hpp>
29#include "lib/cstring.h"
31#include "backends/p4tools/modules/testgen/lib/test_framework.h"
32#include "backends/p4tools/modules/testgen/lib/test_spec.h"
34namespace P4::P4Tools::P4Testgen::Tofino {
39 ~STF()
override =
default;
41 STF(
const STF &) =
delete;
45 STF &operator=(
const STF &) =
delete;
47 STF &operator=(STF &&) =
delete;
53 float currentCoverage)
override;
61 void emitTestcase(
const TestSpec *testSpec,
cstring selectedBranches,
size_t testId,
62 const std::string &testCase,
float currentCoverage);
65 static std::string getTestCaseTemplate();
68 static inja::json getControlPlane(
const TestSpec *testSpec);
71 static inja::json getSend(
const TestSpec *testSpec);
74 static inja::json getVerify(
const TestSpec *testSpec);
77 static inja::json getControlPlaneForTable(
const TableMatchMap &matches,
78 const std::vector<ActionArg> &args);