| 91 | enum class ConstFoldingEnabled { kNo, kYes }; |
| 92 | |
| 93 | std::unique_ptr<const cel::Runtime> StandardRuntimeOrDie( |
| 94 | const cel::RuntimeOptions& options, google::protobuf::Arena* arena = nullptr, |
| 95 | ConstFoldingEnabled const_folding = ConstFoldingEnabled::kNo) { |
| 96 | auto builder = CreateStandardRuntimeBuilder( |
| 97 | internal::GetTestingDescriptorPool(), options); |
| 98 | ABSL_CHECK_OK(builder.status()); |
| 99 | |
| 100 | switch (const_folding) { |
| 101 | case ConstFoldingEnabled::kNo: |
| 102 | break; |
| 103 | case ConstFoldingEnabled::kYes: |
| 104 | ABSL_CHECK(arena != nullptr); |
| 105 | ABSL_CHECK_OK(extensions::EnableConstantFolding(*builder)); |
| 106 | break; |
| 107 | } |
| 108 | |
| 109 | auto runtime = std::move(builder).value().Build(); |
| 110 | ABSL_CHECK_OK(runtime.status()); |
| 111 | return std::move(runtime).value(); |
| 112 | } |
| 113 | |
| 114 | template <typename T> |
| 115 | Value WrapMessageOrDie(const T& message, google::protobuf::Arena* absl_nonnull arena) { |
no test coverage detected