@@ -18,6 +18,7 @@ ALL_TESTS = [
1818 "@com_google_cel_spec//tests/simple:testdata/logic.textproto" ,
1919 "@com_google_cel_spec//tests/simple:testdata/macros.textproto" ,
2020 "@com_google_cel_spec//tests/simple:testdata/namespace.textproto" ,
21+ "@com_google_cel_spec//tests/simple:testdata/parse.textproto" ,
2122 "@com_google_cel_spec//tests/simple:testdata/plumbing.textproto" ,
2223 "@com_google_cel_spec//tests/simple:testdata/proto2.textproto" ,
2324 "@com_google_cel_spec//tests/simple:testdata/proto3.textproto" ,
@@ -26,27 +27,6 @@ ALL_TESTS = [
2627 "@com_google_cel_spec//tests/simple:testdata/unknowns.textproto" ,
2728]
2829
29- DASHBOARD_TESTS = [
30- "@com_google_cel_spec//tests/simple:testdata/basic.textproto" ,
31- "@com_google_cel_spec//tests/simple:testdata/comparisons.textproto" ,
32- "@com_google_cel_spec//tests/simple:testdata/conversions.textproto" ,
33- "@com_google_cel_spec//tests/simple:testdata/dynamic.textproto" ,
34- "@com_google_cel_spec//tests/simple:testdata/enums.textproto" ,
35- "@com_google_cel_spec//tests/simple:testdata/fields.textproto" ,
36- "@com_google_cel_spec//tests/simple:testdata/fp_math.textproto" ,
37- "@com_google_cel_spec//tests/simple:testdata/integer_math.textproto" ,
38- "@com_google_cel_spec//tests/simple:testdata/lists.textproto" ,
39- "@com_google_cel_spec//tests/simple:testdata/logic.textproto" ,
40- "@com_google_cel_spec//tests/simple:testdata/macros.textproto" ,
41- "@com_google_cel_spec//tests/simple:testdata/namespace.textproto" ,
42- "@com_google_cel_spec//tests/simple:testdata/proto2.textproto" ,
43- "@com_google_cel_spec//tests/simple:testdata/proto3.textproto" ,
44- "@com_google_cel_spec//tests/simple:testdata/plumbing.textproto" ,
45- "@com_google_cel_spec//tests/simple:testdata/string.textproto" ,
46- "@com_google_cel_spec//tests/simple:testdata/timestamps.textproto" ,
47- "@com_google_cel_spec//tests/simple:testdata/unknowns.textproto" ,
48- ]
49-
5030cc_binary (
5131 name = "server" ,
5232 testonly = 1 ,
@@ -81,71 +61,54 @@ cc_binary(
8161 "--server=\" $(location :server) " + arg + "\" " ,
8262 "--skip_check" ,
8363 "--pipe" ,
84- # TODO(issues/93): Inconsistent Duration.getMilliseconds() behavior.
64+
65+ # Tests which require spec changes.
66+ # TODO(issues/93): Deprecate Duration.getMilliseconds.
8567 "--skip_test=timestamps/duration_converters/get_milliseconds" ,
86- # TODO(issues/94): Missing timestamp conversion functions (type / string)
87- "--skip_test=timestamps/timestamp_conversions/toType_timestamp,toString_timestamp" ,
88- "--skip_test=timestamps/duration_conversions/toType_duration,toString_duration" ,
8968 # TODO(issues/81): Conversion functions for int(), uint() which can be
9069 # uncommented when the spec changes to truncation rather than rounding.
9170 "--skip_test=conversions/int/double_nearest,double_nearest_neg,double_half_away_neg,double_half_away_pos" ,
9271 "--skip_test=conversions/uint/double_nearest,double_nearest_int,double_half_away" ,
93- # TODO(issues/96): Well-known type conversion support.
94- "--skip_test=proto2/literal_wellknown" ,
95- "--skip_test=proto3/literal_wellknown" ,
96- "--skip_test=proto2/empty_field/wkt" ,
97- "--skip_test=proto3/empty_field/wkt" ,
98- # Requires container support
99- "--skip_test=namespace/namespace/self_eval_container_lookup_unchecked" ,
72+ # TODO(issues/110): Tune parse limits to mirror those for proto deserialization and C++ safety limits.
73+ "--skip_test=parse/nest/list_index,message_literal,funcall,list_literal,map_literal;repeat/conditional,add_sub,mul_div,select,index,map_literal,message_literal" ,
74+
75+ # Broken test cases which should be supported.
76+ # TODO(issues/111): Byte literal decoding of invalid UTF-8 results in incorrect bytes output.
10077 "--skip_test=basic/self_eval_nonzeroish/self_eval_bytes_invalid_utf8" ,
101- # Requires heteregenous equality spec clarification
102- "--skip_test=comparisons/in_list_literal/elem_in_mixed_type_list_error" ,
103- "--skip_test=comparisons/in_map_literal/key_in_mixed_key_type_map_error" ,
104- "--skip_test=fields/in/singleton" ,
105- # Requires qualified bindings error message relaxation
106- "--skip_test=fields/qualified_identifier_resolution/qualified_identifier_resolution_unchecked" ,
107- "--skip_test=string/size/one_unicode,unicode" ,
10878 "--skip_test=string/bytes_concat/left_unit" ,
109- # TODO(issues/85): The exists one macro should not short-circuit false.
110- "--skip_test=macros/exists_one/list_no_shortcircuit" ,
111- # TODO(issues/86): Map macro may produce incorrect results on error.
112- "--skip_test=macros/map/list_error" ,
113- # TODO(issues/97): Parse-only qualified variable lookup "x.y" wtih binding "x.y" or "y" within container "x" fails
114- "--skip_test=namespace/qualified/self_eval_qualified_lookup" ,
115- "--skip_test=namespace/namespace/self_eval_container_lookup" ,
116- "--skip_test=fields/qualified_identifier_resolution/qualified_ident" ,
117- "--skip_test=fields/qualified_identifier_resolution/map_field_select" ,
118- "--skip_test=fields/qualified_identifier_resolution/ident_with_longest_prefix_check" ,
119- # New conformance tests awaiting synchronization.
79+ # TODO(issues/112): Unbound functions result in empty eval response.
12080 "--skip_test=basic/functions/unbound" ,
12181 "--skip_test=basic/functions/unbound_is_runtime_error" ,
82+ # TODO(issues/113): Aggregate values must logically AND element equality results.
12283 "--skip_test=comparisons/eq_literal/not_eq_list_false_vs_types" ,
12384 "--skip_test=comparisons/eq_literal/not_eq_map_false_vs_types" ,
124- "--skip_test=dynamic/int32" ,
125- "--skip_test=dynamic/int64" ,
126- "--skip_test=dynamic/uint32" ,
127- "--skip_test=dynamic/uint64" ,
128- "--skip_test=dynamic/float" ,
129- "--skip_test=dynamic/double" ,
130- "--skip_test=dynamic/string" ,
131- "--skip_test=dynamic/bytes" ,
132- "--skip_test=dynamic/bool" ,
133- "--skip_test=dynamic/list" ,
134- "--skip_test=dynamic/struct" ,
135- "--skip_test=dynamic/value_null" ,
136- "--skip_test=dynamic/value_number" ,
137- "--skip_test=dynamic/value_string" ,
138- "--skip_test=dynamic/value_bool" ,
139- "--skip_test=dynamic/value_struct" ,
140- "--skip_test=dynamic/value_list" ,
141- "--skip_test=dynamic/any" ,
142- "--skip_test=dynamic/complex" ,
143- "--skip_test=enums/legacy_proto2" ,
144- "--skip_test=enums/legacy_proto3" ,
85+ # TODO(issues/114): Ensure the 'in' operator is a logical OR of element equality results.
86+ "--skip_test=comparisons/in_list_literal/elem_in_mixed_type_list_error" ,
87+ "--skip_test=comparisons/in_map_literal/key_in_mixed_key_type_map_error" ,
88+ # TODO(issues/115): The 'in' operator fails with maps containing boolean keys.
89+ "--skip_test=fields/in/singleton" ,
90+ # TODO(issues/97): Parse-only qualified variable lookup "x.y" wtih binding "x.y" or "y" within container "x" fails
91+ "--skip_test=fields/qualified_identifier_resolution/qualified_ident,map_field_select,ident_with_longest_prefix_check,qualified_identifier_resolution_unchecked" ,
92+ "--skip_test=namespace/qualified/self_eval_qualified_lookup" ,
93+ "--skip_test=namespace/namespace/self_eval_container_lookup,self_eval_container_lookup_unchecked" ,
94+ # TODO(issues/116): Debug why dynamic/list/var fails to JSON parse correctly.
95+ "--skip_test=dynamic/list/var" ,
96+ # TODO(issues/109): Ensure that unset wrapper fields return 'null' rather than the default value of the wrapper.
97+ "--skip_test=dynamic/int32/field_read_proto2_unset,field_read_proto3_unset;uint32/field_read_proto2_unset;uint64/field_read_proto2_unset;float/field_read_proto2_unset,field_read_proto3_unset;double/field_read_proto2_unset,field_read_proto3_unset" ,
98+ "--skip_test=proto2/empty_field/wkt" ,
99+ "--skip_test=proto3/empty_field/wkt" ,
100+ # TODO(issues/117): Integer overflow on enum assignments should error.
101+ "--skip_test=enums/legacy_proto2/select_big,select_neg,assign_standalone_int_too_big,assign_standalone_int_too_neg" ,
102+ "--skip_test=enums/legacy_proto3/assign_standalone_int_too_big,assign_standalone_int_too_neg" ,
103+ # TODO(issues/118): Duration and timestamp range errors should result in evaluation errors.
104+ "--skip_test=timestamps/timestamp_range" ,
105+
106+ # Future features for CEL 1.0
107+ # TODO(issues/119): Strong typing support for enums, specified but not implemented.
145108 "--skip_test=enums/strong_proto2" ,
146109 "--skip_test=enums/strong_proto3" ,
147- "--skip_test=timestamps/timestamp_range" ,
148- "--skip_test=timestamps/duration_range " ,
110+ # Bad tests, temporarily disable.
111+ "--skip_test=dynamic/float/field_assign_proto2_range,field_assign_proto3_range " ,
149112 ] + ["$(location " + test + ")" for test in ALL_TESTS ],
150113 data = [
151114 ":server" ,
@@ -165,12 +128,17 @@ sh_test(
165128 "$(location @com_google_cel_spec//tests/simple:simple_test)" ,
166129 "--server=$(location :server)" ,
167130 "--skip_check" ,
131+ # TODO(issues/116): Debug why dynamic/list/var fails to JSON parse correctly.
132+ "--skip_test=dynamic/list/var" ,
133+ # TODO(issues/119): Strong typing support for enums, specified but not implemented.
134+ "--skip_test=enums/strong_proto2" ,
135+ "--skip_test=enums/strong_proto3" ,
168136 "--pipe" ,
169- ] + ["$(location " + test + ")" for test in DASHBOARD_TESTS ],
137+ ] + ["$(location " + test + ")" for test in ALL_TESTS ],
170138 data = [
171139 ":server" ,
172140 "@com_google_cel_spec//tests/simple:simple_test" ,
173- ] + DASHBOARD_TESTS ,
141+ ] + ALL_TESTS ,
174142 visibility = [
175143 "//:__subpackages__" ,
176144 "//third_party/cel:__pkg__" ,
0 commit comments