P4C
The P4 Compiler
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
P4Tools::P4Testgen::Testgen Class Reference

This is main implementation of the P4Testgen tool. More...

#include <testgen.h>

Inheritance diagram for P4Tools::P4Testgen::Testgen:
[legend]

Static Public Member Functions

static std::optional< AbstractTestList > generateTests (const CompilerOptions &options, const TestgenOptions &testgenOptions)
 
static std::optional< AbstractTestList > generateTests (std::string_view program, const CompilerOptions &options, const TestgenOptions &testgenOptions)
 
static int writeTests (const CompilerOptions &options, const TestgenOptions &testgenOptions)
 
static int writeTests (std::string_view program, const CompilerOptions &options, const TestgenOptions &testgenOptions)
 

Protected Member Functions

int mainImpl (const CompilerResult &compilerResult) override
 
void registerTarget () override
 

Additional Inherited Members

- Public Member Functions inherited from P4Tools::AbstractP4cTool< TestgenOptions >
int main (std::string_view toolName, const std::vector< const char * > &args)
 

Detailed Description

This is main implementation of the P4Testgen tool.

Member Function Documentation

◆ generateTests() [1/2]

std::optional< AbstractTestList > P4Tools::P4Testgen::Testgen::generateTests ( const CompilerOptions & options,
const TestgenOptions & testgenOptions )
static

Invokes P4Testgen and returns a list of abstract tests which are generated based on the input TestgenOptions. The abstract tests can be further specialized depending on the select test back end. CompilerOptions is required to invoke the correct preprocessor and P4 compiler. It is assumed that .file in the compiler options is set.

◆ generateTests() [2/2]

std::optional< AbstractTestList > P4Tools::P4Testgen::Testgen::generateTests ( std::string_view program,
const CompilerOptions & options,
const TestgenOptions & testgenOptions )
static

Invokes P4Testgen and returns a list of abstract tests which are generated based on the input TestgenOptions. The abstract tests can be further specialized depending on the select test back end. CompilerOptions is required to invoke the correct P4 compiler. This function assumes that

Parameters
programis already preprocessed. P4Testgen will directly parse the input program.

◆ mainImpl()

int P4Tools::P4Testgen::Testgen::mainImpl ( const CompilerResult & compilerResult)
overrideprotectedvirtual

Provides the implementation of the tool.

Parameters
programThe P4 program after mid-end processing.

Implements P4Tools::AbstractP4cTool< TestgenOptions >.

◆ registerTarget()

void P4Tools::P4Testgen::Testgen::registerTarget ( )
overrideprotectedvirtual

◆ writeTests() [1/2]

int P4Tools::P4Testgen::Testgen::writeTests ( const CompilerOptions & options,
const TestgenOptions & testgenOptions )
static

Invokes P4Testgen and writes a list of abstract tests to a specified output directory which are generated based on the input TestgenOptions. The abstract tests can be further specialized depending on the select test back end. CompilerOptions is required to invoke the correct preprocessor and P4 compiler. It is assumed that .file in the compiler options is set.

◆ writeTests() [2/2]

int P4Tools::P4Testgen::Testgen::writeTests ( std::string_view program,
const CompilerOptions & options,
const TestgenOptions & testgenOptions )
static

Invokes P4Testgen and writes a list of abstract tests to a specified output directory which are generated based on the input TestgenOptions. CompilerOptions is required to invoke the correct P4 compiler. This function assumes that

Parameters
programis already preprocessed. P4Testgen will directly parse the input program.