11load ("@rules_java//java:defs.bzl" , "java_library" )
2- load ("//conformance/src/test/java/dev/cel/conformance:conformance_test.bzl" , "MODE" , "conformance_test" )
2+ load ("//conformance/src/test/java/dev/cel/conformance:conformance_test.bzl" , "MODE" , "RUNTIME" , " conformance_test" )
33
44package (default_applicable_licenses = [
55 "//:license" ,
@@ -26,17 +26,33 @@ java_library(
2626 "//common/ast:cel_block" ,
2727 "//common/types" ,
2828 "//common/types:cel_proto_types" ,
29+ "//common/types:message_type_provider" ,
30+ "//common/types:type_providers" ,
31+ "//common/values:cel_value_provider" ,
32+ "//common/values:proto_message_lite_value_provider" ,
2933 "//compiler" ,
3034 "//compiler:compiler_builder" ,
3135 "//extensions" ,
3236 "//extensions:bindings" ,
37+ "//extensions:comprehensions_runtime_library" ,
38+ "//extensions:encoders_runtime_library" ,
39+ "//extensions:lists_runtime_library" ,
40+ "//extensions:math_runtime_library" ,
3341 "//extensions:optional_library" ,
42+ "//extensions:sets_runtime_library" ,
43+ "//extensions:strings_runtime_library" ,
3444 "//parser:macro" ,
3545 "//parser:parser_builder" ,
3646 "//parser:parser_factory" ,
3747 "//runtime" ,
48+ "//runtime:lite_runtime" ,
49+ "//runtime:lite_runtime_factory" ,
50+ "//runtime:program" ,
3851 "//runtime:runtime_planner_impl" ,
52+ "//runtime:standard_functions" ,
3953 "//testing:expr_value_utils" ,
54+ "//testing/protos:test_all_types_cel_java_proto2" ,
55+ "//testing/protos:test_all_types_cel_java_proto3" ,
4056 "@cel_spec//proto/cel/expr:expr_java_proto" ,
4157 "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto" ,
4258 "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto" ,
@@ -63,10 +79,15 @@ java_library(
6379 tags = ["conformance_maven" ],
6480 deps = MAVEN_JAR_DEPS + [
6581 "//:java_truth" ,
82+ "//common/values:proto_message_lite_value_provider" ,
6683 "//compiler:compiler_builder" ,
6784 "//parser:parser_factory" ,
85+ "//runtime:lite_runtime" ,
86+ "//runtime:lite_runtime_factory" ,
6887 "//runtime:runtime_planner_impl" ,
6988 "//testing:expr_value_utils" ,
89+ "//testing/protos:test_all_types_cel_java_proto2" ,
90+ "//testing/protos:test_all_types_cel_java_proto3" ,
7091 "@cel_spec//proto/cel/expr:expr_java_proto" ,
7192 "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto" ,
7293 "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto" ,
@@ -168,6 +189,76 @@ _TESTS_TO_SKIP_PLANNER = [
168189 "enums/strong_proto3" ,
169190]
170191
192+ _TESTS_TO_SKIP_LITE = _TESTS_TO_SKIP_PLANNER + [
193+ # Optionals are not supported in CelLiteRuntime.
194+ "optionals" ,
195+ "block_ext/basic/optional_list,optional_map,optional_map_chained,optional_message" ,
196+
197+ # Proto2 extensions are not supported in CelLiteRuntime.
198+ "proto2_ext" ,
199+ "proto2/extensions_has" ,
200+ "proto2/extensions_get" ,
201+
202+ # Custom proto2 default values on unset fields require SelectOptimization in CelLiteRuntime.
203+ "proto2/empty_field/scalar_with_default" ,
204+
205+ # TODO: Proto equality after dyn() unwrapping is not yet supported in
206+ # CelLiteRuntime.
207+ "comparisons/eq_literal/not_eq_dyn_proto2_msg_null,not_eq_dyn_proto3_msg_null" ,
208+ "comparisons/eq_wrapper/eq_proto_different_types" ,
209+ "comparisons/ne_literal/ne_proto_different_types" ,
210+
211+ # TODO: google.protobuf.Any unpacking is not yet supported in CelLiteRuntime.
212+ "dynamic/any/literal_empty,var" ,
213+
214+ # TODO: Message creation with prepopulated fields is not yet supported in
215+ # CelLiteRuntime.
216+ "comparisons/eq_wrapper/eq_bool,eq_bytes,eq_double,eq_float,eq_int32,eq_int64,eq_string,eq_uint32,eq_uint64" ,
217+ "comparisons/eq_wrapper/eq_proto2,eq_proto3,eq_proto2_missing_fields_neq,eq_proto3_missing_fields_neq,eq_proto_nan_equal" ,
218+ "comparisons/eq_wrapper/eq_proto2_any_unpack_equal,eq_proto2_any_unpack_not_equal,eq_proto2_any_unpack_bytewise_fallback_not_equal,eq_proto2_any_unpack_bytewise_fallback_equal,eq_proto3_any_unpack_equal,eq_proto3_any_unpack_not_equal,eq_proto3_any_unpack_bytewise_fallback_not_equal,eq_proto3_any_unpack_bytewise_fallback_equal" ,
219+ "comparisons/ne_literal/ne_proto2,ne_proto3,ne_proto2_missing_fields_neq,ne_proto3_missing_fields_neq,ne_proto_nan_not_equal" ,
220+ "comparisons/ne_literal/ne_proto2_any_unpack,ne_proto2_any_unpack_bytewise_fallback,ne_proto3_any_unpack,ne_proto3_any_unpack_bytewise_fallback" ,
221+ "dynamic/int32/literal,literal_no_field_access,field_assign_proto2,field_assign_proto2_zero,field_assign_proto2_max,field_assign_proto2_min,field_assign_proto2_range,field_read_proto2,field_read_proto2_zero,field_assign_proto3,field_assign_proto3_zero,field_assign_proto3_max,field_assign_proto3_min,field_assign_proto3_range,field_read_proto3,field_read_proto3_zero" ,
222+ "dynamic/int64/literal,literal_no_field_access,field_assign_proto2,field_assign_proto2_zero,field_assign_proto3,field_assign_proto3_zero" ,
223+ "dynamic/uint32/literal,literal_no_field_access,field_assign_proto2,field_assign_proto2_zero,field_assign_proto2_max,field_assign_proto2_range,field_assign_proto3,field_assign_proto3_zero,field_assign_proto3_max,field_assign_proto3_range,field_read_proto2,field_read_proto2_zero" ,
224+ "dynamic/uint64/literal,literal_no_field_access,field_assign_proto2,field_assign_proto2_zero,field_assign_proto3,field_assign_proto3_zero,field_read_proto2,field_read_proto2_zero" ,
225+ "dynamic/float/literal,literal_not_double,literal_no_field_access,field_assign_proto2,field_assign_proto2_zero,field_assign_proto2_subnorm,field_assign_proto2_round_to_zero,field_assign_proto2_range,field_read_proto2,field_read_proto2_zero,field_assign_proto3,field_assign_proto3_zero,field_assign_proto3_subnorm,field_assign_proto3_round_to_zero,field_assign_proto3_range,field_read_proto3,field_read_proto3_zero" ,
226+ "dynamic/double/literal,literal_no_field_access,field_assign_proto2,field_assign_proto2_zero,field_assign_proto2_range,field_read_proto2,field_read_proto2_zero,field_assign_proto3,field_assign_proto3_zero,field_assign_proto3_range,field_read_proto3,field_read_proto3_zero" ,
227+ "dynamic/bool/literal,literal_no_field_access,field_assign_proto2,field_assign_proto2_false,field_assign_proto3,field_assign_proto3_false" ,
228+ "dynamic/string/literal,literal_no_field_access,literal_unicode,field_assign_proto2,field_assign_proto2_empty,field_assign_proto3,field_assign_proto3_empty" ,
229+ "dynamic/bytes/literal,literal_no_field_access,literal_unicode,field_assign_proto2,field_assign_proto2_empty,field_assign_proto3,field_assign_proto3_empty" ,
230+ "dynamic/list/literal,literal_no_field_access,literal_empty,field_assign_proto2,field_assign_proto2_empty,field_read_proto2,field_read_proto2_empty,field_assign_proto3,field_assign_proto3_empty,field_read_proto3,field_read_proto3_empty" ,
231+ "dynamic/struct/literal,literal_no_field_access,literal_empty,field_assign_proto2,field_assign_proto2_empty,field_assign_proto2_bad,field_read_proto2,field_read_proto2_empty,field_assign_proto3,field_assign_proto3_empty,field_assign_proto3_bad,field_read_proto3,field_read_proto3_empty" ,
232+ "dynamic/value_null/literal,literal_no_field_access,field_assign_proto2,field_read_proto2,field_assign_proto3,field_read_proto3" ,
233+ "dynamic/value_number/literal,literal_no_field_access,literal_zero,field_assign_proto2,field_assign_proto2_zero,field_read_proto2,field_read_proto2_zero,field_assign_proto3,field_assign_proto3_zero,field_read_proto3,field_read_proto3_zero" ,
234+ "dynamic/value_string/literal,literal_no_field_access,literal_empty,field_assign_proto2,field_assign_proto2_empty,field_read_proto2,field_read_proto2_zero,field_assign_proto3,field_assign_proto3_empty,field_read_proto3,field_read_proto3_zero" ,
235+ "dynamic/value_bool/literal,literal_no_field_access,literal_false,field_assign_proto2,field_assign_proto2_false,field_read_proto2,field_read_proto2_false,field_assign_proto3,field_assign_proto3_false,field_read_proto3,field_read_proto3_false" ,
236+ "dynamic/value_struct/literal,literal_no_field_access,literal_empty,field_assign_proto2,field_assign_proto2_empty,field_read_proto2,field_read_proto2_empty,field_assign_proto3,field_assign_proto3_empty,field_read_proto3,field_read_proto3_empty" ,
237+ "dynamic/value_list/literal,literal_no_field_access,literal_empty,field_assign_proto2,field_assign_proto2_empty,field_read_proto2,field_read_proto2_empty,field_assign_proto3,field_assign_proto3_empty,field_read_proto3,field_read_proto3_empty" ,
238+ "dynamic/any/literal,literal_no_field_access,field_assign_proto2,field_read_proto2,field_assign_proto3,field_read_proto3" ,
239+ "dynamic/complex" ,
240+ "enums/legacy_proto2/assign_standalone_name,assign_standalone_int,assign_standalone_int_too_big,assign_standalone_int_too_neg,assign_repeated_enum,list_enum_as_list_int,enum_as_int" ,
241+ "enums/legacy_proto3/assign_standalone_name,assign_standalone_int,assign_standalone_int_big,assign_standalone_int_neg,assign_standalone_int_too_big,assign_standalone_int_too_neg,assign_repeated_enum,list_enum_as_list_int,enum_as_int" ,
242+ "parse/nest/message_literal" ,
243+ "parse/repeat/message_literal" ,
244+ "parse/whitespace" ,
245+ "parse/comments" ,
246+ "parse/struct_field_names" ,
247+ "proto2/literal_singular" ,
248+ "proto2/literal_wellknown" ,
249+ "proto2/set_null" ,
250+ "proto2/quoted_fields" ,
251+ "proto2/has/repeated_none_explicit,repeated_one,repeated_many,map_none_explicit,map_one_default,map_one,map_many,required,optional_set_no_default,optional_set_with_default,optional_set_to_default,optional_message_set,optional_enum_set,optional_enum_set_zero,oneof_other_set,oneof_set,oneof_set_default" ,
252+ "proto3/literal_singular" ,
253+ "proto3/literal_wellknown" ,
254+ "proto3/set_null" ,
255+ "proto3/quoted_fields" ,
256+ "proto3/has/repeated_none_explicit,repeated_one,repeated_many,map_none_explicit,map_one_default,map_one,map_many,single_set,single_set_to_default,single_message_set,single_message_set_to_default,single_enum_set,single_enum_set_zero,oneof_other_set,oneof_set,oneof_set_default" ,
257+ "type_deductions/complex_initializers/struct" ,
258+ "type_deductions/field_access/int_field" ,
259+ "wrappers" ,
260+ ]
261+
171262conformance_test (
172263 name = "conformance" ,
173264 data = _ALL_TESTS ,
@@ -190,6 +281,13 @@ conformance_test(
190281conformance_test (
191282 name = "conformance_planner" ,
192283 data = _ALL_TESTS ,
284+ runtime = RUNTIME .PLANNER ,
193285 skip_tests = _TESTS_TO_SKIP_PLANNER ,
194- use_planner = True ,
286+ )
287+
288+ conformance_test (
289+ name = "conformance_lite" ,
290+ data = _ALL_TESTS ,
291+ runtime = RUNTIME .LITE ,
292+ skip_tests = _TESTS_TO_SKIP_LITE ,
195293)
0 commit comments