39class ProtobufIr :
public Bmv2TestFramework {
44 ~ProtobufIr()
override =
default;
45 ProtobufIr(
const ProtobufIr &) =
default;
46 ProtobufIr(ProtobufIr &&) =
default;
47 ProtobufIr &operator=(
const ProtobufIr &) =
default;
48 ProtobufIr &operator=(ProtobufIr &&) =
default;
51 float currentCoverage)
override;
54 size_t testIdx,
float currentCoverage)
override;
61 [[nodiscard]] inja::json getControlPlaneTable(
const TableConfig &tblConfig)
const override;
63 [[nodiscard]] inja::json getControlPlaneForTable(
64 const TableMatchMap &matches,
const std::vector<ActionArg> &args)
const override;
66 [[nodiscard]] inja::json getSend(
const TestSpec *testSpec)
const override;
68 [[nodiscard]] inja::json getExpectedPacket(
const TestSpec *testSpec)
const override;
75 inja::json produceTestCase(
const TestSpec *testSpec,
cstring selectedBranches,
size_t testId,
76 float currentCoverage)
const;
79 static std::string getTestCaseTemplate();
83 static std::optional<std::string> checkForP4RuntimeTranslationAnnotation(
84 const IR::IAnnotated *node);
88 static std::map<cstring, cstring> getP4RuntimeTranslationMappings(
const IR::IAnnotated *node);
92 static std::string getFormatOfNode(
const IR::IAnnotated *node);
95 static std::string formatNetworkValue(
const std::string &type,
const IR::Expression *value);
98 static std::string formatNetworkValue(
const IR::IAnnotated *node,
const std::string &type,
99 const IR::Expression *value);
104 inja::json &rulesJson);