P4C
The P4 Compiler
Loading...
Searching...
No Matches
P4::P4Tools::P4Testgen::Bmv2::Protobuf Class Reference

Extracts information from the @testSpec to emit a Protobuf test case. More...

#include <protobuf.h>

Inheritance diagram for P4::P4Tools::P4Testgen::Bmv2::Protobuf:
[legend]

Public Member Functions

 Protobuf (const TestBackendConfiguration &testBackendConfiguration, P4::P4RuntimeAPI p4RuntimeApi)
 
AbstractTestReferenceOrError produceTest (const TestSpec *testSpec, cstring selectedBranches, size_t testIdx, float currentCoverage) override
 
void writeTestToFile (const TestSpec *testSpec, cstring selectedBranches, size_t testId, float currentCoverage) override
 
- Public Member Functions inherited from P4::P4Tools::P4Testgen::Bmv2::Bmv2TestFramework
 Bmv2TestFramework (const TestBackendConfiguration &testBackendConfiguration)
 
- Public Member Functions inherited from P4::P4Tools::P4Testgen::TestFramework
bool isInFileMode () const
 @Returns true if the test framework is configured to write to a file.
 

Additional Inherited Members

- Protected Member Functions inherited from P4::P4Tools::P4Testgen::Bmv2::Bmv2TestFramework
virtual inja::json getClone (const TestObjectMap &cloneSpecs) const
 Returns the configuration for a cloned packet configuration.
 
virtual inja::json getControlPlaneForTable (const TableMatchMap &matches, const std::vector< ActionArg > &args) const
 Helper function for the control plane table inja objects.
 
virtual inja::json getControlPlaneTable (const TableConfig &tblConfig) const
 Converts a table configuration into Inja format.
 
virtual inja::json::array_t getMeter (const TestObjectMap &meterValues) const
 
- Protected Member Functions inherited from P4::P4Tools::P4Testgen::TestFramework
 TestFramework (const TestBackendConfiguration &testBackendConfiguration)
 Creates a generic test framework.
 
const TestBackendConfigurationgetTestBackendConfiguration () const
 Returns the configuration options for the test back end.
 
- Static Protected Member Functions inherited from P4::P4Tools::P4Testgen::Bmv2::Bmv2TestFramework
static std::string formatHexExpressionWithSeparators (const IR::Expression &expr)
 Wrapper helper function that automatically inserts separators for hex strings.
 
- Static Protected Member Functions inherited from P4::P4Tools::P4Testgen::TestFramework
static void checkForDefaultActionOverride (inja::json &tblJson, const TableConfig *tblConfig)
 
template<class ProfileType , class SelectorType >
static void checkForTableActionProfile (inja::json &tblJson, std::map< cstring, cstring > &apAsMap, const TableConfig *tblConfig)
 
template<class ProfileType >
static void collectActionProfileDeclarations (const TestSpec *testSpec, inja::json &controlPlaneJson, const std::map< cstring, cstring > &apAsMap)
 Collect all the action profile objects. These will have to be declared in the test.
 
static inja::json getTrace (const TestSpec *testSpec)
 Converts the traces of this test into a string representation and Inja object.
 

Detailed Description

Extracts information from the @testSpec to emit a Protobuf test case.

Member Function Documentation

◆ produceTest()

AbstractTestReferenceOrError P4::P4Tools::P4Testgen::Bmv2::Protobuf::produceTest ( const TestSpec * spec,
cstring selectedBranches,
size_t testIdx,
float currentCoverage )
overridevirtual

The method used to return the test case. This method is optional to each test framework.

Parameters
specthe testcase specification to be outputted.
selectedBranchesstring describing branches selected for this testcase.
testIdxtestcase unique number identifier. TODO: Make this a member?
currentCoveragecurrent coverage ratio (between 0.0 and 1.0).

Reimplemented from P4::P4Tools::P4Testgen::TestFramework.

◆ writeTestToFile()

void P4::P4Tools::P4Testgen::Bmv2::Protobuf::writeTestToFile ( const TestSpec * spec,
cstring selectedBranches,
size_t testIdx,
float currentCoverage )
overridevirtual

The method used to output the test case to be implemented by all the test frameworks (eg. STF, PTF, etc.).

Parameters
specthe testcase specification to be outputted.
selectedBranchesstring describing branches selected for this testcase.
testIdxtestcase unique number identifier. TODO: Make this a member?
currentCoveragecurrent coverage ratio (between 0.0 and 1.0) TODO (https://github.com/p4lang/p4c/issues/4403): This should not return void but instead a status.

Implements P4::P4Tools::P4Testgen::TestFramework.