From 11bbab1664a5afc5218bf61ea80d16a35cf50f21 Mon Sep 17 00:00:00 2001 From: Jakob Buchgraber Date: Wed, 6 Mar 2024 04:30:01 -0800 Subject: [PATCH] #protobuf #rust Build gencode files when building a rust_proto_library target from the command line. PiperOrigin-RevId: 613167071 --- rust/defs.bzl | 1 + .../rust_proto_library_unit_test.bzl | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/rust/defs.bzl b/rust/defs.bzl index 25f8d3d086..64c4022ed0 100644 --- a/rust/defs.bzl +++ b/rust/defs.bzl @@ -70,6 +70,7 @@ def _rust_proto_library_impl(ctx): dep_variant_info.crate_info, dep_variant_info.dep_info, dep_variant_info.cc_info, + DefaultInfo(files = dep_variant_info.crate_info.srcs), ] def _make_rust_proto_library(is_upb): diff --git a/rust/test/rust_proto_library_unit_test/rust_proto_library_unit_test.bzl b/rust/test/rust_proto_library_unit_test/rust_proto_library_unit_test.bzl index 592c0f4268..4b23df56e1 100644 --- a/rust/test/rust_proto_library_unit_test/rust_proto_library_unit_test.bzl +++ b/rust/test/rust_proto_library_unit_test/rust_proto_library_unit_test.bzl @@ -2,6 +2,7 @@ load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts") load("//rust:aspects.bzl", "RustProtoInfo") +load("//rust:defs.bzl", "rust_cc_proto_library", "rust_upb_proto_library") load("@rules_cc//cc:defs.bzl", "cc_proto_library") load(":defs.bzl", "ActionsInfo", "attach_cc_aspect", "attach_upb_aspect") @@ -168,6 +169,43 @@ def _test_cc_aspect(): #################################################################################################### +def _rust_outputs_test_impl(ctx): + env = analysistest.begin(ctx) + target_under_test = analysistest.target_under_test(env) + + label_to_file = { + "child_rust_cc_proto": "child.c.pb.rs", + "child_rust_upb_proto": "child.u.pb.rs", + } + expected_output = label_to_file[target_under_test.label.name] + asserts.true(env, target_under_test.files.to_list()[0].path.endswith(expected_output)) + + return analysistest.end(env) + +rust_outputs_test = analysistest.make(_rust_outputs_test_impl) + +def _test_cc_outputs(): + rust_cc_proto_library( + name = "child_rust_cc_proto", + deps = [":child_proto"], + ) + + rust_outputs_test( + name = "rust_cc_outputs_test", + target_under_test = ":child_rust_cc_proto", + ) + +def _test_upb_outputs(): + rust_upb_proto_library( + name = "child_rust_upb_proto", + deps = [":child_proto"], + ) + + rust_outputs_test( + name = "rust_upb_outputs_test", + target_under_test = ":child_rust_upb_proto", + ) + def rust_proto_library_unit_test(name): """Sets up rust_proto_library_unit_test test suite. @@ -196,11 +234,15 @@ def rust_proto_library_unit_test(name): _test_upb_aspect() _test_cc_aspect() + _test_cc_outputs() + _test_upb_outputs() native.test_suite( name = name, tests = [ ":rust_upb_aspect_test", ":rust_cc_aspect_test", + ":rust_cc_outputs_test", + ":rust_upb_outputs_test", ], )