# proto-file: ../../../proto/cel/expr/conformance/test/simple.proto # proto-message: cel.expr.conformance.test.SimpleTestFile name: "dynamic" description: "Tests for 'dynamic' proto behavior, including JSON, wrapper, and Any messages." section { name: "int32" description: "Tests for int32 conversion." test { name: "literal" expr: "google.protobuf.Int32Value{value: -123}" value { int64_value: -123 } } test { name: "literal_no_field_access" expr: "google.protobuf.Int32Value{value: -123}.value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_zero" expr: "google.protobuf.Int32Value{}" value { int64_value: 0 } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Int32Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Int32Value] { value: 2000000 } } } } } value { int64_value: 2000000 } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int32_wrapper: 432}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_int32_wrapper { value: 432 } } } } } test { name: "field_assign_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int32_wrapper: 0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_int32_wrapper { } } } } } test { name: "field_assign_proto2_max" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int32_wrapper: 2147483647}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_int32_wrapper { value: 2147483647 } } } } } test { name: "field_assign_proto2_min" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int32_wrapper: -2147483648}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_int32_wrapper { value: -2147483648 } } } } } test { name: "field_assign_proto2_range" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int32_wrapper: 12345678900}" eval_error { errors { message: "range error" } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int32_wrapper: 642}.single_int32_wrapper" value { int64_value: 642 } } test { name: "field_read_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int32_wrapper: 0}.single_int32_wrapper" value { int64_value: 0 } } test { name: "field_read_proto2_unset" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{}.single_int32_wrapper" value { null_value: NULL_VALUE } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_int32_wrapper: -975}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_int32_wrapper { value: -975 } } } } } test { name: "field_assign_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_int32_wrapper: 0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_int32_wrapper { } } } } } test { name: "field_assign_proto3_max" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_int32_wrapper: 2147483647}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_int32_wrapper { value: 2147483647 } } } } } test { name: "field_assign_proto3_min" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_int32_wrapper: -2147483648}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_int32_wrapper { value: -2147483648 } } } } } test { name: "field_assign_proto3_range" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_int32_wrapper: -998877665544332211}" eval_error { errors { message: "range error" } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_int32_wrapper: 642}.single_int32_wrapper" value { int64_value: 642 } } test { name: "field_read_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_int32_wrapper: 0}.single_int32_wrapper" value { int64_value: 0 } } test { name: "field_read_proto3_unset" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{}.single_int32_wrapper" value { null_value: NULL_VALUE } } } section { name: "int64" description: "Tests for int64 conversion." test { name: "literal" expr: "google.protobuf.Int64Value{value: -123}" value { int64_value: -123 } } test { name: "literal_no_field_access" expr: "google.protobuf.Int64Value{value: -123}.value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_zero" expr: "google.protobuf.Int64Value{}" value { int64_value: 0 } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Int64Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Int64Value] { value: 2000000 } } } } } value { int64_value: 2000000 } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int64_wrapper: 432}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_int64_wrapper { value: 432 } } } } } test { name: "field_assign_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int64_wrapper: 0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_int64_wrapper { } } } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_int64_wrapper: -975}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_int64_wrapper { value: -975 } } } } } test { name: "field_assign_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_int64_wrapper: 0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_int64_wrapper { } } } } } } section { name: "uint32" description: "Tests for uint32 conversion." test { name: "literal" expr: "google.protobuf.UInt32Value{value: 123u}" value { uint64_value: 123 } } test { name: "literal_no_field_access" expr: "google.protobuf.UInt32Value{value: 123u}.value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_zero" expr: "google.protobuf.UInt32Value{}" value { uint64_value: 0 } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.UInt32Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.UInt32Value] { value: 2000000 } } } } } value { uint64_value: 2000000 } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint32_wrapper: 432u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_uint32_wrapper { value: 432 } } } } } test { name: "field_assign_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint32_wrapper: 0u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_uint32_wrapper { } } } } } test { name: "field_assign_proto2_max" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint32_wrapper: 4294967295u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_uint32_wrapper { value: 4294967295} } } } } test { name: "field_assign_proto2_range" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint32_wrapper: 6111222333u}" eval_error { errors { message: "range error" } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_uint32_wrapper: 975u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_uint32_wrapper { value: 975 } } } } } test { name: "field_assign_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_uint32_wrapper: 0u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_uint32_wrapper { } } } } } test { name: "field_assign_proto3_max" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_uint32_wrapper: 4294967295u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_uint32_wrapper { value: 4294967295 } } } } } test { name: "field_assign_proto3_range" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_uint32_wrapper: 6111222333u}" eval_error { errors { message: "range error" } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint32_wrapper: 258u}.single_uint32_wrapper" value { uint64_value: 258 } } test { name: "field_read_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint32_wrapper: 0u}.single_uint32_wrapper" value { uint64_value: 0 } } test { name: "field_read_proto2_unset" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{}.single_uint32_wrapper" value { null_value: NULL_VALUE } } } section { name: "uint64" description: "Tests for uint64 conversion." test { name: "literal" expr: "google.protobuf.UInt64Value{value: 123u}" value { uint64_value: 123 } } test { name: "literal_no_field_access" expr: "google.protobuf.UInt64Value{value: 123u}.value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_zero" expr: "google.protobuf.UInt64Value{}" value { uint64_value: 0 } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.UInt64Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.UInt64Value] { value: 2000000 } } } } } value { uint64_value: 2000000 } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint64_wrapper: 432u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_uint64_wrapper { value: 432 } } } } } test { name: "field_assign_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint64_wrapper: 0u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_uint64_wrapper { } } } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_uint64_wrapper: 975u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_uint64_wrapper { value: 975 } } } } } test { name: "field_assign_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_uint64_wrapper: 0u}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_uint64_wrapper { } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint64_wrapper: 5123123123u}.single_uint64_wrapper" value { uint64_value: 5123123123 } } test { name: "field_read_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_uint64_wrapper: 0u}.single_uint64_wrapper" value { uint64_value: 0 } } test { name: "field_read_proto2_unset" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{}.single_uint64_wrapper" value { null_value: NULL_VALUE } } } section { name: "float" description: "Tests for float conversion." test { name: "literal" expr: "google.protobuf.FloatValue{value: -1.5e3}" value { double_value: -1500.0 } } test { name: "literal_not_double" description: "Use a number with no exact representation to make sure we actually narrow to a float." expr: "google.protobuf.FloatValue{value: 1.333} == 1.333" value { bool_value: false } } test { name: "literal_no_field_access" expr: "google.protobuf.FloatValue{value: 3.1416}.value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_zero" expr: "google.protobuf.FloatValue{}" value { double_value: 0.0 } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.FloatValue" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.FloatValue] { value: -1.25e6 } } } } } value { double_value: -1250000.0 } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_float_wrapper: 86.75}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_float_wrapper { value: 86.75 } } } } } test { name: "field_assign_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_float_wrapper: 0.0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_float_wrapper { } } } } } test { name: "field_assign_proto2_subnorm" description: "Subnormal single floats range from ~1e-38 to ~1e-45." container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_float_wrapper: 1e-40}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_float_wrapper { value: 1e-40 } } } } } test { name: "field_assign_proto2_round_to_zero" description: "Subnormal single floats range from ~1e-38 to ~1e-45." container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_float_wrapper: 1e-50}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_float_wrapper { } } } } } test { name: "field_assign_proto2_range" description: "Single float max is about 3.4e38" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_float_wrapper: 1.4e55}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_float_wrapper { value: inf } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_float_wrapper: -12.375}.single_float_wrapper" value { double_value: -12.375 } } test { name: "field_read_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_float_wrapper: 0.0}.single_float_wrapper" value { double_value: 0.0 } } test { name: "field_read_proto2_unset" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{}.single_float_wrapper" value { null_value: NULL_VALUE } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_float_wrapper: -9.75}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_float_wrapper { value: -9.75 } } } } } test { name: "field_assign_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_float_wrapper: 0.0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_float_wrapper { } } } } } test { name: "field_assign_proto2_subnorm" description: "Subnormal single floats range from ~1e-38 to ~1e-45." container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_float_wrapper: 1e-40}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_float_wrapper { value: 1e-40 } } } } } test { name: "field_assign_proto3_round_to_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_float_wrapper: -9.9e-100}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_float_wrapper { value: -0 } } } } } test { name: "field_assign_proto3_range" description: "Single float min is about -3.4e38" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_float_wrapper: -9.9e100}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_float_wrapper { value: -inf } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_float_wrapper: 64.25}.single_float_wrapper" value { double_value: 64.25 } } test { name: "field_read_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_float_wrapper: 0.0}.single_float_wrapper" value { double_value: 0.0 } } test { name: "field_read_proto3_unset" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{}.single_float_wrapper" value { null_value: NULL_VALUE } } } section { name: "double" description: "Tests for double conversion." test { name: "literal" expr: "google.protobuf.DoubleValue{value: -1.5e3}" value { double_value: -1500.0 } } test { name: "literal_no_field_access" expr: "google.protobuf.DoubleValue{value: 3.1416}.value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_zero" expr: "google.protobuf.DoubleValue{}" value { double_value: 0.0 } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.DoubleValue" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.DoubleValue] { value: -1.25e6 } } } } } value { double_value: -1250000.0 } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_double_wrapper: 86.75}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_double_wrapper { value: 86.75 } } } } } test { name: "field_assign_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_double_wrapper: 0.0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_double_wrapper { } } } } } test { name: "field_assign_proto2_range" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_double_wrapper: 1.4e55}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_double_wrapper { value: 1.4e55 } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_double_wrapper: -12.375}.single_double_wrapper" value { double_value: -12.375 } } test { name: "field_read_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_int32_wrapper: 0}.single_int32_wrapper" value { int64_value: 0 } } test { name: "field_read_proto2_unset" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{}.single_double_wrapper" value { null_value: NULL_VALUE } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_double_wrapper: -9.75}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_double_wrapper { value: -9.75 } } } } } test { name: "field_assign_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_double_wrapper: 0.0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_double_wrapper { } } } } } test { name: "field_assign_proto3_range" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_double_wrapper: -9.9e100}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_double_wrapper { value: -9.9e100 } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_double_wrapper: 64.25}.single_double_wrapper" value { double_value: 64.25 } } test { name: "field_read_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_double_wrapper: 0.0}.single_double_wrapper" value { double_value: 0.0 } } test { name: "field_read_proto3_unset" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{}.single_double_wrapper" value { null_value: NULL_VALUE } } } section { name: "bool" description: "Tests for bool conversion." test { name: "literal" expr: "google.protobuf.BoolValue{value: true}" value { bool_value: true } } test { name: "literal_no_field_access" expr: "google.protobuf.BoolValue{value: true}.value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_empty" expr: "google.protobuf.BoolValue{}" value { bool_value: false } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.BoolValue" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.BoolValue] { value: true } } } } } value { bool_value: true } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_bool_wrapper: true}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_bool_wrapper { value: true } } } } } test { name: "field_assign_proto2_false" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_bool_wrapper: false}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_bool_wrapper { } } } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_bool_wrapper: true}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_bool_wrapper { value: true } } } } } test { name: "field_assign_proto3_false" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_bool_wrapper: false}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_bool_wrapper { } } } } } } section { name: "string" description: "Tests for string conversion." test { name: "literal" expr: "google.protobuf.StringValue{value: 'foo'}" value { string_value: "foo" } } test { name: "literal_no_field_access" expr: "google.protobuf.StringValue{value: 'foo'}.value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_empty" expr: "google.protobuf.StringValue{}" value { string_value: "" } } test { name: "literal_unicode" expr: "google.protobuf.StringValue{value: 'flambé'}" value { string_value: "flambé" } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.StringValue" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.StringValue] { value: "bar" } } } } } value { string_value: "bar" } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_string_wrapper: 'baz'}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_string_wrapper { value: "baz" } } } } } test { name: "field_assign_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_string_wrapper: ''}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_string_wrapper { } } } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_string_wrapper: 'bletch'}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_string_wrapper { value: "bletch" } } } } } test { name: "field_assign_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_string_wrapper: ''}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_string_wrapper { } } } } } } section { name: "bytes" description: "Tests for bytes conversion." test { name: "literal" expr: "google.protobuf.BytesValue{value: b'foo\\123'}" value { bytes_value: "foo\123" } } test { name: "literal_no_field_access" expr: "google.protobuf.BytesValue{value: b'foo'}.value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_empty" expr: "google.protobuf.BytesValue{}" value { bytes_value: "" } } test { name: "literal_unicode" expr: "google.protobuf.BytesValue{value: b'flambé'}" value { bytes_value: "flambé" } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.BytesValue" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.BytesValue] { value: "bar" } } } } } value { bytes_value: "bar" } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_bytes_wrapper: b'baz'}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_bytes_wrapper { value: "baz" } } } } } test { name: "field_assign_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_bytes_wrapper: b''}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_bytes_wrapper { } } } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_bytes_wrapper: b'bletch'}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_bytes_wrapper { value: "bletch" } } } } } test { name: "field_assign_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_bytes_wrapper: b''}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_bytes_wrapper { } } } } } } section { name: "list" description: "Tests for list conversion." test { name: "literal" expr: "google.protobuf.ListValue{values: [3.0, 'foo', null]}" value { list_value { values { double_value: 3.0 } values { string_value: "foo" } values { null_value: NULL_VALUE } } } } test { name: "literal_no_field_access" expr: "google.protobuf.ListValue{values: [3.0, 'foo', null]}.values" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_empty" expr: "google.protobuf.ListValue{values: []}" value { list_value { } } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.ListValue" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.ListValue] { values { string_value: "bar" } values { list_value { values { string_value: "a" } values { string_value: "b" } } } } } } } } value { list_value { values { string_value: "bar" } values { list_value { values { string_value: "a" } values { string_value: "b" } } } } } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{list_value: [1.0, 'one']}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { list_value { values: { number_value: 1.0 } values: { string_value: "one" } } } } } } test { name: "field_assign_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{list_value: []}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { list_value { } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{list_value: [1.0, 'one']}.list_value" value { list_value { values { double_value: 1.0 } values { string_value: "one" } } } } test { name: "field_read_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{list_value: []}.list_value" value { list_value { } } } test { name: "field_read_proto2_unset" description: "Not a wrapper type, so doesn't convert to null." container: "cel.expr.conformance.proto2" expr: "TestAllTypes{}.list_value" value { list_value { } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{list_value: [1.0, 'one']}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { list_value { values: { number_value: 1.0 } values: { string_value: "one" } } } } } } test { name: "field_assign_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{list_value: []}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { list_value { } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{list_value: [1.0, 'one']}.list_value" value { list_value { values { double_value: 1.0 } values { string_value: "one" } } } } test { name: "field_read_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{list_value: []}.list_value" value { list_value { } } } test { name: "field_read_proto3_unset" description: "Not a wrapper type, so doesn't convert to null." container: "cel.expr.conformance.proto3" expr: "TestAllTypes{}.list_value" value { list_value { } } } } section { name: "struct" description: "Tests for struct conversion." test { name: "literal" expr: "google.protobuf.Struct{fields: {'uno': 1.0, 'dos': 2.0}}" value { map_value { entries { key { string_value: "uno" } value { double_value: 1.0 } } entries { key { string_value: "dos" } value { double_value: 2.0 } } } } } test { name: "literal_no_field_access" expr: "google.protobuf.Struct{fields: {'uno': 1.0, 'dos': 2.0}}.fields" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_empty" expr: "google.protobuf.Struct{fields: {}}" value { map_value { } } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Struct" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Struct] { fields { key: "first" value { string_value: "Abraham" } } fields { key: "last" value { string_value: "Lincoln" } } } } } } } value { map_value { entries { key { string_value: "first" } value { string_value: "Abraham" } } entries { key { string_value: "last" } value { string_value: "Lincoln" } } } } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_struct: {'un': 1.0, 'deux': 2.0}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_struct { fields { key: "un" value { number_value: 1.0 } } fields { key: "deux" value { number_value: 2.0 } } } } } } } test { name: "field_assign_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_struct: {}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_struct { } } } } } test { name: "field_assign_proto2_bad" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_struct: {1: 'uno'}}" disable_check: true eval_error { errors { message: "bad key type" } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_struct: {'one': 1.0}}.single_struct" value { map_value { entries { key { string_value: "one" } value { double_value: 1.0 } } } } } test { name: "field_read_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_struct: {}}.single_struct" value { map_value { } } } test { name: "field_read_proto2_unset" description: "Not a wrapper type, so doesn't convert to null." container: "cel.expr.conformance.proto2" expr: "TestAllTypes{}.single_struct" value { map_value { } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_struct: {'un': 1.0, 'deux': 2.0}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_struct { fields { key: "un" value { number_value: 1.0 } } fields { key: "deux" value { number_value: 2.0 } } } } } } } test { name: "field_assign_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_struct: {}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_struct { } } } } } test { name: "field_assign_proto3_bad" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_struct: {1: 'uno'}}" disable_check: true eval_error { errors { message: "bad key type" } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_struct: {'one': 1.0}}.single_struct" value { map_value { entries { key { string_value: "one" } value { double_value: 1.0 } } } } } test { name: "field_read_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_struct: {}}.single_struct" value { map_value { } } } test { name: "field_read_proto3_unset" description: "Not a wrapper type, so doesn't convert to null." container: "cel.expr.conformance.proto3" expr: "TestAllTypes{}.single_struct" value { map_value { } } } } section { name: "value_null" description: "Tests for null conversions." test { name: "literal" container: "google.protobuf" expr: "Value{null_value: NullValue.NULL_VALUE}" value { null_value: NULL_VALUE } } test { name: "literal_no_field_access" container: "google.protobuf" expr: "Value{null_value: NullValue.NULL_VALUE}.null_value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_unset" expr: "google.protobuf.Value{}" value { null_value: NULL_VALUE } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Value] { null_value: NULL_VALUE } } } } } value { null_value: NULL_VALUE } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: null}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { null_value: NULL_VALUE } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: null}.single_value" value { null_value: NULL_VALUE } } test { name: "field_read_proto2_unset" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{}.single_value" value { null_value: NULL_VALUE } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: null}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { null_value: NULL_VALUE } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: null}.single_value" value { null_value: NULL_VALUE } } test { name: "field_read_proto3_unset" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{}.single_value" value { null_value: NULL_VALUE } } } section { name: "value_number" description: "Tests for number conversions in Value." test { name: "literal" expr: "google.protobuf.Value{number_value: 12.5}" value { double_value: 12.5 } } test { name: "literal_no_field_access" expr: "google.protobuf.Value{number_value: 12.5}.number_value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_zero" expr: "google.protobuf.Value{number_value: 0.0}" value { double_value: 0.0 } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Value] { number_value: -26.375 } } } } } value { double_value: -26.375 } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: 7e23}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { number_value: 7e23 } } } } } test { name: "field_assign_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: 0.0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { number_value: 0.0 } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: 7e23}.single_value" value { double_value: 7e23 } } test { name: "field_read_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: 0.0}.single_value" value { double_value: 0.0 } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: 7e23}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { number_value: 7e23 } } } } } test { name: "field_assign_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: 0.0}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { number_value: 0.0 } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: 7e23}.single_value" value { double_value: 7e23 } } test { name: "field_read_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: 0.0}.single_value" value { double_value: 0.0 } } } section { name: "value_string" description: "Tests for string conversions in Value." test { name: "literal" expr: "google.protobuf.Value{string_value: 'foo'}" value { string_value: "foo" } } test { name: "literal_no_field_access" expr: "google.protobuf.Value{string_value: 'foo'}.string_value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_empty" expr: "google.protobuf.Value{string_value: ''}" value { string_value: "" } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Value] { string_value: "bar" } } } } } value { string_value: "bar" } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: 'baz'}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { string_value: "baz" } } } } } test { name: "field_assign_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: ''}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { string_value: "" } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: 'bletch'}.single_value" value { string_value: "bletch" } } test { name: "field_read_proto2_zero" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: ''}.single_value" value { string_value: "" } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: 'baz'}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { string_value: "baz" } } } } } test { name: "field_assign_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: ''}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { string_value: "" } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: 'bletch'}.single_value" value { string_value: "bletch" } } test { name: "field_read_proto3_zero" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: ''}.single_value" value { string_value: "" } } } section { name: "value_bool" description: "Tests for boolean conversions in Value." test { name: "literal" expr: "google.protobuf.Value{bool_value: true}" value { bool_value: true } } test { name: "literal_no_field_access" expr: "google.protobuf.Value{bool_value: true}.bool_value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_false" expr: "google.protobuf.Value{bool_value: false}" value { bool_value: false } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Value] { bool_value: true } } } } } value { bool_value: true } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: true}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { bool_value: true } } } } } test { name: "field_assign_proto2_false" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: false}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { bool_value: false } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: true}.single_value" value { bool_value: true } } test { name: "field_read_proto2_false" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: false}.single_value" value { bool_value: false } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: true}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { bool_value: true } } } } } test { name: "field_assign_proto3_false" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: false}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { bool_value: false } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: true}.single_value" value { bool_value: true } } test { name: "field_read_proto3_false" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: false}.single_value" value { bool_value: false } } } section { name: "value_struct" description: "Tests for struct conversions in Value." test { name: "literal" expr: "google.protobuf.Value{struct_value: {'a': 1.0, 'b': 'two'}}" value { map_value { entries { key { string_value: "a" } value { double_value: 1.0 } } entries { key { string_value: "b" } value { string_value: "two" } } } } } test { name: "literal_no_field_access" expr: "google.protobuf.Value{struct_value: {'a': 1.0, 'b': 'two'}}.struct_value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_empty" expr: "google.protobuf.Value{struct_value: {}}" value { map_value: { } } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Value] { struct_value { fields { key: "x" value { null_value: NULL_VALUE } } fields { key: "y" value { bool_value: false } } } } } } } } value { map_value { entries { key { string_value: "x" } value { null_value: NULL_VALUE } } entries { key { string_value: "y" } value { bool_value: false } } } } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: {'un': 1.0, 'deux': 2.0}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { struct_value { fields { key: "un" value { number_value: 1.0 } } fields { key: "deux" value { number_value: 2.0 } } } } } } } } test { name: "field_assign_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: {}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { struct_value: { } } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: {'i': true}}.single_value" value { map_value { entries { key { string_value: "i" } value { bool_value: true } } } } } test { name: "field_read_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: {}}.single_value" value { map_value: { } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: {'un': 1.0, 'deux': 2.0}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { struct_value { fields { key: "un" value { number_value: 1.0 } } fields { key: "deux" value { number_value: 2.0 } } } } } } } } test { name: "field_assign_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: {}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { struct_value: { } } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: {'i': true}}.single_value" value { map_value { entries { key { string_value: "i" } value { bool_value: true } } } } } test { name: "field_read_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: {}}.single_value" value { map_value: { } } } } section { name: "value_list" description: "Tests for list conversions in Value." test { name: "literal" expr: "google.protobuf.Value{list_value: ['a', 3.0]}" value { list_value { values { string_value: "a" } values { double_value: 3.0 } } } } test { name: "literal_no_field_access" expr: "google.protobuf.Value{list_value: []}.list_value" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_empty" expr: "google.protobuf.Value{list_value: []}" value { list_value: { } } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Value" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Value] { list_value { values { number_value: 1.0 } values { bool_value: true } values { string_value: "hi" } } } } } } } value { list_value { values { double_value: 1.0 } values { bool_value: true } values { string_value: "hi" } } } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: ['un', 1.0]}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { list_value { values { string_value: "un" } values { number_value: 1.0 } } } } } } } test { name: "field_assign_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: []}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_value { list_value: { } } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: ['i', true]}.single_value" value { list_value { values { string_value: "i" } values { bool_value: true } } } } test { name: "field_read_proto2_empty" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_value: []}.single_value" value { list_value: { } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: ['un', 1.0]}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { list_value { values { string_value: "un" } values { number_value: 1.0 } } } } } } } test { name: "field_assign_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: []}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_value { list_value: { } } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: ['i', true]}.single_value" value { list_value { values { string_value: "i" } values { bool_value: true } } } } test { name: "field_read_proto3_empty" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_value: []}.single_value" value { list_value: { } } } } section { name: "any" description: "Tests for Any conversion." test { name: "literal" expr: "google.protobuf.Any{type_url: 'type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes', value: b'\\x08\\x96\\x01'}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_int32: 150 } } } } test { name: "literal_no_field_access" expr: "google.protobuf.Any{type_url: 'type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes', value: b'\\x08\\x96\\x01'}.type_url" disable_check: true eval_error { errors { message: "no_matching_overload" } } } test { name: "literal_empty" expr: "google.protobuf.Any{}" eval_error { errors { message: "conversion" } } } test { name: "var" expr: "x" type_env { name: "x" ident { type { message_type: "google.protobuf.Any" } } } bindings { key: "x" value { value { object_value { [type.googleapis.com/google.protobuf.Any] { type_url: "type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes" value: "\x08\x96\x01" } } } } } value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_int32: 150 } } } } test { name: "field_assign_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_any: TestAllTypes{single_int32: 150}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_any { type_url: "type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes" value: "\x08\x96\x01" } } } } } test { name: "field_read_proto2" container: "cel.expr.conformance.proto2" expr: "TestAllTypes{single_any: TestAllTypes{single_int32: 150}}.single_any" value { object_value { [type.googleapis.com/cel.expr.conformance.proto2.TestAllTypes] { single_int32: 150 } } } } test { name: "field_assign_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_any: TestAllTypes{single_int32: 150}}" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_any { type_url: "type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes" value: "\x08\x96\x01" } } } } } test { name: "field_read_proto3" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_any: TestAllTypes{single_int32: 150}}.single_any" value { object_value { [type.googleapis.com/cel.expr.conformance.proto3.TestAllTypes] { single_int32: 150 } } } } } section { name: "complex" description: "Tests combining various dynamic conversions." test { name: "any_list_map" container: "cel.expr.conformance.proto3" expr: "TestAllTypes{single_any: [{'almost': 'done'}]}.single_any" value { list_value { values { map_value { entries { key { string_value: "almost" } value { string_value: "done" } } } } } } } }