Fix RustProjectWriter unit-test.
The unit-test was not calling Target::OnResolved() for test
target dependencies, as such the computations performed in
Target::PullDependentTargetLibsFrom() were not correct.
This fixes the issue, and updates the expected string for the
test, which now includes two new lines for the second crate:
```
"is_proc_macro": true,
"proc_macro_dylib_path": "out/Debug/obj/tortoise/libmacro.so",
```
Bug: None
Change-Id: I506ca4314e72bec308e97e71e6183b14adc5a649
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/13541
Reviewed-by: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Commit-Queue: David Turner <digit@google.com>
diff --git a/src/gn/rust_project_writer_unittest.cc b/src/gn/rust_project_writer_unittest.cc
index e57baf9..81b24b0 100644
--- a/src/gn/rust_project_writer_unittest.cc
+++ b/src/gn/rust_project_writer_unittest.cc
@@ -92,6 +92,7 @@
dep.rust_values().set_crate_root(tlib);
dep.rust_values().crate_name() = "tortoise";
dep.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(dep.OnResolved(&err));
Target target(setup.settings(), Label(SourceDir("//hare/"), "bar"));
target.set_output_type(Target::RUST_LIBRARY);
@@ -177,6 +178,7 @@
dep.rust_values().set_crate_root(tlib);
dep.rust_values().crate_name() = "tortoise";
dep.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(dep.OnResolved(&err));
Target dep2(setup.settings(), Label(SourceDir("//achilles/"), "bar"));
dep2.set_output_type(Target::RUST_LIBRARY);
@@ -187,6 +189,7 @@
dep2.rust_values().set_crate_root(alib);
dep2.rust_values().crate_name() = "achilles";
dep2.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(dep2.OnResolved(&err));
Target target(setup.settings(), Label(SourceDir("//hare/"), "bar"));
target.set_output_type(Target::RUST_LIBRARY);
@@ -297,18 +300,21 @@
dep.rust_values().set_crate_root(tlib);
dep.rust_values().crate_name() = "tortoise";
dep.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(dep.OnResolved(&err));
Target dep2(setup.settings(), Label(SourceDir("//achilles/"), "bar"));
dep2.set_output_type(Target::STATIC_LIBRARY);
dep2.visibility().SetPublic();
SourceFile alib("//achilles/lib.o");
dep2.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(dep2.OnResolved(&err));
Target dep3(setup.settings(), Label(SourceDir("//achilles/"), "group"));
dep3.set_output_type(Target::GROUP);
dep3.visibility().SetPublic();
dep3.public_deps().push_back(LabelTargetPair(&dep));
dep3.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(dep3.OnResolved(&err));
Target dep4(setup.settings(), Label(SourceDir("//tortoise/"), "macro"));
dep4.set_output_type(Target::RUST_PROC_MACRO);
@@ -319,6 +325,7 @@
dep4.rust_values().set_crate_root(tmlib);
dep4.rust_values().crate_name() = "tortoise_macro";
dep4.SetToolchain(setup.toolchain());
+ ASSERT_TRUE(dep4.OnResolved(&err));
Target target(setup.settings(), Label(SourceDir("//hare/"), "bar"));
target.set_output_type(Target::RUST_LIBRARY);
@@ -378,6 +385,9 @@
" \"deps\": [\n"
" ],\n"
" \"edition\": \"2015\",\n"
+ " \"is_proc_macro\": true,\n"
+ " \"proc_macro_dylib_path\": "
+ "\"out/Debug/obj/tortoise/libmacro.so\",\n"
" \"cfg\": [\n"
" \"test\",\n"
" \"debug_assertions\"\n"