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"