| 147 | }; |
| 148 | |
| 149 | absl::StatusOr<ParsedExpr> ParseTestCase(const RecursiveTestCase& test_case) { |
| 150 | static const std::vector<Macro>* kMacros = []() { |
| 151 | auto* result = new std::vector<Macro>(Macro::AllMacros()); |
| 152 | absl::c_copy(cel::extensions::bindings_macros(), |
| 153 | std::back_inserter(*result)); |
| 154 | return result; |
| 155 | }(); |
| 156 | |
| 157 | if (!test_case.expr.empty()) { |
| 158 | return ParseWithMacros(test_case.expr, *kMacros, "<input>"); |
| 159 | } else if (!test_case.pb_expr.empty()) { |
| 160 | ParsedExpr result; |
| 161 | if (!google::protobuf::TextFormat::ParseFromString(test_case.pb_expr, &result)) { |
| 162 | return absl::InvalidArgumentError("Failed to parse proto"); |
| 163 | } |
| 164 | return result; |
| 165 | } |
| 166 | return absl::InvalidArgumentError("No expression provided"); |
| 167 | } |
| 168 | |
| 169 | TEST_P(RecursivePlanTest, ParsedExprRecursiveImpl) { |
| 170 | const RecursiveTestCase& test_case = GetParam(); |
nothing calls this directly
no test coverage detected