P4C
The P4 Compiler
Loading...
Searching...
No Matches
test/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 <optional>
7#include <string>
8
9#include "backends/p4tools/common/compiler/compiler_result.h"
10#include "frontends/common/options.h"
11#include "ir/ir.h"
12
13namespace P4::P4Tools::Test {
14
17 public:
19 static std::optional<const P4ToolsTestCase> create(std::string deviceName, std::string archName,
20 CompilerOptions::FrontendVersion langVersion,
21 const std::string &source);
22
24 static std::optional<const P4ToolsTestCase> create_14(std::string deviceName,
25 std::string archName,
26 const std::string &source);
27
29 static std::optional<const P4ToolsTestCase> create_16(std::string deviceName,
30 std::string archName,
31 const std::string &source);
32
33 explicit P4ToolsTestCase(const P4Tools::CompilerResult &compilerResults);
34
36 [[nodiscard]] const IR::P4Program &getProgram() const;
37
40 [[nodiscard]] const P4Tools::CompilerResult &getCompilerResult() const;
41
42 private:
44 std::reference_wrapper<const P4Tools::CompilerResult> compilerResults;
45
47 static void ensureInit();
48};
49
50class P4TestgenTest : public testing::Test {};
51
54 public:
55 const IR::SymbolicVariable *preorder(IR::Member *member) override;
56};
57
58} // namespace P4::P4Tools::Test
59
60#endif /* BACKENDS_P4TOOLS_MODULES_TESTGEN_TEST_GTEST_UTILS_H_ */
Definition common/compiler/compiler_result.h:14
Definition test/gtest_utils.h:50
Encapsulates functionality for running the front- and mid-ends of the compiler in a test.
Definition test/gtest_utils.h:16
const IR::P4Program & getProgram() const
Definition test/gtest_utils.cpp:45
const P4Tools::CompilerResult & getCompilerResult() const
Definition test/gtest_utils.cpp:49
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 test/gtest_utils.cpp:59
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 test/gtest_utils.cpp:23
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 test/gtest_utils.cpp:53
Converts IR::Member into symbolic variables.
Definition test/gtest_utils.h:53
Definition visitor.h:424