33class ProtobufIr :
public Bmv2TestFramework {
38 ~ProtobufIr()
override =
default;
39 ProtobufIr(
const ProtobufIr &) =
default;
40 ProtobufIr(ProtobufIr &&) =
default;
41 ProtobufIr &operator=(
const ProtobufIr &) =
default;
42 ProtobufIr &operator=(ProtobufIr &&) =
default;
45 float currentCoverage)
override;
48 size_t testIdx,
float currentCoverage)
override;
55 [[nodiscard]] inja::json getControlPlaneTable(
const TableConfig &tblConfig)
const override;
57 [[nodiscard]] inja::json getControlPlaneForTable(
58 const TableMatchMap &matches,
const std::vector<ActionArg> &args)
const override;
60 [[nodiscard]] inja::json getSend(
const TestSpec *testSpec)
const override;
62 [[nodiscard]] inja::json getExpectedPacket(
const TestSpec *testSpec)
const override;
69 inja::json produceTestCase(
const TestSpec *testSpec,
cstring selectedBranches,
size_t testId,
70 float currentCoverage)
const;
73 static std::string getTestCaseTemplate();
77 static std::optional<std::string> checkForP4RuntimeTranslationAnnotation(
78 const IR::IAnnotated *node);
82 static std::map<cstring, cstring> getP4RuntimeTranslationMappings(
const IR::IAnnotated *node);
86 static std::string getFormatOfNode(
const IR::IAnnotated *node);
89 static std::string formatNetworkValue(
const std::string &type,
const IR::Expression *value);
92 static std::string formatNetworkValue(
const IR::IAnnotated *node,
const std::string &type,
93 const IR::Expression *value);
98 inja::json &rulesJson);