MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / TEST_P

Function TEST_P

checker/optional_test.cc:111–144  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109class OptionalTest : public testing::TestWithParam<TestCase> {};
110
111TEST_P(OptionalTest, Runner) {
112 ASSERT_OK_AND_ASSIGN(
113 std::unique_ptr<TypeCheckerBuilder> builder,
114 CreateTypeCheckerBuilder(GetSharedTestingDescriptorPool()));
115 const TestCase& test_case = GetParam();
116 ASSERT_THAT(builder->AddLibrary(StandardCheckerLibrary()), IsOk());
117 ASSERT_THAT(builder->AddLibrary(OptionalCheckerLibrary()), IsOk());
118 ASSERT_OK_AND_ASSIGN(std::unique_ptr<TypeChecker> checker,
119 std::move(*builder).Build());
120
121 ASSERT_OK_AND_ASSIGN(auto ast, MakeTestParsedAst(test_case.expr));
122
123 ASSERT_OK_AND_ASSIGN(auto result, checker->Check(std::move(ast)));
124
125 if (!test_case.error_substring.empty()) {
126 EXPECT_THAT(result.GetIssues(),
127 Contains(Property(&TypeCheckIssue::message,
128 HasSubstr(test_case.error_substring))))
129 << absl::StrJoin(result.GetIssues(), "\n",
130 [](std::string* out, const auto& i) {
131 absl::StrAppend(out, i.message());
132 });
133 return;
134 }
135
136 EXPECT_THAT(result.GetIssues(), IsEmpty())
137 << "for expression: " << test_case.expr;
138 ASSERT_OK_AND_ASSIGN(auto checked_ast, result.ReleaseAst());
139
140 int64_t root_id = checked_ast->root_expr().id();
141
142 EXPECT_THAT(checked_ast->GetTypeOrDyn(root_id), test_case.result_type_matcher)
143 << "for expression: " << test_case.expr;
144}
145
146INSTANTIATE_TEST_SUITE_P(
147 OptionalTests, OptionalTest,

Callers

nothing calls this directly

Calls 10

CreateTypeCheckerBuilderFunction · 0.85
StandardCheckerLibraryFunction · 0.85
OptionalCheckerLibraryFunction · 0.85
GetIssuesMethod · 0.80
messageMethod · 0.80
ASSERT_OK_AND_ASSIGNFunction · 0.50
AddLibraryMethod · 0.45
BuildMethod · 0.45
emptyMethod · 0.45
idMethod · 0.45

Tested by

no test coverage detected