P4C
The P4 Compiler
Loading...
Searching...
No Matches
gtest_utils.h
1#ifndef BACKENDS_P4TOOLS_MODULES_TESTGEN_TEST_GTEST_UTILS_H_
2#define BACKENDS_P4TOOLS_MODULES_TESTGEN_TEST_GTEST_UTILS_H_
3
4#include <gtest/gtest.h>
5
6#include <functional>
7#include <optional>
8#include <string>
9
10#include "backends/p4tools/common/compiler/compiler_target.h"
11#include "frontends/common/options.h"
12#include "ir/ir.h"
13
14namespace P4::Test {
15
17class P4ToolsTestCase {
18 public:
20 static std::optional<const P4ToolsTestCase> create(std::string deviceName, std::string archName,
21 CompilerOptions::FrontendVersion langVersion,
22 const std::string &source);
23
25 static std::optional<const P4ToolsTestCase> create_14(std::string deviceName,
26 std::string archName,
27 const std::string &source);
28
30 static std::optional<const P4ToolsTestCase> create_16(std::string deviceName,
31 std::string archName,
32 const std::string &source);
33
34 explicit P4ToolsTestCase(const P4Tools::CompilerResult &compilerResults);
35
37 [[nodiscard]] const IR::P4Program &getProgram() const;
38
41 [[nodiscard]] const P4Tools::CompilerResult &getCompilerResult() const;
42
43 private:
45 std::reference_wrapper<const P4Tools::CompilerResult> compilerResults;
46
48 static void ensureInit();
49};
50
52class P4ToolsTest : public ::testing::Test {};
53
55class SymbolicConverter : public Transform {
56 public:
57 const IR::SymbolicVariable *preorder(IR::Member *member) override;
58};
59
60} // namespace P4::Test
61
62#endif /* BACKENDS_P4TOOLS_MODULES_TESTGEN_TEST_GTEST_UTILS_H_ */
Definition common/compiler/compiler_result.h:14
static std::optional< const P4ToolsTestCase > create_16(std::string deviceName, std::string archName, const std::string &source)
Factory method for producing a test case from a P4_16 program source.
Definition gtest_utils.cpp:57
static std::optional< const P4ToolsTestCase > create_14(std::string deviceName, std::string archName, const std::string &source)
Factory method for producing a test case from a P4_14 program source.
Definition gtest_utils.cpp:51
const P4Tools::CompilerResult & getCompilerResult() const
Definition gtest_utils.cpp:47
const IR::P4Program & getProgram() const
Definition gtest_utils.cpp:43
static std::optional< const P4ToolsTestCase > create(std::string deviceName, std::string archName, CompilerOptions::FrontendVersion langVersion, const std::string &source)
Factory method for producing a test case from a P4 program source.
Definition gtest_utils.cpp:21
GTest for P4 Tools tests.
Definition gtest_utils.h:52
Converts IR::Member into symbolic variables.
Definition gtest_utils.h:55