Skip to content

Commit ac181d3

Browse files
TristonianJoneskyessenov
authored andcommitted
Internal tests
PiperOrigin-RevId: 368545070
1 parent 683c244 commit ac181d3

2 files changed

Lines changed: 118 additions & 0 deletions

File tree

eval/tests/benchmark_test.cc

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -913,6 +913,123 @@ void BM_HasProto(benchmark::State& state) {
913913

914914
BENCHMARK(BM_HasProto);
915915

916+
// has(request.headers.create_time) && !has(request.headers.update_time)
917+
constexpr char kHasProtoMap[] = R"(
918+
call_expr: <
919+
function: "_&&_"
920+
args: <
921+
select_expr: <
922+
operand: <
923+
select_expr: <
924+
operand: <
925+
ident_expr: <
926+
name: "request"
927+
>
928+
>
929+
field: "headers"
930+
>
931+
>
932+
field: "create_time"
933+
test_only: true
934+
>
935+
>
936+
args: <
937+
call_expr: <
938+
function: "!_"
939+
args: <
940+
select_expr: <
941+
operand: <
942+
select_expr: <
943+
operand: <
944+
ident_expr: <
945+
name: "request"
946+
>
947+
>
948+
field: "headers"
949+
>
950+
>
951+
field: "update_time"
952+
test_only: true
953+
>
954+
>
955+
>
956+
>
957+
>)";
958+
959+
void BM_HasProtoMap(benchmark::State& state) {
960+
google::protobuf::Arena arena;
961+
Expr expr;
962+
Activation activation;
963+
ASSERT_TRUE(google::protobuf::TextFormat::ParseFromString(kHasProtoMap, &expr));
964+
auto builder = CreateCelExpressionBuilder();
965+
ASSERT_OK(RegisterBuiltinFunctions(builder->GetRegistry()));
966+
auto expr_plan = builder->CreateExpression(&expr, nullptr);
967+
968+
RequestContext request;
969+
request.mutable_headers()->insert({"create_time", "2021-01-01"});
970+
activation.InsertValue("request",
971+
CelProtoWrapper::CreateMessage(&request, &arena));
972+
ASSERT_OK(expr_plan.status());
973+
for (auto _ : state) {
974+
auto result = expr_plan.value()->Evaluate(activation, &arena);
975+
ASSERT_OK(result.status());
976+
ASSERT_TRUE(result->IsBool());
977+
ASSERT_TRUE(result->BoolOrDie());
978+
}
979+
}
980+
981+
BENCHMARK(BM_HasProtoMap);
982+
983+
// has(request.headers.create_time) && !has(request.headers.update_time)
984+
constexpr char kReadProtoMap[] = R"(
985+
call_expr: <
986+
function: "_==_"
987+
args: <
988+
select_expr: <
989+
operand: <
990+
select_expr: <
991+
operand: <
992+
ident_expr: <
993+
name: "request"
994+
>
995+
>
996+
field: "headers"
997+
>
998+
>
999+
field: "create_time"
1000+
>
1001+
>
1002+
args: <
1003+
const_expr: <
1004+
string_value: "2021-01-01"
1005+
>
1006+
>
1007+
>)";
1008+
1009+
void BM_ReadProtoMap(benchmark::State& state) {
1010+
google::protobuf::Arena arena;
1011+
Expr expr;
1012+
Activation activation;
1013+
ASSERT_TRUE(google::protobuf::TextFormat::ParseFromString(kReadProtoMap, &expr));
1014+
auto builder = CreateCelExpressionBuilder();
1015+
ASSERT_OK(RegisterBuiltinFunctions(builder->GetRegistry()));
1016+
auto expr_plan = builder->CreateExpression(&expr, nullptr);
1017+
1018+
RequestContext request;
1019+
request.mutable_headers()->insert({"create_time", "2021-01-01"});
1020+
activation.InsertValue("request",
1021+
CelProtoWrapper::CreateMessage(&request, &arena));
1022+
ASSERT_OK(expr_plan.status());
1023+
for (auto _ : state) {
1024+
auto result = expr_plan.value()->Evaluate(activation, &arena);
1025+
ASSERT_OK(result.status());
1026+
ASSERT_TRUE(result->IsBool());
1027+
ASSERT_TRUE(result->BoolOrDie());
1028+
}
1029+
}
1030+
1031+
BENCHMARK(BM_ReadProtoMap);
1032+
9161033
// Sum a square with a nested comprehension
9171034
constexpr char kNestedListSum[] = R"(
9181035
id: 1

eval/tests/request_context.proto

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ message RequestContext {
99
string ip = 1;
1010
string path = 2;
1111
string token = 3;
12+
map<string, string> headers = 4;
1213
}

0 commit comments

Comments
 (0)