1#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_LIB_TEST_BACKEND_H_
2#define BACKENDS_P4TOOLS_MODULES_TESTGEN_LIB_TEST_BACKEND_H_
9#include "backends/p4tools/common/lib/model.h"
10#include "backends/p4tools/common/lib/trace_event.h"
13#include "backends/p4tools/modules/testgen/core/program_info.h"
14#include "backends/p4tools/modules/testgen/core/symbolic_executor/symbolic_executor.h"
15#include "backends/p4tools/modules/testgen/lib/execution_state.h"
16#include "backends/p4tools/modules/testgen/lib/final_state.h"
17#include "backends/p4tools/modules/testgen/lib/test_framework.h"
18#include "backends/p4tools/modules/testgen/lib/test_spec.h"
19#include "backends/p4tools/modules/testgen/options.h"
21namespace P4::P4Tools::P4Testgen {
26 int64_t testCount = 0;
29 static const int64_t RESET_THRESHOLD = 10000;
32 std::reference_wrapper<const ProgramInfo> programInfo;
35 std::reference_wrapper<const TestBackendConfiguration> testBackendConfiguration;
58 [[nodiscard]]
bool needsToTerminate(int64_t testCount)
const;
89 const std::vector<std::reference_wrapper<const TraceEvent>>
programTraces;
103 const IR::Expression *outputPortExpr);
113 const IR::Expression *outputPacketExpr,
const IR::Expression *outputPortExpr,
114 const std::vector<std::reference_wrapper<const TraceEvent>> *programTraces);