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();