Update test for rust executable deps This is to confirm current behavior of deps from rust executable to cxx modules. Current step making rust binary has input deps to modules files in -Clink-arg if there are dependencies to cxx modules. Bug: 400872290 Change-Id: I1ee8109e6dff5a988653bfab69092cbb51734130 Reviewed-on: https://gn-review.googlesource.com/c/gn/+/18381 Reviewed-by: David Turner <digit@google.com> Commit-Queue: Takuto Ikuta <tikuta@google.com>
diff --git a/src/gn/ninja_rust_binary_target_writer_unittest.cc b/src/gn/ninja_rust_binary_target_writer_unittest.cc index 461cbd8..2ef30f8 100644 --- a/src/gn/ninja_rust_binary_target_writer_unittest.cc +++ b/src/gn/ninja_rust_binary_target_writer_unittest.cc
@@ -1865,6 +1865,14 @@ sset.private_deps().push_back(LabelTargetPair(&rlib_priv)); ASSERT_TRUE(sset.OnResolved(&err)); + Target modules(setup.settings(), Label(SourceDir("//sset/"), "module")); + modules.set_output_type(Target::SOURCE_SET); + modules.visibility().SetPublic(); + modules.sources().push_back(SourceFile("//sset/module.modulemap")); + modules.source_types_used().Set(SourceFile::SOURCE_MODULEMAP); + modules.SetToolchain(setup.toolchain()); + ASSERT_TRUE(modules.OnResolved(&err)); + Target target(setup.settings(), Label(SourceDir("//linked/"), "exe")); target.set_output_type(Target::EXECUTABLE); target.visibility().SetPublic(); @@ -1874,6 +1882,7 @@ target.rust_values().set_crate_root(main); target.rust_values().crate_name() = "exe"; target.private_deps().push_back(LabelTargetPair(&sset)); + target.private_deps().push_back(LabelTargetPair(&modules)); target.SetToolchain(setup.toolchain()); ASSERT_TRUE(target.OnResolved(&err)); @@ -1895,15 +1904,18 @@ "target_output_name = exe\n" "\n" "build ./exe: rust_bin ../../linked/exe.rs | ../../linked/exe.rs " - "obj/sset/bar.input1.o obj/public/libbehind_sourceset_public.rlib " - "obj/private/libbehind_sourceset_private.rlib || phony/sset/bar\n" + "obj/sset/bar.input1.o obj/sset/module.module.pcm " + "obj/public/libbehind_sourceset_public.rlib " + "obj/private/libbehind_sourceset_private.rlib || phony/sset/bar " + "phony/sset/module\n" " source_file_part = exe.rs\n" " source_name_part = exe\n" " externs = --extern " "behind_sourceset_public=obj/public/libbehind_sourceset_public.rlib\n" " rustdeps = -Ldependency=obj/public -Ldependency=obj/private " "-Clink-arg=-Bdynamic " - "-Clink-arg=obj/sset/bar.input1.o\n" + "-Clink-arg=obj/sset/bar.input1.o " + "-Clink-arg=obj/sset/module.module.pcm\n" " ldflags =\n" " sources = ../../linked/exe.rs\n"; std::string out_str = out.str();