P4C
The P4 Compiler
Loading...
Searching...
No Matches
p4tools/modules/testgen/targets/ebpf/target.h
1#ifndef TESTGEN_TARGETS_EBPF_TARGET_H_
2#define TESTGEN_TARGETS_EBPF_TARGET_H_
3
4#include <cstdint>
5#include <filesystem>
6#include <optional>
7
8#include "backends/p4tools/common/lib/arch_spec.h"
9#include "ir/ir.h"
10#include "ir/solver.h"
11
12#include "backends/p4tools/modules/testgen/core/program_info.h"
13#include "backends/p4tools/modules/testgen/core/symbolic_executor/symbolic_executor.h"
14#include "backends/p4tools/modules/testgen/core/target.h"
15#include "backends/p4tools/modules/testgen/lib/execution_state.h"
16#include "backends/p4tools/modules/testgen/targets/ebpf/cmd_stepper.h"
17#include "backends/p4tools/modules/testgen/targets/ebpf/expr_stepper.h"
18#include "backends/p4tools/modules/testgen/targets/ebpf/program_info.h"
19#include "backends/p4tools/modules/testgen/targets/ebpf/test_backend.h"
20
21namespace P4::P4Tools::P4Testgen::EBPF {
22
24 public:
26 static void make();
27
28 protected:
30 const CompilerResult &compilerResult,
31 const IR::Declaration_Instance *mainDecl) const override;
32
34 const TestBackendConfiguration &testBackendConfiguration,
35 SymbolicExecutor &symbex) const override;
36
38 const ProgramInfo &programInfo) const override;
39
41 const ProgramInfo &programInfo) const override;
42
43 private:
45
46 [[nodiscard]] MidEnd mkMidEnd(const CompilerOptions &options) const override;
47};
48
49} // namespace P4::P4Tools::P4Testgen::EBPF
50
51#endif /* TESTGEN_TARGETS_EBPF_TARGET_H_ */
Provides a higher-level interface for an SMT solver.
Definition solver.h:24
Definition frontends/common/options.h:30
Definition common/compiler/compiler_result.h:14
Definition p4tools/common/compiler/midend.h:24
Definition targets/ebpf/cmd_stepper.h:19
Definition targets/ebpf/expr_stepper.h:15
Definition targets/ebpf/program_info.h:15
Definition targets/ebpf/test_backend.h:24
Definition p4tools/modules/testgen/targets/ebpf/target.h:23
static void make()
Registers this target.
Definition p4tools/modules/testgen/targets/ebpf/target.cpp:33
EBPFCmdStepper * getCmdStepperImpl(ExecutionState &state, AbstractSolver &solver, const ProgramInfo &programInfo) const override
Definition p4tools/modules/testgen/targets/ebpf/target.cpp:78
const EBPFProgramInfo * produceProgramInfoImpl(const CompilerResult &compilerResult, const IR::Declaration_Instance *mainDecl) const override
Definition p4tools/modules/testgen/targets/ebpf/target.cpp:40
EBPFExprStepper * getExprStepperImpl(ExecutionState &state, AbstractSolver &solver, const ProgramInfo &programInfo) const override
Definition p4tools/modules/testgen/targets/ebpf/target.cpp:83
EBPFTestBackend * getTestBackendImpl(const ProgramInfo &programInfo, const TestBackendConfiguration &testBackendConfiguration, SymbolicExecutor &symbex) const override
Definition p4tools/modules/testgen/targets/ebpf/target.cpp:72
Represents state of execution after having reached a program point.
Definition execution_state.h:34
Stores target-specific information about a P4 program.
Definition core/program_info.h:21
Definition symbolic_executor.h:21
Definition p4tools/modules/testgen/core/target.h:19
Definition test_backend_configuration.h:16