| 651 | BENCHMARK(BM_HasMap); |
| 652 | |
| 653 | void BM_HasProto(benchmark::State& state) { |
| 654 | RuntimeOptions options = GetOptions(); |
| 655 | auto runtime = StandardRuntimeOrDie(options); |
| 656 | |
| 657 | ASSERT_OK_AND_ASSIGN(ParsedExpr parsed_expr, |
| 658 | Parse("has(request.path) && !has(request.ip)")); |
| 659 | ASSERT_OK_AND_ASSIGN(auto cel_expr, ProtobufRuntimeAdapter::CreateProgram( |
| 660 | *runtime, parsed_expr)); |
| 661 | |
| 662 | google::protobuf::Arena arena; |
| 663 | Activation activation; |
| 664 | |
| 665 | RequestContext request; |
| 666 | request.set_path(kPath); |
| 667 | request.set_token(kToken); |
| 668 | activation.InsertOrAssignValue("request", WrapMessageOrDie(request, &arena)); |
| 669 | |
| 670 | for (auto _ : state) { |
| 671 | ASSERT_OK_AND_ASSIGN(cel::Value result, |
| 672 | cel_expr->Evaluate(&arena, activation)); |
| 673 | ASSERT_TRUE(InstanceOf<BoolValue>(result) && |
| 674 | Cast<BoolValue>(result).NativeValue()); |
| 675 | } |
| 676 | } |
| 677 | |
| 678 | BENCHMARK(BM_HasProto); |
| 679 |
nothing calls this directly
no test coverage detected