| load("@rules_buf//buf:defs.bzl", "buf_breaking_test") |
| load("//compatibility:runtime_conformance.bzl", "java_runtime_conformance") |
| |
| # Simple build tests for compatibility of gencode from previous major versions |
| # with the current runtime. |
| # |
| # To add more test cases in Java, use java_runtime_conformance as below, and add |
| # the corresponding http_archive in the WORKSPACE file for the version. |
| |
| java_library( |
| name = "v25_test_protos_srcjar", |
| testonly = True, |
| srcs = glob([ |
| "v3.25.0/*.srcjar", |
| ]), |
| visibility = ["//java/core:__pkg__"], |
| deps = ["//java/core"], |
| ) |
| |
| java_library( |
| name = "v25_test_protos_jar", |
| testonly = True, |
| srcs = glob([ |
| "v3.25.0/*.srcjar", |
| ]), |
| visibility = ["//java/core:__pkg__"], |
| deps = ["@com_google_protobuf_v25.0//java/core"], |
| ) |
| |
| # main gencode builds with main runtime as a proof of concept. |
| java_runtime_conformance( |
| name = "java_conformance_main", |
| gencode_version = "main", |
| ) |
| |
| # Breaking change detection for well-known types and descriptor.proto. |
| buf_breaking_test( |
| name = "any_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:any_proto", |
| config = ":buf.yaml", |
| targets = ["//:any_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "api_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:api_proto", |
| config = ":buf.yaml", |
| targets = ["//:api_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "descriptor_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:descriptor_proto", |
| config = ":buf.yaml", |
| targets = ["//:descriptor_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "duration_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:duration_proto", |
| config = ":buf.yaml", |
| targets = ["//:duration_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "empty_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:empty_proto", |
| config = ":buf.yaml", |
| targets = ["//:empty_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "field_mask_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:field_mask_proto", |
| config = ":buf.yaml", |
| targets = ["//:field_mask_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "source_context_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:source_context_proto", |
| config = ":buf.yaml", |
| targets = ["//:source_context_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "struct_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:struct_proto", |
| config = ":buf.yaml", |
| targets = ["//:struct_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "timestamp_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:timestamp_proto", |
| config = ":buf.yaml", |
| targets = ["//:timestamp_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "type_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:type_proto", |
| config = ":buf.yaml", |
| targets = ["//:type_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "wrappers_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:wrappers_proto", |
| config = ":buf.yaml", |
| targets = ["//:wrappers_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "compiler_plugin_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:compiler_plugin_proto", |
| config = ":buf.yaml", |
| targets = ["//:compiler_plugin_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "cpp_features_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:cpp_features_proto", |
| config = ":buf.yaml", |
| targets = ["//:cpp_features_proto"], |
| ) |
| |
| buf_breaking_test( |
| name = "java_features_proto_breaking", |
| against = "@com_google_protobuf_previous_release//:java_features_proto", |
| config = ":buf.yaml", |
| targets = ["//:java_features_proto"], |
| ) |
| |
| test_suite( |
| name = "proto_breaking", |
| tests = [ |
| "any_proto_breaking", |
| "api_proto_breaking", |
| "compiler_plugin_proto_breaking", |
| "cpp_features_proto_breaking", |
| "descriptor_proto_breaking", |
| "duration_proto_breaking", |
| "empty_proto_breaking", |
| "field_mask_proto_breaking", |
| "java_features_proto_breaking", |
| "source_context_proto_breaking", |
| "struct_proto_breaking", |
| "timestamp_proto_breaking", |
| "type_proto_breaking", |
| "wrappers_proto_breaking", |
| ], |
| ) |