|  | 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", | 
|  | ], | 
|  | ) |