|
|
|
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.
|
|
|
|
|
|
|
|
# main gencode builds with main runtime as a proof of concept.
|
|
|
|
java_runtime_conformance(
|
|
|
|
name = "java_conformance_main",
|
|
|
|
gencode_version = "main",
|
|
|
|
)
|
|
|
|
|
|
|
|
# Generates a build_test named "conformance_v3.25.0"
|
|
|
|
java_runtime_conformance(
|
|
|
|
name = "java_conformance_v3.25.0",
|
|
|
|
gencode_version = "3.25.0",
|
|
|
|
)
|
|
|
|
|
|
|
|
# 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",
|
|
|
|
],
|
|
|
|
)
|