From 3ba030b186daddb3895876be0625be9a755af239 Mon Sep 17 00:00:00 2001 From: Sean Huh Date: Tue, 27 Oct 2026 04:59:11 +0000 Subject: [PATCH 1/3] Re-enable Bazel repository cache and key disk cache per commit in CI - Re-enable setup-bazel repository-cache across jobs. - Key Bazel disk cache by commit SHA with a prefix restore-key fallback so main pushes after Java-only changes still save fresh disk caches instead of skipping on BUILD.bazel hash hits. - Move job-start marker after disk cache restore and prune unused entries before saving on main. --- .github/workflows/workflow.yml | 66 +++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 16 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 2bbab746e..a67bbfcf6 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -29,15 +29,24 @@ jobs: uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 with: persist-credentials: false - - name: Mark job start - run: touch "$RUNNER_TEMP/job-start" - name: Setup Bazel uses: bazel-contrib/setup-bazel@083175551ceeceebc757ebee2127fde78840ca77 # 0.18.0 with: - # Store build cache per workflow. - disk-cache: ${{ github.workflow }}-${{ github.job }} + # Share repository cache between workflows. + repository-cache: true + bazelrc: | + build --disk_cache=/home/runner/.cache/bazel-disk # Prevent PRs from polluting cache cache-save: ${{ github.event_name != 'pull_request' }} + - name: Restore Bazel disk cache + uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 + with: + path: ~/.cache/bazel-disk + key: bazel-disk-${{ runner.os }}-${{ github.job }}-${{ github.sha }} + restore-keys: | + bazel-disk-${{ runner.os }}-${{ github.job }}- + - name: Mark job start + run: touch "$RUNNER_TEMP/job-start" - name: Bazel Output Version run: bazelisk --version - name: Java 8 Build @@ -50,9 +59,17 @@ jobs: # Bazel bumps mtimes on use; drop stale entries so the saved cache doesn't grow unbounded. if: github.event_name != 'pull_request' run: | - du -sh ~/.cache/bazel-disk - find ~/.cache/bazel-disk -type f ! -newer "$RUNNER_TEMP/job-start" -delete - du -sh ~/.cache/bazel-disk + if [ -d ~/.cache/bazel-disk ]; then + du -sh ~/.cache/bazel-disk + find ~/.cache/bazel-disk -type f ! -newer "$RUNNER_TEMP/job-start" -delete + du -sh ~/.cache/bazel-disk + fi + - name: Save Bazel disk cache + if: github.event_name != 'pull_request' + uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 + with: + path: ~/.cache/bazel-disk + key: bazel-disk-${{ runner.os }}-${{ github.job }}-${{ github.sha }} - run: echo "🍏 This job's status is ${JOB_STATUS}." env: JOB_STATUS: ${{ job.status }} @@ -68,15 +85,24 @@ jobs: uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 with: persist-credentials: false - - name: Mark job start - run: touch "$RUNNER_TEMP/job-start" - name: Setup Bazel uses: bazel-contrib/setup-bazel@083175551ceeceebc757ebee2127fde78840ca77 # 0.18.0 with: - # Store build cache per workflow. - disk-cache: ${{ github.workflow }}-${{ github.job }} + # Share repository cache between workflows. + repository-cache: true + bazelrc: | + build --disk_cache=/home/runner/.cache/bazel-disk # Prevent PRs from polluting cache cache-save: ${{ github.event_name != 'pull_request' }} + - name: Restore Bazel disk cache + uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 + with: + path: ~/.cache/bazel-disk + key: bazel-disk-${{ runner.os }}-${{ github.job }}-${{ github.sha }} + restore-keys: | + bazel-disk-${{ runner.os }}-${{ github.job }}- + - name: Mark job start + run: touch "$RUNNER_TEMP/job-start" - name: Bazel Output Version run: bazelisk --version - name: Bazel Test @@ -87,9 +113,17 @@ jobs: # Bazel bumps mtimes on use; drop stale entries so the saved cache doesn't grow unbounded. if: github.event_name != 'pull_request' run: | - du -sh ~/.cache/bazel-disk - find ~/.cache/bazel-disk -type f ! -newer "$RUNNER_TEMP/job-start" -delete - du -sh ~/.cache/bazel-disk + if [ -d ~/.cache/bazel-disk ]; then + du -sh ~/.cache/bazel-disk + find ~/.cache/bazel-disk -type f ! -newer "$RUNNER_TEMP/job-start" -delete + du -sh ~/.cache/bazel-disk + fi + - name: Save Bazel disk cache + if: github.event_name != 'pull_request' + uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 + with: + path: ~/.cache/bazel-disk + key: bazel-disk-${{ runner.os }}-${{ github.job }}-${{ github.sha }} - run: echo "🍏 This job's status is ${JOB_STATUS}." env: JOB_STATUS: ${{ job.status }} @@ -117,8 +151,8 @@ jobs: if: steps.changed_file.outputs.any_changed == 'true' uses: bazel-contrib/setup-bazel@083175551ceeceebc757ebee2127fde78840ca77 # 0.18.0 with: - # Store build cache per workflow. - disk-cache: ${{ github.workflow }}-${{ github.job }} + # Share repository cache between workflows. + repository-cache: true # Never write to the cache, strictly read-only cache-save: false - name: Verify Version Consistency From a3fee36d0f48f70dfbda3ca2ce5c1ca3826486ec Mon Sep 17 00:00:00 2001 From: Sean Huh Date: Tue, 27 Oct 2026 06:03:25 +0000 Subject: [PATCH 2/3] Split junit4_test_suites into individual java_test targets with pruned deps --- .github/workflows/workflow.yml | 12 +- .../src/test/java/dev/cel/bundle/BUILD.bazel | 234 ++++- .../src/test/java/dev/cel/checker/BUILD.bazel | 344 +++++++- .../src/test/java/dev/cel/common/BUILD.bazel | 230 ++++- .../test/java/dev/cel/common/ast/BUILD.bazel | 219 ++++- .../java/dev/cel/common/internal/BUILD.bazel | 256 +++++- .../dev/cel/common/navigation/BUILD.bazel | 109 ++- .../java/dev/cel/common/types/BUILD.bazel | 118 ++- .../java/dev/cel/common/values/BUILD.bazel | 345 +++++++- .../java/dev/cel/compiler/tools/BUILD.bazel | 20 +- .../test/java/dev/cel/extensions/BUILD.bazel | 437 +++++++++- .../test/java/dev/cel/optimizer/BUILD.bazel | 52 +- .../dev/cel/optimizer/optimizers/BUILD.bazel | 200 ++++- .../src/test/java/dev/cel/parser/BUILD.bazel | 206 ++++- .../src/test/java/dev/cel/policy/BUILD.bazel | 89 +- .../java/dev/cel/policy/tools/BUILD.bazel | 24 +- .../src/test/java/dev/cel/runtime/BUILD.bazel | 820 ++++++++++++++---- .../java/dev/cel/runtime/async/BUILD.bazel | 36 +- .../java/dev/cel/runtime/planner/BUILD.bazel | 231 ++++- .../src/test/java/dev/cel/testing/BUILD.bazel | 41 +- .../test/java/dev/cel/validator/BUILD.bazel | 20 +- .../dev/cel/validator/validators/BUILD.bazel | 139 ++- .../test/java/dev/cel/verifier/BUILD.bazel | 121 ++- .../java/dev/cel/verifier/tools/BUILD.bazel | 55 +- 24 files changed, 3666 insertions(+), 692 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index a67bbfcf6..45c3d345e 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -57,7 +57,8 @@ jobs: run: .github/workflows/cross_artifact_dependencies_check.sh - name: Prune disk cache entries not used by this job # Bazel bumps mtimes on use; drop stale entries so the saved cache doesn't grow unbounded. - if: github.event_name != 'pull_request' + # TODO(testing): Uncomment `if` before merging + # if: github.event_name != 'pull_request' run: | if [ -d ~/.cache/bazel-disk ]; then du -sh ~/.cache/bazel-disk @@ -65,7 +66,8 @@ jobs: du -sh ~/.cache/bazel-disk fi - name: Save Bazel disk cache - if: github.event_name != 'pull_request' + # TODO(testing): Uncomment `if` before merging + # if: github.event_name != 'pull_request' uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 with: path: ~/.cache/bazel-disk @@ -111,7 +113,8 @@ jobs: run: bazelisk test ... --deleted_packages=//codelab/src/test/codelab --test_output=errors --test_tag_filters=-conformance_maven --build_tag_filters=-conformance_maven - name: Prune disk cache entries not used by this job # Bazel bumps mtimes on use; drop stale entries so the saved cache doesn't grow unbounded. - if: github.event_name != 'pull_request' + # TODO(testing): Uncomment `if` before merging + # if: github.event_name != 'pull_request' run: | if [ -d ~/.cache/bazel-disk ]; then du -sh ~/.cache/bazel-disk @@ -119,7 +122,8 @@ jobs: du -sh ~/.cache/bazel-disk fi - name: Save Bazel disk cache - if: github.event_name != 'pull_request' + # TODO(testing): Uncomment `if` before merging + # if: github.event_name != 'pull_request' uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 with: path: ~/.cache/bazel-disk diff --git a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel index 4f9e51c62..d856043a7 100644 --- a/bundle/src/test/java/dev/cel/bundle/BUILD.bazel +++ b/bundle/src/test/java/dev/cel/bundle/BUILD.bazel @@ -1,5 +1,4 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = [ @@ -7,27 +6,188 @@ package( ], ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*Test.java"]), +java_test( + name = "CelEnvironmentExporterTest", + srcs = ["CelEnvironmentExporterTest.java"], resources = [ "//testing/environment:dump_env", "//testing/environment:extended_env", "//testing/environment:library_subset_env", ], + test_class = "dev.cel.bundle.CelEnvironmentExporterTest", deps = [ "//:java_truth", "//bundle:cel", - "//bundle:cel_impl", "//bundle:environment", "//bundle:environment_exception", "//bundle:environment_exporter", "//bundle:environment_yaml_parser", + "//common/types", + "//common/types:type_providers", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_var_decl", + "//common:container", + "//common:options", + "//compiler:compiler_builder", + "//extensions", + "//runtime", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelEnvironmentTest", + srcs = ["CelEnvironmentTest.java"], + resources = [ + "//testing/environment:dump_env", + "//testing/environment:extended_env", + "//testing/environment:library_subset_env", + ], + test_class = "dev.cel.bundle.CelEnvironmentTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//bundle:environment", + "//bundle:environment_exception", + "//common/ast", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_source", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:container", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//parser:macro", + "//runtime", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelEnvironmentYamlParserTest", + srcs = ["CelEnvironmentYamlParserTest.java"], + resources = [ + "//testing/environment:dump_env", + "//testing/environment:extended_env", + "//testing/environment:library_subset_env", + ], + test_class = "dev.cel.bundle.CelEnvironmentYamlParserTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//bundle:environment", + "//bundle:environment_exception", + "//bundle:environment_yaml_parser", + "//common/ast", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_source", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:container", + "//common:options", + "//compiler:compiler_builder", + "//parser:unparser", + "//runtime", + "//runtime:evaluation_listener", + "//runtime:function_binding", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelEnvironmentYamlSerializerTest", + srcs = ["CelEnvironmentYamlSerializerTest.java"], + resources = [ + "//testing/environment:dump_env", + "//testing/environment:extended_env", + "//testing/environment:library_subset_env", + ], + test_class = "dev.cel.bundle.CelEnvironmentYamlSerializerTest", + deps = [ + "//:java_truth", + "//bundle:environment", + "//bundle:environment_exception", + "//bundle:environment_yaml_parser", + "//common:container", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelFunctionTest", + srcs = ["CelFunctionTest.java"], + resources = [ + "//testing/environment:dump_env", + "//testing/environment:extended_env", + "//testing/environment:library_subset_env", + ], + test_class = "dev.cel.bundle.CelFunctionTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//compiler:compiler_builder", + "//runtime", + "//testing:cel_runtime_flavor", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelImplTest", + srcs = ["CelImplTest.java"], + resources = [ + "//testing/environment:dump_env", + "//testing/environment:extended_env", + "//testing/environment:library_subset_env", + ], + test_class = "dev.cel.bundle.CelImplTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//bundle:cel_impl", "//checker", "//checker:proto_type_mask", "//checker:standard_decl", "//checker:type_provider_legacy", + "//common/ast", + "//common/resources/testdata/proto3:standalone_global_enum_java_proto", + "//common/testing", + "//common/types", + "//common/types:cel_proto_message_types", + "//common/types:cel_proto_types", + "//common/types:message_type_provider", + "//common/types:type_providers", + "//common/values", + "//common/values:cel_byte_string", "//common:cel_ast", "//common:cel_descriptor_util", "//common:cel_function_decl", @@ -42,35 +202,23 @@ java_library( "//common:options", "//common:proto_ast", "//common:source_location", - "//common/ast", - "//common/resources/testdata/proto3:standalone_global_enum_java_proto", - "//common/testing", - "//common/types", - "//common/types:cel_proto_message_types", - "//common/types:cel_proto_types", - "//common/types:message_type_provider", - "//common/types:type_providers", - "//common/values", - "//common/values:cel_byte_string", "//compiler", "//compiler:compiler_builder", "//extensions", "//parser", "//parser:macro", - "//parser:unparser", "//runtime", "//runtime:evaluation_exception_builder", - "//runtime:evaluation_listener", "//runtime:function_binding", "//runtime:standard_functions", "//runtime:unknown_attributes", - "//testing:cel_runtime_flavor", "//testing/protos:single_file_extension_java_proto", "//testing/protos:single_file_java_proto", - "@cel_spec//proto/cel/expr:checked_java_proto", - "@cel_spec//proto/cel/expr:syntax_java_proto", + "//testing:cel_runtime_flavor", "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@cel_spec//proto/cel/expr:syntax_java_proto", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@com_google_googleapis//google/type:type_java_proto", "@maven//:com_google_guava_guava", @@ -82,12 +230,38 @@ java_library( ], ) -junit4_test_suites( - name = "test_suites", - shard_count = 4, - sizes = [ - "small", - ], - src_dir = "src/test/java", - deps = [":tests"], +java_test( + name = "CelOverloadDeclParserTest", + srcs = ["CelOverloadDeclParserTest.java"], + resources = [ + "//testing/environment:dump_env", + "//testing/environment:extended_env", + "//testing/environment:library_subset_env", + ], + test_class = "dev.cel.bundle.CelOverloadDeclParserTest", + deps = [ + "//:java_truth", + "//bundle:environment", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "TypeSpecifierParserTest", + srcs = ["TypeSpecifierParserTest.java"], + resources = [ + "//testing/environment:dump_env", + "//testing/environment:extended_env", + "//testing/environment:library_subset_env", + ], + test_class = "dev.cel.bundle.TypeSpecifierParserTest", + deps = [ + "//:java_truth", + "//bundle:environment", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], ) diff --git a/checker/src/test/java/dev/cel/checker/BUILD.bazel b/checker/src/test/java/dev/cel/checker/BUILD.bazel index 9957ab7fb..54746aeef 100644 --- a/checker/src/test/java/dev/cel/checker/BUILD.bazel +++ b/checker/src/test/java/dev/cel/checker/BUILD.bazel @@ -1,5 +1,4 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = [ @@ -7,69 +6,350 @@ package( ], ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*Test.java"]), - resources = ["//checker/src/test/resources:baselines"], +java_test( + name = "CelCheckerLegacyImplTest", + srcs = ["CelCheckerLegacyImplTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.CelCheckerLegacyImplTest", deps = [ + "//:java_truth", "//checker", "//checker:checker_builder", "//checker:checker_legacy_environment", - "//checker:proto_expr_visitor", "//checker:proto_type_mask", "//checker:standard_decl", - "//checker:type_inferencer", + "//common/ast", + "//common/internal:env_visitor", + "//common/types", + "//common/types:type_providers", "//common:cel_ast", "//common:cel_function_decl", - "//common:cel_issue", "//common:cel_overload_decl", - "//common:cel_proto_decl_converter", "//common:cel_source", "//common:cel_validation_exception", "//common:cel_var_decl", "//common:container", - "//common:mutable_ast", - "//common:operator", "//common:options", - "//common:proto_ast", + "//compiler", + "//compiler:compiler_builder", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelCompilerFactoryTest", + srcs = ["CelCompilerFactoryTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.CelCompilerFactoryTest", + deps = [ + "//:java_truth", + "//checker:checker_builder", + "//common/ast", + "//compiler", + "//compiler:compiler_builder", + "//parser:macro", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelCompilerImplTest", + srcs = ["CelCompilerImplTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.CelCompilerImplTest", + deps = [ + "//:java_truth", + "//checker:checker_builder", + "//common/internal:env_visitor", + "//common/types", + "//common/types:type_providers", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//compiler", + "//compiler:compiler_builder", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelFunctionDeclTest", + srcs = ["CelFunctionDeclTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.CelFunctionDeclTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelIssueTest", + srcs = ["CelIssueTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.CelIssueTest", + deps = [ + "//:java_truth", + "//common:cel_issue", + "//common:cel_source", "//common:source_location", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelOverloadDeclTest", + srcs = ["CelOverloadDeclTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.CelOverloadDeclTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:cel_proto_types", + "//common/types:type_providers", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_proto_decl_converter", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_truth_extensions_truth_proto_extension", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelProtoExprVisitorTest", + srcs = ["CelProtoExprVisitorTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.CelProtoExprVisitorTest", + deps = [ + "//:auto_value", + "//:java_truth", + "//checker:checker_builder", + "//checker:checker_legacy_environment", + "//checker:proto_expr_visitor", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_validation_exception", + "//common:container", + "//common:operator", + "//compiler", + "//compiler:compiler_builder", + "//parser:macro", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@cel_spec//proto/cel/expr:syntax_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_truth_extensions_truth_proto_extension", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelStandardDeclarationsTest", + srcs = ["CelStandardDeclarationsTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.CelStandardDeclarationsTest", + deps = [ + "//:java_truth", + "//checker:checker_builder", + "//checker:standard_decl", + "//common:cel_ast", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_validation_exception", + "//common:cel_var_decl", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "DescriptorTypeProviderTest", + srcs = ["DescriptorTypeProviderTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.DescriptorTypeProviderTest", + deps = [ + "//:java_truth", + "//checker:checker_legacy_environment", + "//common/types:cel_proto_types", + "//common/types:type_providers", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ExprCheckerTest", + srcs = ["ExprCheckerTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.ExprCheckerTest", + deps = [ + "//checker:checker_builder", + "//checker:checker_legacy_environment", + "//checker:standard_decl", "//common/ast", "//common/internal:env_visitor", "//common/internal:errors", "//common/resources/testdata/proto3:standalone_global_enum_java_proto", "//common/types", "//common/types:cel_proto_types", - "//common/types:json", "//common/types:message_type_provider", "//common/types:type_providers", - "//compiler", + "//common:cel_ast", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_proto_decl_converter", + "//common:cel_source", + "//common:cel_validation_exception", + "//common:cel_var_decl", + "//common:container", + "//common:mutable_ast", + "//common:options", + "//common:proto_ast", "//compiler:compiler_builder", - # "//java/com/google/testing/testsize:annotations", "//parser:macro", "//testing:adorner", "//testing:cel_baseline_test_case", - "//:auto_value", - "@maven//:junit_junit", - "@maven//:com_google_testparameterinjector_test_parameter_injector", - "//:java_truth", - "@maven//:com_google_truth_extensions_truth_proto_extension", - "@cel_spec//proto/cel/expr:checked_java_proto", - "@cel_spec//proto/cel/expr:syntax_java_proto", "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@cel_spec//proto/cel/expr:syntax_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoTypeMaskTest", + srcs = ["ProtoTypeMaskTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.ProtoTypeMaskTest", + deps = [ + "//:java_truth", + "//checker:proto_type_mask", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoTypeMaskTypeProviderTest", + srcs = ["ProtoTypeMaskTypeProviderTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.ProtoTypeMaskTypeProviderTest", + deps = [ + "//:java_truth", + "//checker", + "//checker:proto_type_mask", + "//common/types", + "//common/types:message_type_provider", + "//common/types:type_providers", + "//common:cel_var_decl", "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "TypeInferencerTest", + srcs = ["TypeInferencerTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.TypeInferencerTest", + deps = [ + "//:java_truth", + "//checker:type_inferencer", + "//common/types", + "//common/types:json", + "//common/types:type_providers", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", - "medium", - ], - src_dir = "src/test/java", - deps = [":tests"], +java_test( + name = "TypesTest", + srcs = ["TypesTest.java"], + resources = [ + "//checker/src/test/resources:baselines", + ], + test_class = "dev.cel.checker.TypesTest", + deps = [ + "//:java_truth", + "//checker:checker_builder", + "//checker:checker_legacy_environment", + "//common/types", + "//common/types:cel_proto_types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_validation_exception", + "//common:container", + "//compiler", + "//compiler:compiler_builder", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], ) diff --git a/common/src/test/java/dev/cel/common/BUILD.bazel b/common/src/test/java/dev/cel/common/BUILD.bazel index bc2df38ec..869d08783 100644 --- a/common/src/test/java/dev/cel/common/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/BUILD.bazel @@ -1,5 +1,4 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = [ @@ -7,64 +6,229 @@ package( ], ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*.java"]), +java_test( + name = "CelAbstractSyntaxTreeTest", + srcs = ["CelAbstractSyntaxTreeTest.java"], + test_class = "dev.cel.common.CelAbstractSyntaxTreeTest", deps = [ "//:java_truth", + "//common/ast", + "//common/internal", + "//common/types", + "//common/types:type_providers", + "//common/values:cel_byte_string", "//common:cel_ast", - "//common:cel_descriptor_util", - "//common:cel_descriptors", - "//common:cel_issue", - "//common:cel_overload_decl", - "//common:cel_overload_decl_formatter", - "//common:cel_proto_decl_converter", "//common:cel_source", "//common:cel_validation_exception", - "//common:cel_var_decl", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//parser:macro", + "@maven//:com_google_guava_guava", + "@maven//:com_google_guava_guava_testlib", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelContainerTest", + srcs = ["CelContainerTest.java"], + test_class = "dev.cel.common.CelContainerTest", + deps = [ + "//:java_truth", "//common:container", - "//common:operator", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelDescriptorUtilTest", + srcs = ["CelDescriptorUtilTest.java"], + test_class = "dev.cel.common.CelDescriptorUtilTest", + deps = [ + "//:java_truth", + "//common:cel_descriptor_util", + "//common:cel_descriptors", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelOptionsTest", + srcs = ["CelOptionsTest.java"], + test_class = "dev.cel.common.CelOptionsTest", + deps = [ + "//:java_truth", "//common:options", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelOverloadDeclFormatterTest", + srcs = ["CelOverloadDeclFormatterTest.java"], + test_class = "dev.cel.common.CelOverloadDeclFormatterTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "//common:cel_overload_decl", + "//common:cel_overload_decl_formatter", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelProtoAbstractSyntaxTreeTest", + srcs = ["CelProtoAbstractSyntaxTreeTest.java"], + test_class = "dev.cel.common.CelProtoAbstractSyntaxTreeTest", + deps = [ + "//:java_truth", + "//common/types:cel_proto_types", + "//common:cel_ast", "//common:proto_ast", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@cel_spec//proto/cel/expr:syntax_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_truth_extensions_truth_proto_extension", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelProtoJsonAdapterTest", + srcs = ["CelProtoJsonAdapterTest.java"], + test_class = "dev.cel.common.CelProtoJsonAdapterTest", + deps = [ + "//:java_truth", + "//common/values:cel_byte_string", + "//common:cel_source", "//common:proto_json_adapter", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:com_google_truth_extensions_truth_proto_extension", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelProtoV1Alpha1AbstractSyntaxTreeTest", + srcs = ["CelProtoV1Alpha1AbstractSyntaxTreeTest.java"], + test_class = "dev.cel.common.CelProtoV1Alpha1AbstractSyntaxTreeTest", + deps = [ + "//:java_truth", + "//common/types:cel_v1alpha1_types", + "//common:cel_ast", "//common:proto_v1alpha1_ast", + "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_truth_extensions_truth_proto_extension", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelSourceLocationTest", + srcs = ["CelSourceLocationTest.java"], + test_class = "dev.cel.common.CelSourceLocationTest", + deps = [ + "//:java_truth", "//common:source_location", - "//common:type_specifier_formatter", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelSourceTest", + srcs = ["CelSourceTest.java"], + test_class = "dev.cel.common.CelSourceTest", + deps = [ + "//:java_truth", "//common/ast", "//common/internal", "//common/internal:code_point_stream", + "//common:cel_source", + "//common:source_location", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + "@maven//:org_antlr_antlr4_runtime", + ], +) + +java_test( + name = "CelValidationExceptionTest", + srcs = ["CelValidationExceptionTest.java"], + test_class = "dev.cel.common.CelValidationExceptionTest", + deps = [ + "//:java_truth", + "//common:cel_issue", + "//common:cel_source", + "//common:cel_validation_exception", + "//common:source_location", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelVarDeclTest", + srcs = ["CelVarDeclTest.java"], + test_class = "dev.cel.common.CelVarDeclTest", + deps = [ + "//:java_truth", + "//common/ast", "//common/types", - "//common/types:cel_internal_types", - "//common/types:cel_proto_types", - "//common/types:cel_types", - "//common/types:cel_v1alpha1_types", "//common/types:type_providers", "//common/values:cel_byte_string", - "//compiler", - "//compiler:compiler_builder", - "//parser:macro", + "//common:cel_proto_decl_converter", + "//common:cel_var_decl", "@cel_spec//proto/cel/expr:checked_java_proto", "@cel_spec//proto/cel/expr:syntax_java_proto", - "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", - "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", "@maven//:com_google_guava_guava", - "@maven//:com_google_guava_guava_testlib", "@maven//:com_google_protobuf_protobuf_java", - "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:com_google_truth_extensions_truth_proto_extension", "@maven//:junit_junit", - "@maven//:org_antlr_antlr4_runtime", ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "OperatorTest", + srcs = ["OperatorTest.java"], + test_class = "dev.cel.common.OperatorTest", + deps = [ + "//:java_truth", + "//common:operator", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], - src_dir = "src/test/java", +) + +java_test( + name = "TypeSpecifierFormatterTest", + srcs = ["TypeSpecifierFormatterTest.java"], + test_class = "dev.cel.common.TypeSpecifierFormatterTest", deps = [ - ":tests", + "//:java_truth", + "//common/types", + "//common/types:cel_internal_types", + "//common/types:cel_types", + "//common/types:type_providers", + "//common:type_specifier_formatter", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], ) diff --git a/common/src/test/java/dev/cel/common/ast/BUILD.bazel b/common/src/test/java/dev/cel/common/ast/BUILD.bazel index e4aac277b..21bb3a293 100644 --- a/common/src/test/java/dev/cel/common/ast/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/ast/BUILD.bazel @@ -1,5 +1,4 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = [ @@ -7,51 +6,221 @@ package( ], ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*.java"]), +java_test( + name = "CelConstantTest", + srcs = ["CelConstantTest.java"], + test_class = "dev.cel.common.ast.CelConstantTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/values", + "//common/values:cel_byte_string", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelExprConverterTest", + srcs = ["CelExprConverterTest.java"], + test_class = "dev.cel.common.ast.CelExprConverterTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/ast:expr_converter", + "//common/values", + "//common/values:cel_byte_string", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@cel_spec//proto/cel/expr:syntax_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelExprFactoryTest", + srcs = ["CelExprFactoryTest.java"], + test_class = "dev.cel.common.ast.CelExprFactoryTest", + deps = [ + "//:java_truth", + "//common/ast:expr_factory", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelExprFormatterTest", + srcs = ["CelExprFormatterTest.java"], + test_class = "dev.cel.common.ast.CelExprFormatterTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/types", + "//common:cel_ast", + "//common:compiler_common", + "//common:container", + "//compiler", + "//compiler:compiler_builder", + "//extensions:optional_library", + "//parser:macro", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelExprIdGeneratorTest", + srcs = ["CelExprIdGeneratorTest.java"], + test_class = "dev.cel.common.ast.CelExprIdGeneratorTest", + deps = [ + "//:java_truth", + "//common/ast:expr_factory", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelExprTest", + srcs = ["CelExprTest.java"], + test_class = "dev.cel.common.ast.CelExprTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/values", + "//common/values:cel_byte_string", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelExprV1Alpha1ConverterTest", + srcs = ["CelExprV1Alpha1ConverterTest.java"], + test_class = "dev.cel.common.ast.CelExprV1Alpha1ConverterTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/ast:expr_v1alpha1_converter", + "//common/values", + "//common/values:cel_byte_string", + "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelExprVisitorTest", + srcs = ["CelExprVisitorTest.java"], + test_class = "dev.cel.common.ast.CelExprVisitorTest", deps = [ "//:auto_value", "//:java_truth", + "//common/ast", + "//common/ast:cel_expr_visitor", + "//common/types", + "//common/values", + "//common/values:cel_byte_string", "//common:cel_ast", "//common:compiler_common", "//common:container", - "//common:mutable_ast", - "//common:mutable_source", "//common:operator", - "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//parser:macro", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelMutableAstTest", + srcs = ["CelMutableAstTest.java"], + test_class = "dev.cel.common.ast.CelMutableAstTest", + deps = [ + "//:java_truth", "//common/ast", - "//common/ast:cel_expr_visitor", - "//common/ast:expr_converter", - "//common/ast:expr_factory", - "//common/ast:expr_v1alpha1_converter", "//common/ast:mutable_expr", "//common/types", "//common/values", "//common/values:cel_byte_string", + "//common:cel_ast", + "//common:compiler_common", + "//common:mutable_ast", + "//common:mutable_source", + "//common:options", "//compiler", "//compiler:compiler_builder", - "//extensions:optional_library", "//parser:macro", - "@cel_spec//proto/cel/expr:checked_java_proto", - "@cel_spec//proto/cel/expr:syntax_java_proto", - "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", - "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelMutableExprConverterTest", + srcs = ["CelMutableExprConverterTest.java"], + test_class = "dev.cel.common.ast.CelMutableExprConverterTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/ast:mutable_expr", + "//common/values", + "//common/values:cel_byte_string", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelMutableExprTest", + srcs = ["CelMutableExprTest.java"], + test_class = "dev.cel.common.ast.CelMutableExprTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/ast:mutable_expr", + "//common/values", + "//common/values:cel_byte_string", "@maven//:com_google_guava_guava", "@maven//:com_google_guava_guava_testlib", "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", - "@maven_android//:com_google_protobuf_protobuf_javalite", ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "CelReferenceTest", + srcs = ["CelReferenceTest.java"], + test_class = "dev.cel.common.ast.CelReferenceTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/values", + "//common/values:cel_byte_string", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/common/src/test/java/dev/cel/common/internal/BUILD.bazel b/common/src/test/java/dev/cel/common/internal/BUILD.bazel index a70489fb4..1ff333b9a 100644 --- a/common/src/test/java/dev/cel/common/internal/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/internal/BUILD.bazel @@ -1,5 +1,4 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = [ @@ -7,56 +6,253 @@ package( ], ) -java_library( - name = "tests", - testonly = 1, - srcs = glob(["*.java"]), - resources = ["//common/src/test/resources"], +java_test( + name = "CelCodePointArrayTest", + srcs = ["CelCodePointArrayTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.CelCodePointArrayTest", deps = [ "//:auto_value", "//:java_truth", + "//common/internal", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CombinedDescriptorPoolTest", + srcs = ["CombinedDescriptorPoolTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.CombinedDescriptorPoolTest", + deps = [ + "//:java_truth", + "//common/internal:cel_descriptor_pools", "//common:cel_descriptor_util", "//common:cel_descriptors", - "//common:options", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ComparisonFunctionsTest", + srcs = ["ComparisonFunctionsTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.ComparisonFunctionsTest", + deps = [ + "//:java_truth", + "//common/internal:comparison_functions", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ConstantsTest", + srcs = ["ConstantsTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.ConstantsTest", + deps = [ + "//:java_truth", "//common/ast", "//common/internal", - "//common/internal:cel_descriptor_pools", - "//common/internal:comparison_functions", - "//common/internal:converter", + "//common/values:cel_byte_string", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "DefaultInstanceMessageFactoryTest", + srcs = ["DefaultInstanceMessageFactoryTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.DefaultInstanceMessageFactoryTest", + deps = [ + "//:java_truth", "//common/internal:default_instance_message_factory", + "//common/src/test/resources:default_instance_message_test_protos_java_proto", + "//common/src/test/resources:service_conflicting_name_java_proto", + "//common/testing", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "DefaultLiteDescriptorPoolTest", + srcs = ["DefaultLiteDescriptorPoolTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.DefaultLiteDescriptorPoolTest", + deps = [ + "//:java_truth", + "//common/internal:cel_descriptor_pools", "//common/internal:default_lite_descriptor_pool", + "//common/internal:well_known_proto", + "//protobuf:cel_lite_descriptor", + "//testing/protos:test_all_types_cel_java_proto3", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "DefaultMessageFactoryTest", + srcs = ["DefaultMessageFactoryTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.DefaultMessageFactoryTest", + deps = [ + "//:java_truth", + "//common/internal:cel_descriptor_pools", + "//common/internal:default_message_factory", + "//common/internal:proto_message_factory", + "//common:cel_descriptor_util", + "//common:cel_descriptors", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "DynamicProtoTest", + srcs = ["DynamicProtoTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.DynamicProtoTest", + deps = [ + "//:java_truth", + "//common/internal:cel_descriptor_pools", "//common/internal:default_message_factory", "//common/internal:dynamic_proto", + "//common/internal:proto_message_factory", + "//common:cel_descriptor_util", + "//common:cel_descriptors", + "//testing/protos:multi_file_java_proto", + "//testing/protos:single_file_java_proto", + "@com_google_googleapis//google/type:type_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ErrorsTest", + srcs = ["ErrorsTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.ErrorsTest", + deps = [ + "//:java_truth", "//common/internal:errors", - "//common/internal:proto_equality", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoAdapterTest", + srcs = ["ProtoAdapterTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.ProtoAdapterTest", + deps = [ + "//:java_truth", + "//common/internal:converter", + "//common/internal:default_message_factory", + "//common/internal:dynamic_proto", "//common/internal:proto_message_factory", - "//common/internal:proto_time_utils", - "//common/internal:well_known_proto", - "//common/src/test/resources:default_instance_message_test_protos_java_proto", - "//common/src/test/resources:service_conflicting_name_java_proto", - "//common/testing", "//common/values", "//common/values:cel_byte_string", - "//protobuf:cel_lite_descriptor", - "//testing/protos:multi_file_java_proto", - "//testing/protos:single_file_java_proto", - "//testing/protos:test_all_types_cel_java_proto3", - "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", - "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "//common:options", "@com_google_googleapis//google/type:type_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoEqualityTest", + srcs = ["ProtoEqualityTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.ProtoEqualityTest", + deps = [ + "//:java_truth", + "//common/internal:cel_descriptor_pools", + "//common/internal:default_message_factory", + "//common/internal:dynamic_proto", + "//common/internal:proto_equality", + "//common/internal:proto_message_factory", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoTimeUtilsTest", + srcs = ["ProtoTimeUtilsTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.ProtoTimeUtilsTest", + deps = [ + "//:java_truth", + "//common/internal:proto_time_utils", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", - "@maven_android//:com_google_protobuf_protobuf_javalite", ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "WellKnownProtoTest", + srcs = ["WellKnownProtoTest.java"], + resources = [ + "//common/src/test/resources", + ], + test_class = "dev.cel.common.internal.WellKnownProtoTest", + deps = [ + "//:java_truth", + "//common/internal:well_known_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/common/src/test/java/dev/cel/common/navigation/BUILD.bazel b/common/src/test/java/dev/cel/common/navigation/BUILD.bazel index 0a29dfe8a..761744aee 100644 --- a/common/src/test/java/dev/cel/common/navigation/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/navigation/BUILD.bazel @@ -1,22 +1,47 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*.java"]), +java_test( + name = "CelNavigableAstTest", + srcs = ["CelNavigableAstTest.java"], + test_class = "dev.cel.common.navigation.CelNavigableAstTest", deps = [ "//:java_truth", + "//common/ast", + "//common/navigation", + "//common/navigation:common", "//common:cel_ast", "//common:compiler_common", - "//common:container", - "//common:mutable_ast", - "//common:operator", - "//common:options", + "//compiler", + "//compiler:compiler_builder", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelNavigableExprTest", + srcs = ["CelNavigableExprTest.java"], + test_class = "dev.cel.common.navigation.CelNavigableExprTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/navigation", + "//common/navigation:common", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelNavigableExprUtilTest", + srcs = ["CelNavigableExprUtilTest.java"], + test_class = "dev.cel.common.navigation.CelNavigableExprUtilTest", + deps = [ + "//:java_truth", "//common/ast", "//common/ast:mutable_expr", "//common/navigation", @@ -24,10 +49,36 @@ java_library( "//common/navigation:expr_util", "//common/navigation:mutable_navigation", "//common/types", + "//common:cel_ast", + "//common:compiler_common", + "//common:mutable_ast", "//compiler", "//compiler:compiler_builder", "//extensions", "//parser:macro", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelNavigableExprVisitorTest", + srcs = ["CelNavigableExprVisitorTest.java"], + test_class = "dev.cel.common.navigation.CelNavigableExprVisitorTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/navigation", + "//common/navigation:common", + "//common/types", + "//common:cel_ast", + "//common:compiler_common", + "//common:container", + "//common:operator", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//parser:macro", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_testparameterinjector_test_parameter_injector", @@ -35,11 +86,37 @@ java_library( ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "CelNavigableMutableAstTest", + srcs = ["CelNavigableMutableAstTest.java"], + test_class = "dev.cel.common.navigation.CelNavigableMutableAstTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/ast:mutable_expr", + "//common/navigation:common", + "//common/navigation:mutable_navigation", + "//common:cel_ast", + "//common:compiler_common", + "//common:mutable_ast", + "//compiler", + "//compiler:compiler_builder", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelNavigableMutableExprTest", + srcs = ["CelNavigableMutableExprTest.java"], + test_class = "dev.cel.common.navigation.CelNavigableMutableExprTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/ast:mutable_expr", + "//common/navigation:common", + "//common/navigation:mutable_navigation", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/common/src/test/java/dev/cel/common/types/BUILD.bazel b/common/src/test/java/dev/cel/common/types/BUILD.bazel index 64f555547..7a5dffa69 100644 --- a/common/src/test/java/dev/cel/common/types/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/types/BUILD.bazel @@ -1,39 +1,125 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*.java"]), +java_test( + name = "CelKindTest", + srcs = ["CelKindTest.java"], + test_class = "dev.cel.common.types.CelKindTest", + deps = [ + "//:java_truth", + "//common/types:type_providers", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelProtoMessageTypesTest", + srcs = ["CelProtoMessageTypesTest.java"], + test_class = "dev.cel.common.types.CelProtoMessageTypesTest", + deps = [ + "//:java_truth", + "//common/types:cel_proto_message_types", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelProtoTypesTest", + srcs = ["CelProtoTypesTest.java"], + test_class = "dev.cel.common.types.CelProtoTypesTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:cel_internal_types", + "//common/types:cel_proto_types", + "//common/types:cel_types", + "//common/types:type_providers", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:com_google_truth_extensions_truth_proto_extension", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelTypesTest", + srcs = ["CelTypesTest.java"], + test_class = "dev.cel.common.types.CelTypesTest", deps = [ "//:java_truth", "//common/types", "//common/types:cel_internal_types", - "//common/types:cel_proto_message_types", "//common/types:cel_proto_types", "//common/types:cel_types", + "//common/types:type_providers", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "EnumTypeTest", + srcs = ["EnumTypeTest.java"], + test_class = "dev.cel.common.types.EnumTypeTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "OptionalTypeTest", + srcs = ["OptionalTypeTest.java"], + test_class = "dev.cel.common.types.OptionalTypeTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoMessageTypeProviderTest", + srcs = ["ProtoMessageTypeProviderTest.java"], + test_class = "dev.cel.common.types.ProtoMessageTypeProviderTest", + deps = [ + "//:java_truth", + "//common/types", "//common/types:message_type_provider", "//common/types:type_providers", "//testing/protos:single_file_java_proto", - "@cel_spec//proto/cel/expr:checked_java_proto", "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", "@maven//:com_google_guava_guava", - "@maven//:com_google_testparameterinjector_test_parameter_injector", - "@maven//:com_google_truth_extensions_truth_proto_extension", "@maven//:junit_junit", ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "ProtoMessageTypeTest", + srcs = ["ProtoMessageTypeTest.java"], + test_class = "dev.cel.common.types.ProtoMessageTypeTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/common/src/test/java/dev/cel/common/values/BUILD.bazel b/common/src/test/java/dev/cel/common/values/BUILD.bazel index e77904fa6..77acb1139 100644 --- a/common/src/test/java/dev/cel/common/values/BUILD.bazel +++ b/common/src/test/java/dev/cel/common/values/BUILD.bazel @@ -1,64 +1,355 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*.java"]), +java_test( + name = "CelByteStringTest", + srcs = ["CelByteStringTest.java"], + test_class = "dev.cel.common.values.CelByteStringTest", + deps = [ + "//:java_truth", + "//common/values:cel_byte_string", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_guava_guava_testlib", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelValueConverterTest", + srcs = ["CelValueConverterTest.java"], + test_class = "dev.cel.common.values.CelValueConverterTest", + deps = [ + "//:java_truth", + "//common/exceptions:invalid_argument", + "//common/values", + "//common:error_codes", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CombinedCelValueConverterTest", + srcs = ["CombinedCelValueConverterTest.java"], + test_class = "dev.cel.common.values.CombinedCelValueConverterTest", + deps = [ + "//:java_truth", + "//common/values", + "//common/values:cel_value_provider", + "//common/values:combined_cel_value_converter", + "//common/values:combined_cel_value_provider", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ErrorValueTest", + srcs = ["ErrorValueTest.java"], + test_class = "dev.cel.common.values.ErrorValueTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "//common/values", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "NullValueTest", + srcs = ["NullValueTest.java"], + test_class = "dev.cel.common.values.NullValueTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "//common/values", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "OpaqueValueTest", + srcs = ["OpaqueValueTest.java"], + test_class = "dev.cel.common.values.OpaqueValueTest", deps = [ "//:java_truth", "//bundle:cel", + "//common/types", + "//common/types:type_providers", + "//common/values", + "//common/values:cel_value_provider", "//common:cel_ast", - "//common:cel_descriptor_util", - "//common:error_codes", - "//common:options", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "OptimizedSelectTraversalTest", + srcs = ["OptimizedSelectTraversalTest.java"], + test_class = "dev.cel.common.values.OptimizedSelectTraversalTest", + deps = [ + "//:java_truth", "//common/exceptions:attribute_not_found", - "//common/exceptions:invalid_argument", + "//common/types", + "//common/types:type_providers", + "//common/values", + "//common/values:optimized_select_traversal", + "//common/values:optimized_selectable", + "//common/values:select_field", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "OptionalValueTest", + srcs = ["OptionalValueTest.java"], + test_class = "dev.cel.common.values.OptionalValueTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "//common/values", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoCelValueConverterTest", + srcs = ["ProtoCelValueConverterTest.java"], + test_class = "dev.cel.common.values.ProtoCelValueConverterTest", + deps = [ + "//:java_truth", "//common/internal:cel_descriptor_pools", - "//common/internal:cel_lite_descriptor_pool", - "//common/internal:default_lite_descriptor_pool", "//common/internal:default_message_factory", "//common/internal:dynamic_proto", "//common/internal:proto_message_factory", - "//common/internal:proto_time_utils", + "//common/values", + "//common/values:proto_message_value", + "//common:options", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoLiteCelValueConverterTest", + srcs = ["ProtoLiteCelValueConverterTest.java"], + test_class = "dev.cel.common.values.ProtoLiteCelValueConverterTest", + deps = [ + "@maven//:com_google_protobuf_protobuf_java", + "//:java_truth", + "//common/internal:cel_lite_descriptor_pool", + "//common/internal:default_lite_descriptor_pool", + "//common/values", + "//common/values:cel_byte_string", + "//common/values:optimized_selectable", + "//common/values:proto_message_lite_value", + "//common/values:select_field", + "//protobuf:cel_lite_descriptor", + "//testing/protos:test_all_types_cel_java_proto2", + "//testing/protos:test_all_types_cel_java_proto3", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoMessageLiteValueProviderTest", + srcs = ["ProtoMessageLiteValueProviderTest.java"], + test_class = "dev.cel.common.values.ProtoMessageLiteValueProviderTest", + deps = [ + "//:java_truth", "//common/types", "//common/types:type_providers", "//common/values", - "//common/values:cel_byte_string", "//common/values:cel_value_provider", - "//common/values:combined_cel_value_converter", - "//common/values:combined_cel_value_provider", - "//common/values:optimized_select_traversal", "//common/values:optimized_selectable", "//common/values:proto_message_lite_value", "//common/values:proto_message_lite_value_provider", + "//protobuf:cel_lite_descriptor", + "//testing/protos:test_all_types_cel_java_proto3", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoMessageLiteValueTest", + srcs = ["ProtoMessageLiteValueTest.java"], + test_class = "dev.cel.common.values.ProtoMessageLiteValueTest", + deps = [ + "@maven//:com_google_protobuf_protobuf_java", + "//:java_truth", + "//common/exceptions:attribute_not_found", + "//common/internal:cel_lite_descriptor_pool", + "//common/internal:default_lite_descriptor_pool", + "//common/values", + "//common/values:cel_byte_string", + "//common/values:optimized_select_traversal", + "//common/values:optimized_selectable", + "//common/values:proto_message_lite_value", + "//common/values:select_field", + "//protobuf:cel_lite_descriptor", + "//testing/protos:test_all_types_cel_java_proto3", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_guava_guava_testlib", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoMessageValueProviderTest", + srcs = ["ProtoMessageValueProviderTest.java"], + test_class = "dev.cel.common.values.ProtoMessageValueProviderTest", + deps = [ + "//:java_truth", + "//common/internal:cel_descriptor_pools", + "//common/internal:default_message_factory", + "//common/internal:dynamic_proto", + "//common/internal:proto_message_factory", + "//common/values", + "//common/values:cel_value_provider", + "//common/values:combined_cel_value_provider", + "//common/values:optimized_selectable", "//common/values:proto_message_value", "//common/values:proto_message_value_provider", + "//common:cel_descriptor_util", + "//common:options", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProtoMessageValueTest", + srcs = ["ProtoMessageValueTest.java"], + test_class = "dev.cel.common.values.ProtoMessageValueTest", + deps = [ + "//:java_truth", + "//common/exceptions:attribute_not_found", + "//common/internal:cel_descriptor_pools", + "//common/internal:default_message_factory", + "//common/internal:dynamic_proto", + "//common/internal:proto_message_factory", + "//common/types", + "//common/types:type_providers", + "//common/values", + "//common/values:cel_byte_string", + "//common/values:optimized_selectable", + "//common/values:proto_message_value", + "//common/values:select_field", + "//common:cel_descriptor_util", + "//common:options", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "RawProtoMessageLiteValueTest", + srcs = ["RawProtoMessageLiteValueTest.java"], + test_class = "dev.cel.common.values.RawProtoMessageLiteValueTest", + deps = [ + "@maven//:com_google_protobuf_protobuf_java", + "//:java_truth", + "//common/exceptions:attribute_not_found", + "//common/internal:cel_lite_descriptor_pool", + "//common/internal:default_lite_descriptor_pool", + "//common/internal:proto_time_utils", + "//common/types:type_providers", + "//common/values", + "//common/values:cel_byte_string", + "//common/values:optimized_selectable", + "//common/values:proto_message_lite_value", "//common/values:select_field", "//protobuf:cel_lite_descriptor", - "//testing/protos:test_all_types_cel_java_proto2", "//testing/protos:test_all_types_cel_java_proto3", - "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "SelectFieldTest", + srcs = ["SelectFieldTest.java"], + test_class = "dev.cel.common.values.SelectFieldTest", + deps = [ + "//:java_truth", + "//common/values:select_field", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", "@maven//:com_google_guava_guava_testlib", - "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", - "@maven_android//:com_google_protobuf_protobuf_javalite", ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "StructValueTest", + srcs = ["StructValueTest.java"], + test_class = "dev.cel.common.values.StructValueTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/internal:dynamic_proto", + "//common/internal:proto_message_factory", + "//common/types", + "//common/types:type_providers", + "//common/values", + "//common/values:cel_value_provider", + "//common/values:combined_cel_value_provider", + "//common/values:proto_message_value_provider", + "//common:cel_ast", + "//common:options", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/compiler/src/test/java/dev/cel/compiler/tools/BUILD.bazel b/compiler/src/test/java/dev/cel/compiler/tools/BUILD.bazel index c388ea3ea..723e1395a 100644 --- a/compiler/src/test/java/dev/cel/compiler/tools/BUILD.bazel +++ b/compiler/src/test/java/dev/cel/compiler/tools/BUILD.bazel @@ -1,15 +1,14 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], default_testonly = True, ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*Test.java"]), +java_test( + name = "CelCompilerToolTest", + srcs = ["CelCompilerToolTest.java"], + test_class = "dev.cel.compiler.tools.CelCompilerToolTest", deps = [ "//:java_truth", "//common:cel_ast", @@ -25,12 +24,3 @@ java_library( "@maven//:junit_junit", ], ) - -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", - ], - src_dir = "src/test/java", - deps = [":tests"], -) diff --git a/extensions/src/test/java/dev/cel/extensions/BUILD.bazel b/extensions/src/test/java/dev/cel/extensions/BUILD.bazel index 4168d0dfb..5c4270002 100644 --- a/extensions/src/test/java/dev/cel/extensions/BUILD.bazel +++ b/extensions/src/test/java/dev/cel/extensions/BUILD.bazel @@ -1,92 +1,473 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_library", "java_test") package( default_applicable_licenses = ["//:license"], ) java_library( - name = "tests", + name = "test_helpers", testonly = True, - srcs = glob(["*.java"]), + srcs = [ + "CelExtensionTestBase.java", + ], + deps = [ + "//bundle:cel", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//compiler:compiler_builder", + "//runtime", + "//runtime:partial_vars", + "//testing:cel_runtime_flavor", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelBindingsExtensionsTest", + srcs = ["CelBindingsExtensionsTest.java"], + test_class = "dev.cel.extensions.CelBindingsExtensionsTest", deps = [ "//:java_truth", "//bundle:cel", + "//common/exceptions:divide_by_zero", + "//common/types", + "//common/types:type_providers", "//common:cel_ast", "//common:cel_exception", "//common:cel_function_decl", "//common:cel_overload_decl", "//common:cel_validation_exception", "//common:cel_validation_result", - "//common:cel_var_decl", - "//common:container", "//common:options", + "//compiler:compiler_builder", + "//extensions", + "//extensions:extension_library", + "//extensions:optional_library", + "//parser:macro", + "//runtime", + "//runtime:function_binding", + "//testing:cel_runtime_flavor", + ":test_helpers", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelComprehensionsExtensionsTest", + srcs = ["CelComprehensionsExtensionsTest.java"], + test_class = "dev.cel.extensions.CelComprehensionsExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", "//common/ast", "//common/exceptions:attribute_not_found", "//common/exceptions:divide_by_zero", "//common/exceptions:index_out_of_bounds", - "//common/exceptions:invalid_argument", "//common/types", "//common/types:type_providers", - "//common/values", - "//common/values:cel_byte_string", - "//common/values:cel_value_provider", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", "//compiler", "//compiler:compiler_builder", "//extensions", "//extensions:comprehensions", "//extensions:comprehensions_compiler_library", "//extensions:comprehensions_runtime_library", + "//extensions:extension_library", + "//extensions:lists", + "//extensions:optional_library", + "//extensions:strings", + "//parser:macro", + "//parser:unparser", + "//runtime", + "//runtime:function_binding", + "//runtime:lite_runtime", + "//runtime:lite_runtime_factory", + "//runtime:runtime_equality", + "//runtime:runtime_helpers", + "//testing:cel_runtime_flavor", + ":test_helpers", + "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelEncoderExtensionsTest", + srcs = ["CelEncoderExtensionsTest.java"], + test_class = "dev.cel.extensions.CelEncoderExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common/types:type_providers", + "//common/values:cel_byte_string", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//extensions", "//extensions:encoders_compiler_library", "//extensions:encoders_runtime_library", "//extensions:extension_library", + "//parser:macro", + "//runtime", + "//runtime:function_binding", + "//runtime:lite_runtime", + "//runtime:lite_runtime_factory", + "//testing:cel_runtime_flavor", + ":test_helpers", + "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelExtensionsTest", + srcs = ["CelExtensionsTest.java"], + test_class = "dev.cel.extensions.CelExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", + "//compiler:compiler_builder", + "//extensions", + "//extensions:extension_library", + "//extensions:math", + "//extensions:strings", + "//runtime", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelListsExtensionsTest", + srcs = ["CelListsExtensionsTest.java"], + test_class = "dev.cel.extensions.CelListsExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:container", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//extensions", + "//extensions:extension_library", "//extensions:lists", "//extensions:lists_compiler_library", "//extensions:lists_runtime_library", + "//parser:macro", + "//runtime", + "//runtime:function_binding", + "//runtime:lite_runtime", + "//runtime:lite_runtime_factory", + "//runtime:runtime_equality", + "//runtime:runtime_helpers", + "//testing:cel_runtime_flavor", + "//validator", + "//validator/validators:homogeneous_literal", + "//validator:validator_builder", + ":test_helpers", + "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelMathExtensionsTest", + srcs = ["CelMathExtensionsTest.java"], + test_class = "dev.cel.extensions.CelMathExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//extensions", + "//extensions:extension_library", "//extensions:math", "//extensions:math_compiler_library", "//extensions:math_runtime_library", + "//runtime", + "//runtime:function_binding", + "//runtime:lite_runtime", + "//runtime:lite_runtime_factory", + "//runtime:partial_vars", + "//testing:cel_runtime_flavor", + "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelNativeTypesExtensionsTest", + srcs = ["CelNativeTypesExtensionsTest.java"], + test_class = "dev.cel.extensions.CelNativeTypesExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/exceptions:attribute_not_found", + "//common/exceptions:invalid_argument", + "//common/types", + "//common/types:type_providers", + "//common/values", + "//common/values:cel_byte_string", + "//common/values:cel_value_provider", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:container", + "//compiler", + "//compiler:compiler_builder", + "//extensions", "//extensions:native", "//extensions:optional_library", + "//parser:macro", + "//runtime", + "//runtime:partial_vars", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelOptionalLibraryTest", + srcs = ["CelOptionalLibraryTest.java"], + test_class = "dev.cel.extensions.CelOptionalLibraryTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/ast", + "//common/types", + "//common/types:type_providers", + "//common/values", + "//common/values:cel_byte_string", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:cel_var_decl", + "//common:container", + "//common:options", + "//compiler:compiler_builder", + "//extensions", + "//extensions:extension_library", + "//extensions:optional_library", + "//parser:macro", + "//runtime", + "//runtime:function_binding", + "//runtime:partial_vars", + "//runtime:unknown_attributes", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelProtoExtensionsTest", + srcs = ["CelProtoExtensionsTest.java"], + test_class = "dev.cel.extensions.CelProtoExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:container", + "//common:options", + "//compiler:compiler_builder", + "//extensions", + "//extensions:extension_library", + "//parser:macro", + "//runtime", + "//runtime:function_binding", + "//testing:cel_runtime_flavor", + ":test_helpers", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelRegexExtensionsTest", + srcs = ["CelRegexExtensionsTest.java"], + test_class = "dev.cel.extensions.CelRegexExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//extensions", + "//extensions:extension_library", "//extensions:regex", "//extensions:regex_compiler_library", "//extensions:regex_runtime_library", + "//parser:macro", + "//runtime", + "//runtime:function_binding", + "//runtime:lite_runtime", + "//runtime:lite_runtime_factory", + "//testing:cel_runtime_flavor", + ":test_helpers", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelSetsExtensionsTest", + srcs = ["CelSetsExtensionsTest.java"], + test_class = "dev.cel.extensions.CelSetsExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:container", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//extensions", + "//extensions:extension_library", "//extensions:sets", "//extensions:sets_compiler_library", "//extensions:sets_runtime_library", - "//extensions:strings", - "//extensions:strings_compiler_library", - "//extensions:strings_runtime_library", "//parser:macro", - "//parser:unparser", "//runtime", "//runtime:function_binding", "//runtime:lite_runtime", "//runtime:lite_runtime_factory", - "//runtime:partial_vars", "//runtime:runtime_equality", "//runtime:runtime_helpers", - "//runtime:unknown_attributes", "//testing:cel_runtime_flavor", - "//validator", - "//validator:validator_builder", - "//validator/validators:homogeneous_literal", - "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + ":test_helpers", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", "@maven//:com_google_guava_guava", - "@maven//:com_google_protobuf_protobuf_java", # unuseddeps: keep + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", - "@maven_android//:com_google_protobuf_protobuf_javalite", ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "CelStringExtensionsTest", + srcs = ["CelStringExtensionsTest.java"], + test_class = "dev.cel.extensions.CelStringExtensionsTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//extensions", + "//extensions:extension_library", + "//extensions:strings", + "//extensions:strings_compiler_library", + "//extensions:strings_runtime_library", + "//parser:macro", + "//runtime", + "//runtime:function_binding", + "//runtime:lite_runtime", + "//runtime:lite_runtime_factory", + "//testing:cel_runtime_flavor", + ":test_helpers", + "@cel_spec//proto/cel/expr/conformance/test:simple_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/optimizer/src/test/java/dev/cel/optimizer/BUILD.bazel b/optimizer/src/test/java/dev/cel/optimizer/BUILD.bazel index fb14fd628..271d64135 100644 --- a/optimizer/src/test/java/dev/cel/optimizer/BUILD.bazel +++ b/optimizer/src/test/java/dev/cel/optimizer/BUILD.bazel @@ -1,17 +1,21 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], ) -java_library( - name = "tests", - testonly = 1, - srcs = glob(["*.java"]), +java_test( + name = "AstMutatorTest", + srcs = ["AstMutatorTest.java"], + test_class = "dev.cel.optimizer.AstMutatorTest", deps = [ "//:java_truth", "//bundle:cel", + "//common/ast", + "//common/ast:mutable_expr", + "//common/navigation", + "//common/navigation:common", + "//common/types", "//common:cel_ast", "//common:cel_function_decl", "//common:cel_overload_decl", @@ -20,19 +24,9 @@ java_library( "//common:container", "//common:mutable_ast", "//common:options", - "//common/ast", - "//common/ast:mutable_expr", - "//common/navigation", - "//common/navigation:common", - "//common/types", "//extensions", "//extensions:optional_library", - "//optimizer:ast_optimizer", "//optimizer:mutable_ast", - "//optimizer:optimization_exception", - "//optimizer:optimizer_builder", - "//optimizer:optimizer_impl", - "//optimizer:optimizer_listener", "//parser:macro", "//parser:unparser", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", @@ -42,11 +36,25 @@ java_library( ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "CelOptimizerImplTest", + srcs = ["CelOptimizerImplTest.java"], + test_class = "dev.cel.optimizer.CelOptimizerImplTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/ast", + "//common:cel_ast", + "//common:cel_source", + "//common:cel_validation_exception", + "//common:options", + "//optimizer:ast_optimizer", + "//optimizer:optimization_exception", + "//optimizer:optimizer_builder", + "//optimizer:optimizer_impl", + "//optimizer:optimizer_listener", + "//parser:macro", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/optimizer/src/test/java/dev/cel/optimizer/optimizers/BUILD.bazel b/optimizer/src/test/java/dev/cel/optimizer/optimizers/BUILD.bazel index 13d8e1e46..639e7aeeb 100644 --- a/optimizer/src/test/java/dev/cel/optimizer/optimizers/BUILD.bazel +++ b/optimizer/src/test/java/dev/cel/optimizer/optimizers/BUILD.bazel @@ -1,69 +1,215 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], ) -java_library( - name = "tests", - testonly = 1, - srcs = glob(["*.java"]), - resources = ["//optimizer/src/test/resources:baselines"], +java_test( + name = "ConstantFoldingOptimizerTest", + srcs = ["ConstantFoldingOptimizerTest.java"], + resources = [ + "//optimizer/src/test/resources:baselines", + ], + test_class = "dev.cel.optimizer.optimizers.ConstantFoldingOptimizerTest", deps = [ + "//:java_truth", "//bundle:cel", + "//common/ast", + "//common/types", "//common:cel_ast", "//common:cel_source", "//common:compiler_common", "//common:container", - "//common:mutable_ast", "//common:options", - "//common:proto_ast", + "//extensions", + "//extensions:bindings", + "//extensions:optional_library", + "//optimizer", + "//optimizer/optimizers:constant_folding", + "//optimizer:ast_optimizer", + "//optimizer:optimization_exception", + "//optimizer:optimizer_builder", + "//parser:macro", + "//parser:unparser", + "//runtime", + "//runtime:function_binding", + "//runtime:program", + "//testing:cel_runtime_flavor", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "InliningOptimizerTest", + srcs = ["InliningOptimizerTest.java"], + resources = [ + "//optimizer/src/test/resources:baselines", + ], + test_class = "dev.cel.optimizer.optimizers.InliningOptimizerTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/ast", + "//common/types", + "//common:cel_ast", + "//common:cel_source", + "//common:compiler_common", + "//common:container", + "//common:options", + "//extensions", + "//extensions:bindings", + "//optimizer", + "//optimizer/optimizers:common_subexpression_elimination", + "//optimizer/optimizers:inlining", + "//optimizer:ast_optimizer", + "//optimizer:optimization_exception", + "//optimizer:optimizer_builder", + "//parser:macro", + "//parser:unparser", + "//runtime", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "SelectOptimizerTest", + srcs = ["SelectOptimizerTest.java"], + resources = [ + "//optimizer/src/test/resources:baselines", + ], + test_class = "dev.cel.optimizer.optimizers.SelectOptimizerTest", + deps = [ + "//:java_truth", + "//bundle:cel", "//common/ast", "//common/navigation:mutable_navigation", "//common/types", "//common/values", "//common/values:cel_byte_string", + "//common:cel_ast", + "//common:cel_source", + "//common:compiler_common", + "//common:container", + "//common:mutable_ast", + "//common:options", + "//common:proto_ast", "//extensions", "//extensions:bindings", "//extensions:optional_library", - # "//java/com/google/testing/testsize:annotations", "//optimizer", + "//optimizer/optimizers:select_optimizer", "//optimizer:ast_optimizer", "//optimizer:optimization_exception", "//optimizer:optimizer_builder", + "//parser:macro", + "//parser:unparser", + "//runtime", + "//runtime:partial_vars", + "//runtime:program", + "//runtime:unknown_attributes", + "//testing:cel_runtime_flavor", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:syntax_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:com_google_truth_extensions_truth_proto_extension", + "@maven//:junit_junit", + ], +) + +java_test( + name = "SubexpressionOptimizerBaselineTest", + srcs = ["SubexpressionOptimizerBaselineTest.java"], + resources = [ + "//optimizer/src/test/resources:baselines", + ], + test_class = "dev.cel.optimizer.optimizers.SubexpressionOptimizerBaselineTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/ast", + "//common/types", + "//common:cel_ast", + "//common:cel_source", + "//common:compiler_common", + "//common:container", + "//common:options", + "//extensions", + "//extensions:bindings", + "//extensions:optional_library", + "//optimizer", "//optimizer/optimizers:common_subexpression_elimination", "//optimizer/optimizers:constant_folding", - "//optimizer/optimizers:inlining", - "//optimizer/optimizers:select_optimizer", + "//optimizer:ast_optimizer", + "//optimizer:optimization_exception", + "//optimizer:optimizer_builder", "//parser:macro", "//parser:unparser", "//runtime", "//runtime:function_binding", "//runtime:partial_vars", "//runtime:program", - "//runtime:unknown_attributes", "//testing:baseline_test_case", "//testing:cel_runtime_flavor", - "@maven//:junit_junit", - "@maven//:com_google_testparameterinjector_test_parameter_injector", - "//:java_truth", - "@maven//:com_google_truth_extensions_truth_proto_extension", - "@cel_spec//proto/cel/expr:syntax_java_proto", - "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], ) -junit4_test_suites( - name = "test_suites", - shard_count = 4, - sizes = [ - "small", - "medium", +java_test( + name = "SubexpressionOptimizerTest", + srcs = ["SubexpressionOptimizerTest.java"], + resources = [ + "//optimizer/src/test/resources:baselines", + ], + test_class = "dev.cel.optimizer.optimizers.SubexpressionOptimizerTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/ast", + "//common/navigation:mutable_navigation", + "//common/types", + "//common:cel_ast", + "//common:cel_source", + "//common:compiler_common", + "//common:mutable_ast", + "//common:options", + "//extensions", + "//extensions:bindings", + "//extensions:optional_library", + "//optimizer", + "//optimizer/optimizers:common_subexpression_elimination", + "//optimizer/optimizers:constant_folding", + "//optimizer/optimizers:select_optimizer", + "//optimizer:ast_optimizer", + "//optimizer:optimization_exception", + "//optimizer:optimizer_builder", + "//parser:macro", + "//parser:unparser", + "//runtime", + "//runtime:function_binding", + "//runtime:partial_vars", + "//runtime:program", + "//runtime:unknown_attributes", + "//testing:cel_runtime_flavor", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/parser/src/test/java/dev/cel/parser/BUILD.bazel b/parser/src/test/java/dev/cel/parser/BUILD.bazel index d5de43d06..e2891bc63 100644 --- a/parser/src/test/java/dev/cel/parser/BUILD.bazel +++ b/parser/src/test/java/dev/cel/parser/BUILD.bazel @@ -1,6 +1,5 @@ -load("@rules_java//java:defs.bzl", "java_library") +load("@rules_java//java:defs.bzl", "java_test") load("//:cel_android_rules.bzl", "cel_android_local_test") -load("//:testing.bzl", "junit4_test_suites") package( default_applicable_licenses = [ @@ -12,64 +11,209 @@ ANDROID_TESTS = [ "CelLiteParserAndroidTest.java", ] -java_library( - name = "tests", - testonly = True, - srcs = glob( - ["*Test.java"], - exclude = ["TmpPrattParserTest.java"] + ANDROID_TESTS, - ), - resources = ["//parser/src/test/resources:baselines"], +cel_android_local_test( + name = "android_tests", + srcs = ANDROID_TESTS, + test_class = "dev.cel.parser.CelLiteParserAndroidTest", + deps = [ + "//:java_truth", + "//common:cel_validation_result_android", + "//parser:lite_parser_factory_android", + "//parser:parser_builder_android", + ], +) + +java_test( + name = "CelLiteParserFactoryTest", + srcs = ["CelLiteParserFactoryTest.java"], + resources = [ + "//parser/src/test/resources:baselines", + ], + test_class = "dev.cel.parser.CelLiteParserFactoryTest", deps = [ "//:java_truth", + "//common/ast", + "//common:cel_ast", + "//common:cel_source", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", + "//parser:lite_parser_factory", + "//parser:macro", + "//parser:parser_builder", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelMacroExprFactoryTest", + srcs = ["CelMacroExprFactoryTest.java"], + resources = [ + "//parser/src/test/resources:baselines", + ], + test_class = "dev.cel.parser.CelMacroExprFactoryTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/internal", + "//common/values:cel_byte_string", + "//common:cel_issue", + "//common:source_location", + "//parser:macro", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelMacroTest", + srcs = ["CelMacroTest.java"], + resources = [ + "//parser/src/test/resources:baselines", + ], + test_class = "dev.cel.parser.CelMacroTest", + deps = [ + "//:java_truth", + "//common/ast", + "//parser:macro", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelParserImplTest", + srcs = ["CelParserImplTest.java"], + resources = [ + "//parser/src/test/resources:baselines", + ], + test_class = "dev.cel.parser.CelParserImplTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/internal", + "//common/values:cel_byte_string", "//common:cel_ast", "//common:cel_issue", "//common:cel_source", "//common:cel_validation_exception", "//common:cel_validation_result", - "//common:operator", "//common:options", - "//common:proto_ast", "//common:source_location", + "//parser", + "//parser:macro", + "//parser:parser_builder", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelParserParameterizedTest", + srcs = ["CelParserParameterizedTest.java"], + resources = [ + "//parser/src/test/resources:baselines", + ], + test_class = "dev.cel.parser.CelParserParameterizedTest", + deps = [ + "//:java_truth", "//common/ast", "//common/internal", "//common/values:cel_byte_string", - "//extensions:optional_library", + "//common:cel_ast", + "//common:cel_source", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", + "//common:proto_ast", "//parser", - "//parser:lite_parser_factory", "//parser:macro", "//parser:parser_builder", - "//parser:pratt_parser", - "//parser:unparser", - "//parser:unparser_visitor", "//testing:adorner", "//testing:baseline_test_case", "@cel_spec//proto/cel/expr:syntax_java_proto", "@maven//:com_google_guava_guava", - "@maven//:com_google_guava_guava_testlib", "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], ) -cel_android_local_test( - name = "android_tests", - srcs = ANDROID_TESTS, - test_class = "dev.cel.parser.CelLiteParserAndroidTest", +java_test( + name = "CelStandardMacroTest", + srcs = ["CelStandardMacroTest.java"], + resources = [ + "//parser/src/test/resources:baselines", + ], + test_class = "dev.cel.parser.CelStandardMacroTest", deps = [ "//:java_truth", - "//common:cel_validation_result_android", - "//parser:lite_parser_factory_android", - "//parser:parser_builder_android", + "//common:operator", + "//parser:macro", + "@maven//:com_google_guava_guava", + "@maven//:com_google_guava_guava_testlib", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelUnparserImplTest", + srcs = ["CelUnparserImplTest.java"], + resources = [ + "//parser/src/test/resources:baselines", + ], + test_class = "dev.cel.parser.CelUnparserImplTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common:cel_ast", + "//common:cel_source", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", + "//common:proto_ast", + "//extensions:optional_library", + "//parser", + "//parser:macro", + "//parser:parser_builder", + "//parser:unparser", + "//parser:unparser_visitor", + "@cel_spec//proto/cel/expr:syntax_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "PrattParserTest", + srcs = ["PrattParserTest.java"], + resources = [ + "//parser/src/test/resources:baselines", + ], + test_class = "dev.cel.parser.PrattParserTest", + deps = [ + "//common/ast", + "//common/internal", + "//common:cel_ast", + "//common:cel_source", + "//common:cel_validation_exception", + "//common:cel_validation_result", + "//common:options", + "//common:proto_ast", + "//parser:macro", + "//parser:pratt_parser", + "//testing:adorner", + "//testing:baseline_test_case", + "@cel_spec//proto/cel/expr:syntax_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/policy/src/test/java/dev/cel/policy/BUILD.bazel b/policy/src/test/java/dev/cel/policy/BUILD.bazel index 4b8d757db..4283baa81 100644 --- a/policy/src/test/java/dev/cel/policy/BUILD.bazel +++ b/policy/src/test/java/dev/cel/policy/BUILD.bazel @@ -1,48 +1,64 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_library", "java_test") package( default_applicable_licenses = ["//:license"], ) java_library( - name = "tests", + name = "test_helpers", testonly = True, - srcs = glob(["*.java"]), + srcs = [ + "PolicyTestHelper.java", + ], data = [ "@cel_policy//conformance:testdata", ], resources = [ "//testing:policy_test_resources", ], + deps = [ + "@bazel_tools//tools/java/runfiles:runfiles", + "@maven//:com_google_guava_guava", + "@maven//:org_yaml_snakeyaml", + ], +) + +java_test( + name = "CelPolicyCompilerImplTest", + srcs = ["CelPolicyCompilerImplTest.java"], + data = [ + "@cel_policy//conformance:testdata", + ], + resources = [ + "//testing:policy_test_resources", + ], + test_class = "dev.cel.policy.CelPolicyCompilerImplTest", deps = [ "//:java_truth", "//bundle:cel", "//bundle:environment", "//bundle:environment_yaml_parser", - "//common:cel_ast", - "//common:options", "//common/formats:value_string", - "//common/internal", "//common/resources/testdata/proto3:standalone_global_enum_java_proto", "//common/types", + "//common:cel_ast", + "//common:options", "//extensions:optional_library", "//parser:macro", "//parser:unparser", "//policy", + "//policy/testing:k8s_test_tag_handler", "//policy:compiled_rule", "//policy:compiler_factory", "//policy:parser", "//policy:parser_factory", "//policy:rule_composer", - "//policy:source", "//policy:validation_exception", - "//policy/testing:k8s_test_tag_handler", "//runtime", "//runtime:function_binding", - "//testing:cel_runtime_flavor", "//testing/protos:single_file_java_proto", - "@bazel_tools//tools/java/runfiles", + "//testing:cel_runtime_flavor", + ":test_helpers", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_testparameterinjector_test_parameter_injector", @@ -51,11 +67,50 @@ java_library( ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "CelPolicySourceTest", + srcs = ["CelPolicySourceTest.java"], + data = [ + "@cel_policy//conformance:testdata", + ], + resources = [ + "//testing:policy_test_resources", + ], + test_class = "dev.cel.policy.CelPolicySourceTest", + deps = [ + "//:java_truth", + "//common/internal", + "//policy:source", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelPolicyYamlParserTest", + srcs = ["CelPolicyYamlParserTest.java"], + data = [ + "@cel_policy//conformance:testdata", + ], + resources = [ + "//testing:policy_test_resources", + ], + test_class = "dev.cel.policy.CelPolicyYamlParserTest", + deps = [ + "//:java_truth", + "//common/formats:value_string", + "//common/internal", + "//policy", + "//policy/testing:k8s_test_tag_handler", + "//policy:parser", + "//policy:parser_factory", + "//policy:source", + "//policy:validation_exception", + ":test_helpers", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven//:org_yaml_snakeyaml", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/policy/src/test/java/dev/cel/policy/tools/BUILD.bazel b/policy/src/test/java/dev/cel/policy/tools/BUILD.bazel index 8a3c55c40..82751941d 100644 --- a/policy/src/test/java/dev/cel/policy/tools/BUILD.bazel +++ b/policy/src/test/java/dev/cel/policy/tools/BUILD.bazel @@ -1,6 +1,5 @@ -load("@rules_java//java:defs.bzl", "java_library") +load("@rules_java//java:defs.bzl", "java_test") load("@rules_proto//proto:defs.bzl", "proto_descriptor_set") -load("//:testing.bzl", "junit4_test_suites") load("//policy/tools:compile_cel_policy.bzl", "compile_cel_policy") package( @@ -22,15 +21,15 @@ compile_cel_policy( simple_variables = True, ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*Test.java"]), +java_test( + name = "CelPolicyCompilerToolTest", + srcs = ["CelPolicyCompilerToolTest.java"], data = [ ":compiled_test_policy.binarypb", ":test_all_types_fds", "//testing/environment:proto3_message_variables", ], + test_class = "dev.cel.policy.tools.CelPolicyCompilerToolTest", deps = [ "//:java_truth", "//common:cel_ast", @@ -39,9 +38,9 @@ java_library( "//extensions:optional_library", "//policy/tools", "//runtime", - "@bazel_tools//tools/java/runfiles", - "@cel_spec//proto/cel/expr:checked_java_proto", + "@bazel_tools//tools/java/runfiles:runfiles", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", @@ -49,12 +48,3 @@ java_library( "@maven//:junit_junit", ], ) - -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", - ], - src_dir = "src/test/java", - deps = [":tests"], -) diff --git a/runtime/src/test/java/dev/cel/runtime/BUILD.bazel b/runtime/src/test/java/dev/cel/runtime/BUILD.bazel index 61b0cd7a2..9a13889fa 100644 --- a/runtime/src/test/java/dev/cel/runtime/BUILD.bazel +++ b/runtime/src/test/java/dev/cel/runtime/BUILD.bazel @@ -1,8 +1,6 @@ -load("@rules_java//java:defs.bzl", "java_library") +load("@rules_java//java:defs.bzl", "java_library", "java_test") load("//:cel_android_rules.bzl", "cel_android_local_test") -load("//:testing.bzl", "junit4_test_suites") -# Invalidate cache after file removal package( default_applicable_licenses = ["//:license"], default_testonly = True, @@ -12,259 +10,739 @@ ANDROID_TESTS = [ "CelLiteRuntimeAndroidTest.java", ] +cel_android_local_test( + name = "android_tests", + srcs = ANDROID_TESTS, + test_class = "dev.cel.runtime.CelLiteRuntimeAndroidTest", + deps = [ + "//:java_truth", + "//common:cel_ast_android", + "//common:options", + "//common/internal:proto_time_utils_android", + "//common/values:cel_byte_string", + "//common/values:cel_value_provider_android", + "//common/values:proto_message_lite_value_provider_android", + "//extensions:comprehensions_runtime_library_android", + "//extensions:encoders_runtime_library_android", + "//extensions:lists_runtime_library_android", + "//extensions:math_runtime_library_android", + "//extensions:regex_runtime_library_android", + "//extensions:sets_runtime_library_android", + "//extensions:strings_runtime_library_android", + "//runtime:evaluation_exception", + "//runtime:function_binding_android", + "//runtime:late_function_binding_android", + "//runtime:lite_runtime_android", + "//runtime:lite_runtime_factory_android", + "//runtime:lite_runtime_impl_android", + "//runtime:partial_vars_android", + "//runtime:standard_functions_android", + "//runtime:unknown_attributes_android", + "//runtime/src/main/java/dev/cel/runtime:program_android", + "//runtime/standard:equals_android", + "//runtime/standard:int_android", + "//testing/protos:test_all_types_cel_java_proto2_lite", + "//testing/protos:test_all_types_cel_java_proto3_lite", + "//testing/src/main/java/dev/cel/testing/compiled:compiled_expr_utils_android", + "@cel_spec//proto/cel/expr:checked_java_proto_lite", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto_lite", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto_lite", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven_android//:com_google_guava_guava", + "@maven_android//:com_google_protobuf_protobuf_javalite", + ], +) + java_library( - name = "tests", - testonly = 1, - srcs = glob( - ["*.java"], - # keep sorted - exclude = [ - "AbstractPlannerInterpreterTest.java", - "CelLiteInterpreterTest.java", - "InterpreterTest.java", - "PlannerInterpreterTest.java", - ] + ANDROID_TESTS, - ), + name = "abstract_planner_interpreter_test", + testonly = True, + srcs = [ + "AbstractPlannerInterpreterTest.java", + ], + deps = [ + "//common/types", + "//common:container", + "//common:options", + "//runtime:function_binding", + "//runtime:unknown_attributes", + "//testing:base_interpreter_test", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "AccumulatedUnknownsTest", + srcs = ["AccumulatedUnknownsTest.java"], + test_class = "dev.cel.runtime.AccumulatedUnknownsTest", + deps = [ + "//:java_truth", + "//runtime:accumulated_unknowns", + "//runtime:interpreter_util", + "//runtime:unknown_attributes", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ActivationTest", + srcs = ["ActivationTest.java"], + test_class = "dev.cel.runtime.ActivationTest", + deps = [ + "//:java_truth", + "//common/values", + "//common:options", + "//runtime:activation", + "//runtime:interpretable", + "//runtime:proto_message_activation_factory", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelAsyncDrainStrategyTest", + srcs = ["CelAsyncDrainStrategyTest.java"], + test_class = "dev.cel.runtime.CelAsyncDrainStrategyTest", + deps = [ + "//:java_truth", + "//runtime", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelAsyncEvaluationOptionsTest", + srcs = ["CelAsyncEvaluationOptionsTest.java"], + test_class = "dev.cel.runtime.CelAsyncEvaluationOptionsTest", + deps = [ + "//:java_truth", + "//runtime", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven//:org_jspecify_jspecify", + ], +) + +java_test( + name = "CelAttributeParserTest", + srcs = ["CelAttributeParserTest.java"], + test_class = "dev.cel.runtime.CelAttributeParserTest", + deps = [ + "//:java_truth", + "//runtime:unknown_attributes", + "//runtime:unknown_options", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelAttributePatternTest", + srcs = ["CelAttributePatternTest.java"], + test_class = "dev.cel.runtime.CelAttributePatternTest", + deps = [ + "//:java_truth", + "//runtime:unknown_attributes", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelAttributeTest", + srcs = ["CelAttributeTest.java"], + test_class = "dev.cel.runtime.CelAttributeTest", + deps = [ + "//:java_truth", + "//runtime:unknown_attributes", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelEvaluationExceptionBuilderTest", + srcs = ["CelEvaluationExceptionBuilderTest.java"], + test_class = "dev.cel.runtime.CelEvaluationExceptionBuilderTest", + deps = [ + "//:java_truth", + "//common/exceptions:bad_format", + "//common/exceptions:runtime_exception", + "//common:cel_exception", + "//common:error_codes", + "//runtime", + "//runtime:evaluation_exception_builder", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelLateFunctionBindingsTest", + srcs = ["CelLateFunctionBindingsTest.java"], + test_class = "dev.cel.runtime.CelLateFunctionBindingsTest", + deps = [ + "//:java_truth", + "//common:cel_exception", + "//common:error_codes", + "//runtime", + "//runtime:function_binding", + "//runtime:function_resolver", + "//runtime:late_function_binding", + "//runtime:resolved_overload", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelLiteInterpreterTest", + srcs = ["CelLiteInterpreterTest.java"], + resources = [ + "//runtime/testdata", + ], + test_class = "dev.cel.runtime.CelLiteInterpreterTest", + deps = [ + "//common/values:proto_message_lite_value_provider", + "//common:options", + "//extensions:optional_library", + "//runtime", + "//testing/protos:test_all_types_cel_java_proto2", + "//testing/protos:test_all_types_cel_java_proto3", + "//testing:base_interpreter_test", + ":abstract_planner_interpreter_test", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelLiteRuntimeTest", + srcs = ["CelLiteRuntimeTest.java"], + test_class = "dev.cel.runtime.CelLiteRuntimeTest", + deps = [ + "//:java_truth", + "//common/internal:proto_time_utils", + "//common/types", + "//common/types:message_type_provider", + "//common/values", + "//common/values:cel_byte_string", + "//common/values:proto_message_lite_value_provider", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:compiler_common", + "//common:container", + "//compiler", + "//compiler:compiler_builder", + "//parser:macro", + "//protobuf:cel_lite_descriptor", + "//runtime", + "//runtime/standard:equals", + "//runtime/standard:standard_overload", + "//runtime/standard:type", + "//runtime:function_binding", + "//runtime:function_resolver", + "//runtime:late_function_binding", + "//runtime:lite_runtime", + "//runtime:lite_runtime_factory", + "//runtime:partial_vars", + "//runtime:program", + "//runtime:standard_functions", + "//testing/protos:message_with_enum_cel_java_proto", + "//testing/protos:message_with_enum_java_proto", + "//testing/protos:multi_file_cel_java_proto", + "//testing/protos:multi_file_java_proto", + "//testing/protos:single_file_java_proto", + "//testing/protos:test_all_types_cel_java_proto2", + "//testing/protos:test_all_types_cel_java_proto3", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_protobuf_protobuf_java_util", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:com_google_truth_extensions_truth_proto_extension", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelLiteRuntimeVersionSkewTest", + srcs = ["CelLiteRuntimeVersionSkewTest.java"], + test_class = "dev.cel.runtime.CelLiteRuntimeVersionSkewTest", deps = [ - "//:auto_value", "//:java_truth", "//bundle:cel", + "//common/ast", + "//common/ast:cel_block", + "//common/internal:proto_time_utils", + "//common/types", + "//common/values:cel_byte_string", + "//common/values:proto_message_lite_value", + "//common/values:proto_message_lite_value_provider", "//common:cel_ast", - "//common:cel_descriptor_util", - "//common:cel_descriptors", "//common:cel_exception", "//common:cel_function_decl", "//common:cel_overload_decl", "//common:cel_source", "//common:compiler_common", "//common:container", - "//common:error_codes", "//common:options", "//common:proto_ast", - "//common:proto_v1alpha1_ast", - "//common/ast", - "//common/ast:cel_block", - "//common/exceptions:bad_format", + "//compiler:compiler_builder", + "//extensions", + "//optimizer", + "//optimizer/optimizers:common_subexpression_elimination", + "//optimizer/optimizers:select_optimizer", + "//optimizer:optimizer_builder", + "//parser:macro", + "//protobuf:cel_lite_descriptor", + "//runtime", + "//runtime:function_binding", + "//runtime:function_resolver", + "//runtime:late_function_binding", + "//runtime:lite_runtime", + "//runtime:lite_runtime_factory", + "//runtime:partial_vars", + "//runtime:program", + "//runtime:standard_functions", + "//runtime:unknown_attributes", + "//testing/protos:test_all_types_cel_java_proto2", + "//testing/protos:test_all_types_cel_java_proto3", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven//:org_jspecify_jspecify", + ], +) + +java_test( + name = "CelResolvedOverloadTest", + srcs = ["CelResolvedOverloadTest.java"], + test_class = "dev.cel.runtime.CelResolvedOverloadTest", + deps = [ + "//:java_truth", + "//common:cel_exception", + "//runtime", + "//runtime:resolved_overload", + "//runtime:unknown_attributes", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelRuntimeLegacyImplTest", + srcs = ["CelRuntimeLegacyImplTest.java"], + test_class = "dev.cel.runtime.CelRuntimeLegacyImplTest", + deps = [ + "//:java_truth", "//common/exceptions:divide_by_zero", - "//common/exceptions:numeric_overflow", - "//common/exceptions:overload_not_found", - "//common/exceptions:runtime_exception", - "//common/internal:cel_descriptor_pools", - "//common/internal:converter", - "//common/internal:default_message_factory", - "//common/internal:dynamic_proto", - "//common/internal:proto_message_factory", - "//common/internal:proto_time_utils", - "//common/internal:well_known_proto", + "//common:cel_ast", + "//common:cel_exception", + "//common:compiler_common", + "//compiler", + "//compiler:compiler_builder", + "//runtime", + "//runtime:function_binding", + "//runtime:function_resolver", + "//runtime:partial_vars", + "//runtime:program", + "//runtime:standard_functions", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelRuntimeTest", + srcs = ["CelRuntimeTest.java"], + test_class = "dev.cel.runtime.CelRuntimeTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/ast", + "//common/types", + "//common/types:cel_v1alpha1_types", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_source", + "//common:compiler_common", + "//common:container", + "//common:error_codes", + "//common:options", + "//common:proto_v1alpha1_ast", + "//compiler", + "//compiler:compiler_builder", + "//extensions", + "//parser:macro", + "//parser:unparser", + "//runtime", + "//runtime:evaluation_listener", + "//runtime:function_binding", + "//runtime:partial_vars", + "//runtime:program", + "//runtime:unknown_attributes", + "//testing:cel_runtime_flavor", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", + "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelStandardFunctionsTest", + srcs = ["CelStandardFunctionsTest.java"], + test_class = "dev.cel.runtime.CelStandardFunctionsTest", + deps = [ + "//:java_truth", + "//common:cel_ast", + "//common:cel_exception", + "//common:compiler_common", + "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//runtime", + "//runtime/standard:add", + "//runtime/standard:standard_overload", + "//runtime/standard:subtract", + "//runtime:program", + "//runtime:standard_functions", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelUnknownSetTest", + srcs = ["CelUnknownSetTest.java"], + test_class = "dev.cel.runtime.CelUnknownSetTest", + deps = [ + "//:java_truth", + "//runtime:unknown_attributes", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelVariableResolverTest", + srcs = ["CelVariableResolverTest.java"], + test_class = "dev.cel.runtime.CelVariableResolverTest", + deps = [ + "//:java_truth", + "//runtime", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "DefaultDispatcherTest", + srcs = ["DefaultDispatcherTest.java"], + test_class = "dev.cel.runtime.DefaultDispatcherTest", + deps = [ + "//:java_truth", + "//common:cel_exception", + "//runtime", + "//runtime:dispatcher", + "//runtime:function_resolver", + "//runtime:resolved_overload", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "DefaultInterpreterTest", + srcs = ["DefaultInterpreterTest.java"], + test_class = "dev.cel.runtime.DefaultInterpreterTest", + deps = [ + "//:java_truth", "//common/types", - "//common/types:cel_v1alpha1_types", "//common/types:default_type_provider", - "//common/types:message_type_provider", "//common/values", - "//common/values:cel_byte_string", - "//common/values:proto_message_lite_value", - "//common/values:proto_message_lite_value_provider", + "//common:cel_ast", + "//common:cel_exception", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:compiler_common", + "//common:options", "//compiler", "//compiler:compiler_builder", - "//extensions", - "//extensions:optional_library", - "//optimizer", - "//optimizer:optimizer_builder", - "//optimizer/optimizers:common_subexpression_elimination", - "//optimizer/optimizers:select_optimizer", "//parser:macro", - "//parser:unparser", - "//protobuf:cel_lite_descriptor", "//runtime", - "//runtime:accumulated_unknowns", - "//runtime:activation", + "//runtime/standard:not_strictly_false", + "//runtime/standard:standard_overload", "//runtime:dispatcher", - "//runtime:evaluation_exception_builder", - "//runtime:evaluation_listener", "//runtime:function_binding", "//runtime:function_resolver", "//runtime:interpretable", "//runtime:interpreter", - "//runtime:interpreter_util", - "//runtime:late_function_binding", - "//runtime:lite_runtime", - "//runtime:lite_runtime_factory", - "//runtime:partial_vars", - "//runtime:program", - "//runtime:proto_message_activation_factory", - "//runtime:proto_message_runtime_equality", - "//runtime:proto_message_runtime_helpers", - "//runtime:resolved_overload", "//runtime:runtime_equality", "//runtime:runtime_helpers", - "//runtime:standard_functions", "//runtime:type_resolver", - "//runtime:unknown_attributes", - "//runtime:unknown_options", - "//runtime/standard:add", - "//runtime/standard:equals", - "//runtime/standard:not_strictly_false", - "//runtime/standard:standard_overload", - "//runtime/standard:subtract", - "//runtime/standard:type", - "//testing:cel_runtime_flavor", - "//testing/protos:message_with_enum_cel_java_proto", - "//testing/protos:message_with_enum_java_proto", - "//testing/protos:multi_file_cel_java_proto", - "//testing/protos:multi_file_java_proto", - "//testing/protos:single_file_java_proto", - "//testing/protos:test_all_types_cel_java_proto2", - "//testing/protos:test_all_types_cel_java_proto3", - "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "DescriptorMessageProviderTest", + srcs = ["DescriptorMessageProviderTest.java"], + test_class = "dev.cel.runtime.DescriptorMessageProviderTest", + deps = [ + "//:java_truth", + "//common/exceptions:runtime_exception", + "//common/internal:cel_descriptor_pools", + "//common/internal:default_message_factory", + "//common/internal:proto_message_factory", + "//common/internal:well_known_proto", + "//common/values", + "//common:cel_descriptor_util", + "//common:cel_descriptors", + "//common:error_codes", + "//common:options", + "//runtime", + "//runtime:interpreter", "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", - "@com_google_googleapis//google/api/expr/v1alpha1:expr_java_proto", - "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", - "@maven//:com_google_protobuf_protobuf_java_util", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:com_google_truth_extensions_truth_proto_extension", "@maven//:junit_junit", - "@maven//:org_jspecify_jspecify", - "@maven_android//:com_google_protobuf_protobuf_javalite", ], ) -java_library( - name = "interpreter_test", - testonly = 1, - srcs = [ - "InterpreterTest.java", - ], +java_test( + name = "DescriptorTypeResolverTest", + srcs = ["DescriptorTypeResolverTest.java"], + test_class = "dev.cel.runtime.DescriptorTypeResolverTest", deps = [ - # "//java/com/google/testing/testsize:annotations", - "//testing:base_interpreter_test", - "@maven//:junit_junit", + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common/types:message_type_provider", + "//common/values", + "//common:cel_ast", + "//common:cel_exception", + "//common:compiler_common", + "//common:container", + "//compiler:compiler_builder", + "//extensions:optional_library", + "//runtime", + "//runtime:partial_vars", + "//runtime:program", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], ) -java_library( - name = "abstract_planner_interpreter_test", - testonly = 1, - srcs = ["AbstractPlannerInterpreterTest.java"], +java_test( + name = "FunctionBindingImplTest", + srcs = ["FunctionBindingImplTest.java"], + test_class = "dev.cel.runtime.FunctionBindingImplTest", deps = [ - "//common:container", - "//common:options", - "//common/types", + "//:java_truth", + "//common/exceptions:overload_not_found", + "//common/exceptions:runtime_exception", + "//common:cel_exception", + "//runtime", "//runtime:function_binding", - "//runtime:unknown_attributes", + "//runtime:function_resolver", + "//runtime:resolved_overload", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "InterpreterTest", + srcs = ["InterpreterTest.java"], + test_class = "dev.cel.runtime.InterpreterTest", + deps = [ "//testing:base_interpreter_test", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "MessageFactoryTest", + srcs = ["MessageFactoryTest.java"], + test_class = "dev.cel.runtime.MessageFactoryTest", + deps = [ + "//:java_truth", + "//runtime", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", "@maven//:junit_junit", + "@maven//:org_jspecify_jspecify", ], ) -java_library( - name = "planner_interpreter_test", - testonly = 1, - srcs = [ - "PlannerInterpreterTest.java", - ], +java_test( + name = "PlannerInterpreterTest", + srcs = ["PlannerInterpreterTest.java"], resources = [ "//runtime/testdata", ], + test_class = "dev.cel.runtime.PlannerInterpreterTest", deps = [ - ":abstract_planner_interpreter_test", + "//common/types:type_providers", "//common:cel_ast", "//common:cel_validation_exception", "//common:container", "//common:options", - "//common/types:type_providers", "//extensions", "//runtime", + ":abstract_planner_interpreter_test", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], ) -cel_android_local_test( - name = "android_tests", - srcs = ANDROID_TESTS, - test_class = "dev.cel.runtime.CelLiteRuntimeAndroidTest", +java_test( + name = "ProtoMessageRuntimeEqualityTest", + srcs = ["ProtoMessageRuntimeEqualityTest.java"], + test_class = "dev.cel.runtime.ProtoMessageRuntimeEqualityTest", deps = [ + "//:auto_value", "//:java_truth", - "//common:cel_ast_android", - "//common:options", - "//common/internal:proto_time_utils_android", + "//common/exceptions:runtime_exception", + "//common/internal:cel_descriptor_pools", + "//common/internal:converter", + "//common/internal:default_message_factory", + "//common/internal:dynamic_proto", + "//common/internal:proto_message_factory", + "//common/internal:proto_time_utils", "//common/values:cel_byte_string", - "//common/values:cel_value_provider_android", - "//common/values:proto_message_lite_value_provider_android", - "//extensions:comprehensions_runtime_library_android", - "//extensions:encoders_runtime_library_android", - "//extensions:lists_runtime_library_android", - "//extensions:math_runtime_library_android", - "//extensions:regex_runtime_library_android", - "//extensions:sets_runtime_library_android", - "//extensions:strings_runtime_library_android", - "//runtime:evaluation_exception", - "//runtime:function_binding_android", - "//runtime:late_function_binding_android", - "//runtime:lite_runtime_android", - "//runtime:lite_runtime_factory_android", - "//runtime:lite_runtime_impl_android", - "//runtime:partial_vars_android", - "//runtime:standard_functions_android", - "//runtime:unknown_attributes_android", - "//runtime/src/main/java/dev/cel/runtime:program_android", - "//runtime/standard:equals_android", - "//runtime/standard:int_android", - "//testing/protos:test_all_types_cel_java_proto2_lite", - "//testing/protos:test_all_types_cel_java_proto3_lite", - "//testing/src/main/java/dev/cel/testing/compiled:compiled_expr_utils_android", - "@cel_spec//proto/cel/expr:checked_java_proto_lite", - "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto_lite", - "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto_lite", - "@maven//:com_google_testparameterinjector_test_parameter_injector", - "@maven_android//:com_google_guava_guava", - "@maven_android//:com_google_protobuf_protobuf_javalite", + "//common:cel_descriptor_util", + "//common:cel_descriptors", + "//common:options", + "//runtime:proto_message_runtime_equality", + "//runtime:proto_message_runtime_helpers", + "//runtime:runtime_equality", + "//runtime:runtime_helpers", + "@com_google_googleapis//google/rpc/context:attribute_context_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + "@maven//:org_jspecify_jspecify", ], ) -java_library( - name = "cel_lite_interpreter_test", - testonly = 1, - srcs = [ - "CelLiteInterpreterTest.java", - ], - resources = [ - "//runtime/testdata", - ], +java_test( + name = "ProtoMessageRuntimeHelpersTest", + srcs = ["ProtoMessageRuntimeHelpersTest.java"], + test_class = "dev.cel.runtime.ProtoMessageRuntimeHelpersTest", deps = [ - ":abstract_planner_interpreter_test", + "//:java_truth", + "//common/exceptions:numeric_overflow", + "//common/exceptions:runtime_exception", + "//common/internal:default_message_factory", + "//common/internal:dynamic_proto", + "//common/internal:proto_message_factory", + "//common/values", + "//common/values:cel_byte_string", "//common:options", + "//runtime:proto_message_runtime_helpers", + "//runtime:runtime_helpers", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "RuntimeEqualityTest", + srcs = ["RuntimeEqualityTest.java"], + test_class = "dev.cel.runtime.RuntimeEqualityTest", + deps = [ + "//:java_truth", + "//common/values", "//common/values:proto_message_lite_value_provider", - "//extensions:optional_library", - "//runtime", - "//testing:base_interpreter_test", - "//testing/protos:test_all_types_cel_java_proto2", - "//testing/protos:test_all_types_cel_java_proto3", + "//common:options", + "//protobuf:cel_lite_descriptor", + "//runtime:runtime_equality", + "//runtime:runtime_helpers", + "@cel_spec//proto/cel/expr/conformance/proto2:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", ], ) -junit4_test_suites( - name = "test_suites", - shard_count = 4, - sizes = [ - "small", - "medium", +java_test( + name = "TypeResolverTest", + srcs = ["TypeResolverTest.java"], + test_class = "dev.cel.runtime.TypeResolverTest", + deps = [ + "//:java_truth", + "//common/internal:proto_time_utils", + "//common/types", + "//runtime:type_resolver", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], - src_dir = "src/test/java", +) + +java_test( + name = "UnknownContextTest", + srcs = ["UnknownContextTest.java"], + test_class = "dev.cel.runtime.UnknownContextTest", deps = [ - ":cel_lite_interpreter_test", - ":interpreter_test", - ":planner_interpreter_test", - ":tests", + "//:java_truth", + "//runtime", + "//runtime:interpretable", + "//runtime:partial_vars", + "//runtime:unknown_attributes", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", ], ) diff --git a/runtime/src/test/java/dev/cel/runtime/async/BUILD.bazel b/runtime/src/test/java/dev/cel/runtime/async/BUILD.bazel index 29f08eb74..139b7eb58 100644 --- a/runtime/src/test/java/dev/cel/runtime/async/BUILD.bazel +++ b/runtime/src/test/java/dev/cel/runtime/async/BUILD.bazel @@ -1,5 +1,4 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = [ @@ -7,37 +6,26 @@ package( ], ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*Test.java"]), +java_test( + name = "CelAsyncRuntimeImplTest", + srcs = ["CelAsyncRuntimeImplTest.java"], + test_class = "dev.cel.runtime.async.CelAsyncRuntimeImplTest", deps = [ + "//:java_truth", "//bundle:cel", + "//common/testing", + "//common/types", "//common:cel_ast", "//common:container", "//common:options", - "//common/testing", - "//common/types", - # "//java/com/google/testing/testsize:annotations", "//runtime", + "//runtime/async", "//runtime:unknown_attributes", "//runtime:unknown_options", - "//runtime/async", - "@maven//:junit_junit", - "@maven//:com_google_testparameterinjector_test_parameter_injector", - "//:java_truth", - "@cel_spec//proto/cel/expr:checked_java_proto", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@cel_spec//proto/cel/expr:checked_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], ) - -junit4_test_suites( - name = "test_suites", - shard_count = 4, - sizes = [ - "medium", - ], - src_dir = "src/test/java", - deps = [":tests"], -) diff --git a/runtime/src/test/java/dev/cel/runtime/planner/BUILD.bazel b/runtime/src/test/java/dev/cel/runtime/planner/BUILD.bazel index e883bfde8..d9607ecc6 100644 --- a/runtime/src/test/java/dev/cel/runtime/planner/BUILD.bazel +++ b/runtime/src/test/java/dev/cel/runtime/planner/BUILD.bazel @@ -1,33 +1,207 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], default_testonly = True, ) -java_library( - name = "tests", - testonly = 1, - srcs = glob( - ["*.java"], - ), +java_test( + name = "AsyncCallRecordTest", + srcs = ["AsyncCallRecordTest.java"], + test_class = "dev.cel.runtime.planner.AsyncCallRecordTest", + deps = [ + "//:java_truth", + "//common/values", + "//common:options", + "//runtime", + "//runtime/planner:async_call_state_tracker", + "//runtime:runtime_equality", + "//runtime:runtime_helpers", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "AsyncCallStateTrackerTest", + srcs = ["AsyncCallStateTrackerTest.java"], + test_class = "dev.cel.runtime.planner.AsyncCallStateTrackerTest", + deps = [ + "//:java_truth", + "//common/exceptions:divide_by_zero", + "//common/exceptions:runtime_exception", + "//common/values", + "//common:options", + "//runtime", + "//runtime/planner:async_call_state_tracker", + "//runtime/planner:async_completion_coordinator", + "//runtime/planner:async_gate", + "//runtime:accumulated_unknowns", + "//runtime:runtime_equality", + "//runtime:runtime_helpers", + "@maven//:com_google_code_findbugs_annotations", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven//:org_jspecify_jspecify", + ], +) + +java_test( + name = "AsyncCompletionCoordinatorTest", + srcs = ["AsyncCompletionCoordinatorTest.java"], + test_class = "dev.cel.runtime.planner.AsyncCompletionCoordinatorTest", + deps = [ + "//:java_truth", + "//runtime", + "//runtime/planner:async_completion_coordinator", + "//runtime/planner:async_gate", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "AsyncGateTest", + srcs = ["AsyncGateTest.java"], + test_class = "dev.cel.runtime.planner.AsyncGateTest", + deps = [ + "//:java_truth", + "//runtime/planner:async_gate", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ExecutionFrameTest", + srcs = ["ExecutionFrameTest.java"], + test_class = "dev.cel.runtime.planner.ExecutionFrameTest", + deps = [ + "//:java_truth", + "//common/values", + "//common:options", + "//runtime/planner:planned_interpretable", + "//runtime:function_resolver", + "//runtime:partial_vars", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "OptimizedSelectPlannerTest", + srcs = ["OptimizedSelectPlannerTest.java"], + test_class = "dev.cel.runtime.planner.OptimizedSelectPlannerTest", deps = [ "//:java_truth", "//bundle:cel", + "//common/ast", + "//common/exceptions:attribute_not_found", + "//common/exceptions:invalid_argument", + "//common/exceptions:runtime_exception", + "//common/internal:cel_descriptor_pools", + "//common/internal:default_message_factory", + "//common/internal:dynamic_proto", + "//common/types", + "//common/types:default_type_provider", + "//common/types:message_type_provider", + "//common/types:type_providers", + "//common/values", + "//common/values:cel_byte_string", + "//common/values:cel_value_provider", + "//common/values:proto_message_value", + "//common/values:proto_message_value_provider", "//common:cel_ast", "//common:cel_descriptor_util", "//common:cel_function_decl", "//common:cel_overload_decl", "//common:cel_source", "//common:container", + "//common:options", + "//compiler:compiler_builder", + "//extensions", + "//optimizer", + "//optimizer/optimizers:select_optimizer", + "//optimizer:optimizer_builder", + "//parser:macro", + "//runtime", + "//runtime/planner:optimized_select_planner", + "//runtime/planner:planned_program", + "//runtime/planner:program_planner", + "//runtime:dispatcher", + "//runtime:function_binding", + "//runtime:function_resolver", + "//runtime:partial_vars", + "//runtime:program", + "//runtime:runtime_equality", + "//runtime:runtime_helpers", + "//runtime:standard_functions", + "//runtime:unknown_attributes", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "ProgramPlannerAsyncTest", + srcs = ["ProgramPlannerAsyncTest.java"], + test_class = "dev.cel.runtime.planner.ProgramPlannerAsyncTest", + deps = [ + "//:java_truth", + "//common/ast", + "//common/exceptions:divide_by_zero", + "//common/exceptions:overload_not_found", + "//common/exceptions:runtime_exception", + "//common/types", + "//common/types:type_providers", + "//common:cel_ast", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_source", "//common:error_codes", "//common:options", + "//compiler", + "//compiler:compiler_builder", + "//parser:macro", + "//runtime", + "//runtime:accumulated_unknowns", + "//runtime:function_binding", + "//runtime:function_resolver", + "//runtime:partial_vars", + "//runtime:program", + "//runtime:resolved_overload", + "//runtime:unknown_attributes", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_code_findbugs_annotations", + "@maven//:com_google_errorprone_error_prone_annotations", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven//:org_jspecify_jspecify", + ], +) + +java_test( + name = "ProgramPlannerTest", + srcs = ["ProgramPlannerTest.java"], + test_class = "dev.cel.runtime.planner.ProgramPlannerTest", + deps = [ + "//:java_truth", "//common/ast", - "//common/exceptions:attribute_not_found", "//common/exceptions:divide_by_zero", "//common/exceptions:invalid_argument", - "//common/exceptions:overload_not_found", "//common/exceptions:runtime_exception", "//common/internal:cel_descriptor_pools", "//common/internal:default_message_factory", @@ -41,51 +215,36 @@ java_library( "//common/values:cel_value_provider", "//common/values:proto_message_value", "//common/values:proto_message_value_provider", + "//common:cel_ast", + "//common:cel_descriptor_util", + "//common:cel_function_decl", + "//common:cel_overload_decl", + "//common:cel_source", + "//common:container", + "//common:error_codes", + "//common:options", "//compiler", "//compiler:compiler_builder", "//extensions", - "//optimizer", - "//optimizer:optimizer_builder", - "//optimizer/optimizers:select_optimizer", "//parser:macro", "//runtime", - "//runtime:accumulated_unknowns", + "//runtime/planner:planned_program", + "//runtime/planner:program_planner", + "//runtime/standard:type", "//runtime:dispatcher", "//runtime:function_binding", "//runtime:function_resolver", "//runtime:partial_vars", "//runtime:program", - "//runtime:resolved_overload", "//runtime:runtime_equality", "//runtime:runtime_helpers", "//runtime:standard_functions", "//runtime:unknown_attributes", - "//runtime/planner:async_call_state_tracker", - "//runtime/planner:async_completion_coordinator", - "//runtime/planner:async_gate", - "//runtime/planner:optimized_select_planner", - "//runtime/planner:planned_interpretable", - "//runtime/planner:planned_program", - "//runtime/planner:program_planner", - "//runtime/standard:type", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", - "@maven//:com_google_code_findbugs_annotations", "@maven//:com_google_errorprone_error_prone_annotations", "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", "@maven//:com_google_testparameterinjector_test_parameter_injector", "@maven//:junit_junit", - "@maven//:org_jspecify_jspecify", - ], -) - -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", - ], - src_dir = "src/test/java", - deps = [ - ":tests", ], ) diff --git a/testing/src/test/java/dev/cel/testing/BUILD.bazel b/testing/src/test/java/dev/cel/testing/BUILD.bazel index 3d79c76e7..17f801a08 100644 --- a/testing/src/test/java/dev/cel/testing/BUILD.bazel +++ b/testing/src/test/java/dev/cel/testing/BUILD.bazel @@ -1,19 +1,31 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package(default_applicable_licenses = [ "//:license", ]) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*.java"]), +java_test( + name = "CelExprKindAndIdAdornerTest", + srcs = ["CelExprKindAndIdAdornerTest.java"], + test_class = "dev.cel.testing.CelExprKindAndIdAdornerTest", + deps = [ + "//:java_truth", + "//testing:adorner", + "@cel_spec//proto/cel/expr:syntax_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_protobuf_protobuf_java", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelLocationAdornerTest", + srcs = ["CelLocationAdornerTest.java"], + test_class = "dev.cel.testing.CelLocationAdornerTest", deps = [ "//:java_truth", "//common:source_location", "//testing:adorner", - "//testing:line_differ", "@cel_spec//proto/cel/expr:syntax_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_protobuf_protobuf_java", @@ -21,11 +33,14 @@ java_library( ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "LineDifferTest", + srcs = ["LineDifferTest.java"], + test_class = "dev.cel.testing.LineDifferTest", + deps = [ + "//:java_truth", + "//testing:line_differ", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/validator/src/test/java/dev/cel/validator/BUILD.bazel b/validator/src/test/java/dev/cel/validator/BUILD.bazel index fd43759fe..29ca9e1cc 100644 --- a/validator/src/test/java/dev/cel/validator/BUILD.bazel +++ b/validator/src/test/java/dev/cel/validator/BUILD.bazel @@ -1,14 +1,13 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], ) -java_library( - name = "tests", - testonly = 1, - srcs = glob(["*.java"]), +java_test( + name = "CelValidatorImplTest", + srcs = ["CelValidatorImplTest.java"], + test_class = "dev.cel.validator.CelValidatorImplTest", deps = [ "//:java_truth", "//bundle:cel", @@ -19,12 +18,3 @@ java_library( "@maven//:junit_junit", ], ) - -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", - ], - src_dir = "src/test/java", - deps = [":tests"], -) diff --git a/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel b/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel index b6e52d378..2e677db1b 100644 --- a/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel +++ b/validator/src/test/java/dev/cel/validator/validators/BUILD.bazel @@ -1,38 +1,121 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], ) -java_library( - name = "tests", - testonly = 1, - srcs = glob(["*.java"]), +java_test( + name = "AstDepthLimitValidatorTest", + srcs = ["AstDepthLimitValidatorTest.java"], + test_class = "dev.cel.validator.validators.AstDepthLimitValidatorTest", deps = [ "//:java_truth", "//bundle:cel", - "//checker:standard_decl", + "//common/types", "//common:cel_ast", "//common:compiler_common", - "//common:options", "//common:proto_ast", - "//common/internal:proto_time_utils", + "//runtime", + "//validator", + "//validator/validators:ast_depth_limit_validator", + "//validator:validator_builder", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven_android//:com_google_protobuf_protobuf_javalite", + ], +) + +java_test( + name = "ComprehensionNestingLimitValidatorTest", + srcs = ["ComprehensionNestingLimitValidatorTest.java"], + test_class = "dev.cel.validator.validators.ComprehensionNestingLimitValidatorTest", + deps = [ + "//:java_truth", + "//bundle:cel", "//common/types", + "//common:cel_ast", + "//common:compiler_common", "//extensions", "//extensions:optional_library", "//parser:macro", "//runtime", + "//validator", + "//validator/validators:comprehension_nesting_limit_validator", + "//validator:validator_builder", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven_android//:com_google_protobuf_protobuf_javalite", + ], +) + +java_test( + name = "DurationLiteralValidatorTest", + srcs = ["DurationLiteralValidatorTest.java"], + test_class = "dev.cel.validator.validators.DurationLiteralValidatorTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//checker:standard_decl", + "//common/internal:proto_time_utils", + "//common/types", + "//common:cel_ast", + "//common:compiler_common", + "//runtime", "//runtime:function_binding", "//runtime:standard_functions", "//validator", - "//validator:validator_builder", - "//validator/validators:ast_depth_limit_validator", - "//validator/validators:comprehension_nesting_limit_validator", "//validator/validators:duration", + "//validator:validator_builder", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven_android//:com_google_protobuf_protobuf_javalite", + ], +) + +java_test( + name = "HomogeneousLiteralValidatorTest", + srcs = ["HomogeneousLiteralValidatorTest.java"], + test_class = "dev.cel.validator.validators.HomogeneousLiteralValidatorTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common:cel_ast", + "//common:compiler_common", + "//extensions:optional_library", + "//runtime", + "//validator", "//validator/validators:homogeneous_literal", + "//validator:validator_builder", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven_android//:com_google_protobuf_protobuf_javalite", + ], +) + +java_test( + name = "RegexLiteralValidatorTest", + srcs = ["RegexLiteralValidatorTest.java"], + test_class = "dev.cel.validator.validators.RegexLiteralValidatorTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common:cel_ast", + "//common:compiler_common", + "//common:options", + "//runtime", + "//runtime:function_binding", + "//validator", "//validator/validators:regex", - "//validator/validators:timestamp", + "//validator:validator_builder", "@cel_spec//proto/cel/expr:checked_java_proto", "@maven//:com_google_guava_guava", "@maven//:com_google_testparameterinjector_test_parameter_injector", @@ -41,11 +124,29 @@ java_library( ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "TimestampLiteralValidatorTest", + srcs = ["TimestampLiteralValidatorTest.java"], + test_class = "dev.cel.validator.validators.TimestampLiteralValidatorTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//checker:standard_decl", + "//common/internal:proto_time_utils", + "//common/types", + "//common:cel_ast", + "//common:compiler_common", + "//common:options", + "//runtime", + "//runtime:function_binding", + "//runtime:standard_functions", + "//validator", + "//validator/validators:timestamp", + "//validator:validator_builder", + "@cel_spec//proto/cel/expr:checked_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven_android//:com_google_protobuf_protobuf_javalite", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/verifier/src/test/java/dev/cel/verifier/BUILD.bazel b/verifier/src/test/java/dev/cel/verifier/BUILD.bazel index 55b9c24be..90200906e 100644 --- a/verifier/src/test/java/dev/cel/verifier/BUILD.bazel +++ b/verifier/src/test/java/dev/cel/verifier/BUILD.bazel @@ -1,40 +1,76 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_library", "java_test") package( default_applicable_licenses = ["//:license"], ) java_library( - name = "tests", + name = "test_helpers", testonly = True, - srcs = glob( - ["*.java"], - ), - compatible_with = [], + srcs = [ + "VerifierTestHelper.java", + ], data = [ "//testing:policy_test_resources", ], deps = [ + "@bazel_tools//tools/java/runfiles:runfiles", + "@maven//:com_google_guava_guava", + ], +) + +java_test( + name = "CanonicalizationOptimizerTest", + srcs = ["CanonicalizationOptimizerTest.java"], + data = [ + "//testing:policy_test_resources", + ], + test_class = "dev.cel.verifier.CanonicalizationOptimizerTest", + deps = [ + "//:java_truth", "//bundle:cel", + "//common/ast", + "//common/ast:mutable_expr", + "//common/types", "//common:cel_ast", "//common:compiler_common", "//common:container", "//common:mutable_ast", - "//common:operator", "//common:options", - "//common/ast", - "//common/ast:mutable_expr", - "//common/types", - "//common/types:message_type_provider", "//compiler:compiler_builder", "//extensions", "//extensions:optional_library", - # "//java/com/google/testing/testsize:annotations", "//optimizer", "//optimizer:optimizer_builder", + "//parser:macro", + "//parser:unparser", + "//verifier:canonicalization_optimizer", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelPolicyVerifierImplTest", + srcs = ["CelPolicyVerifierImplTest.java"], + data = [ + "//testing:policy_test_resources", + ], + test_class = "dev.cel.verifier.CelPolicyVerifierImplTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/types", + "//common:cel_ast", + "//common:compiler_common", + "//common:options", + "//compiler:compiler_builder", + "//extensions", + "//optimizer", "//optimizer/optimizers:common_subexpression_elimination", - "//optimizer/optimizers:constant_folding", + "//optimizer:optimizer_builder", "//parser:macro", "//parser:unparser", "//policy", @@ -43,32 +79,53 @@ java_library( "//policy:parser", "//policy:parser_factory", "//policy:validation_exception", - "@bazel_tools//tools/java/runfiles", - "@maven//:junit_junit", - "@maven//:com_google_testparameterinjector_test_parameter_injector", - "//:java_truth", - "@maven//:tools_aqua_z3_turnkey", "//verifier", - "//verifier:canonicalization_optimizer", - "//verifier:numeric_bounds", "//verifier:policy_verifier", "//verifier:policy_verifier_factory", - "//verifier:type_system", "//verifier:verifier_factory", - "//verifier:z3_impl", - "//verifier/axioms", + ":test_helpers", "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", ], ) -junit4_test_suites( - name = "test_suites", - shard_count = 8, - sizes = [ - "small", - "medium", +java_test( + name = "CelVerifierZ3ImplTest", + srcs = ["CelVerifierZ3ImplTest.java"], + data = [ + "//testing:policy_test_resources", + ], + test_class = "dev.cel.verifier.CelVerifierZ3ImplTest", + deps = [ + "//:java_truth", + "//bundle:cel", + "//common/ast", + "//common/types", + "//common/types:message_type_provider", + "//common:cel_ast", + "//common:compiler_common", + "//common:container", + "//common:operator", + "//common:options", + "//compiler:compiler_builder", + "//extensions", + "//extensions:optional_library", + "//optimizer", + "//optimizer/optimizers:constant_folding", + "//optimizer:optimizer_builder", + "//parser:macro", + "//verifier", + "//verifier/axioms", + "//verifier:numeric_bounds", + "//verifier:type_system", + "//verifier:verifier_factory", + "//verifier:z3_impl", + "@cel_spec//proto/cel/expr/conformance/proto3:test_all_types_java_proto", + "@maven//:com_google_guava_guava", + "@maven//:com_google_testparameterinjector_test_parameter_injector", + "@maven//:junit_junit", + "@maven//:tools_aqua_z3_turnkey", ], - src_dir = "src/test/java", - deps = [":tests"], ) diff --git a/verifier/src/test/java/dev/cel/verifier/tools/BUILD.bazel b/verifier/src/test/java/dev/cel/verifier/tools/BUILD.bazel index 6077e4950..32c7f81e0 100644 --- a/verifier/src/test/java/dev/cel/verifier/tools/BUILD.bazel +++ b/verifier/src/test/java/dev/cel/verifier/tools/BUILD.bazel @@ -1,14 +1,25 @@ -load("@rules_java//java:defs.bzl", "java_library") -load("//:testing.bzl", "junit4_test_suites") +load("@rules_java//java:defs.bzl", "java_test") package( default_applicable_licenses = ["//:license"], ) -java_library( - name = "tests", - testonly = True, - srcs = glob(["*.java"]), +java_test( + name = "CelVerifierReplTest", + srcs = ["CelVerifierReplTest.java"], + test_class = "dev.cel.verifier.tools.CelVerifierReplTest", + deps = [ + "//:java_truth", + "//verifier/tools", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "CelVerifierToolTest", + srcs = ["CelVerifierToolTest.java"], + test_class = "dev.cel.verifier.tools.CelVerifierToolTest", deps = [ "//:java_truth", "//common/types", @@ -21,11 +32,31 @@ java_library( ], ) -junit4_test_suites( - name = "test_suites", - sizes = [ - "small", +java_test( + name = "FormatUtilsTest", + srcs = ["FormatUtilsTest.java"], + test_class = "dev.cel.verifier.tools.FormatUtilsTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "//verifier", + "//verifier/tools", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", + ], +) + +java_test( + name = "VerificationOptionsTest", + srcs = ["VerificationOptionsTest.java"], + test_class = "dev.cel.verifier.tools.VerificationOptionsTest", + deps = [ + "//:java_truth", + "//common/types", + "//common/types:type_providers", + "//verifier/tools", + "@maven//:com_google_guava_guava", + "@maven//:junit_junit", ], - src_dir = "src/test/java", - deps = [":tests"], ) From c9e31f4e619891638473bbfb0b92426363b0dcfb Mon Sep 17 00:00:00 2001 From: Sean Huh Date: Tue, 27 Oct 2026 17:40:19 +0000 Subject: [PATCH 3/3] Test incremental RuntimeEquality change with split java_test targets --- .github/workflows/workflow.yml | 12 ++++-------- .../main/java/dev/cel/runtime/RuntimeEquality.java | 6 +++++- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 45c3d345e..a67bbfcf6 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -57,8 +57,7 @@ jobs: run: .github/workflows/cross_artifact_dependencies_check.sh - name: Prune disk cache entries not used by this job # Bazel bumps mtimes on use; drop stale entries so the saved cache doesn't grow unbounded. - # TODO(testing): Uncomment `if` before merging - # if: github.event_name != 'pull_request' + if: github.event_name != 'pull_request' run: | if [ -d ~/.cache/bazel-disk ]; then du -sh ~/.cache/bazel-disk @@ -66,8 +65,7 @@ jobs: du -sh ~/.cache/bazel-disk fi - name: Save Bazel disk cache - # TODO(testing): Uncomment `if` before merging - # if: github.event_name != 'pull_request' + if: github.event_name != 'pull_request' uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 with: path: ~/.cache/bazel-disk @@ -113,8 +111,7 @@ jobs: run: bazelisk test ... --deleted_packages=//codelab/src/test/codelab --test_output=errors --test_tag_filters=-conformance_maven --build_tag_filters=-conformance_maven - name: Prune disk cache entries not used by this job # Bazel bumps mtimes on use; drop stale entries so the saved cache doesn't grow unbounded. - # TODO(testing): Uncomment `if` before merging - # if: github.event_name != 'pull_request' + if: github.event_name != 'pull_request' run: | if [ -d ~/.cache/bazel-disk ]; then du -sh ~/.cache/bazel-disk @@ -122,8 +119,7 @@ jobs: du -sh ~/.cache/bazel-disk fi - name: Save Bazel disk cache - # TODO(testing): Uncomment `if` before merging - # if: github.event_name != 'pull_request' + if: github.event_name != 'pull_request' uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0 with: path: ~/.cache/bazel-disk diff --git a/runtime/src/main/java/dev/cel/runtime/RuntimeEquality.java b/runtime/src/main/java/dev/cel/runtime/RuntimeEquality.java index c8cffe115..1081a1f08 100644 --- a/runtime/src/main/java/dev/cel/runtime/RuntimeEquality.java +++ b/runtime/src/main/java/dev/cel/runtime/RuntimeEquality.java @@ -251,7 +251,7 @@ public int hashCode(Object object) { if (object instanceof Number) { double value = ((Number) object).doubleValue(); // Normalize -0.0 to 0.0. objectEquals reports the two as equal, so they must hash alike. - return Double.hashCode(value == 0.0d ? 0.0d : value); + return Double.hashCode(normalizeZero(value)); } if (object instanceof Iterable) { int h = 1; @@ -294,6 +294,10 @@ private static boolean isNan(Object value) { return value instanceof Number && Double.isNaN(((Number) value).doubleValue()); } + static double normalizeZero(double value) { + return value == 0.0d ? 0.0d : value; + } + RuntimeEquality(RuntimeHelpers runtimeHelpers, CelOptions celOptions) { this.runtimeHelpers = runtimeHelpers; this.celOptions = celOptions;