| Index: tools/gn/target_unittest.cc
|
| diff --git a/tools/gn/target_unittest.cc b/tools/gn/target_unittest.cc
|
| index 25e3aabc4578cf4278958d5ebffedf673132ebfb..895d11d147836b2102c9eb62a850c5d71cc327de 100644
|
| --- a/tools/gn/target_unittest.cc
|
| +++ b/tools/gn/target_unittest.cc
|
| @@ -274,6 +274,41 @@ TEST(Target, InheritLibs) {
|
| EXPECT_TRUE(a_inherited.IndexOf(&b) != static_cast<size_t>(-1));
|
| }
|
|
|
| +TEST(Target, InheritCompleteStaticLib) {
|
| + TestWithScope setup;
|
| + Err err;
|
| +
|
| + // Create a dependency chain:
|
| + // A (executable) -> B (complete static lib) -> C (source set)
|
| + Target a(setup.settings(), Label(SourceDir("//foo/"), "a"));
|
| + a.set_output_type(Target::EXECUTABLE);
|
| + a.SetToolchain(setup.toolchain());
|
| + Target b(setup.settings(), Label(SourceDir("//foo/"), "b"));
|
| + b.set_output_type(Target::STATIC_LIBRARY);
|
| + b.set_complete_static_lib(true);
|
| + b.SetToolchain(setup.toolchain());
|
| + Target c(setup.settings(), Label(SourceDir("//foo/"), "c"));
|
| + c.set_output_type(Target::SOURCE_SET);
|
| + c.SetToolchain(setup.toolchain());
|
| + a.deps().push_back(LabelTargetPair(&b));
|
| + b.deps().push_back(LabelTargetPair(&c));
|
| +
|
| + ASSERT_TRUE(c.OnResolved(&err));
|
| + ASSERT_TRUE(b.OnResolved(&err));
|
| + ASSERT_TRUE(a.OnResolved(&err));
|
| +
|
| + // B should have C in its inherited libs.
|
| + const UniqueVector<const Target*>& b_inherited = b.inherited_libraries();
|
| + EXPECT_EQ(1u, b_inherited.size());
|
| + EXPECT_TRUE(b_inherited.IndexOf(&c) != static_cast<size_t>(-1));
|
| +
|
| + // A should have B in its inherited libs, but not any others (the complete
|
| + // static library will include the source set).
|
| + const UniqueVector<const Target*>& a_inherited = a.inherited_libraries();
|
| + EXPECT_EQ(1u, a_inherited.size());
|
| + EXPECT_TRUE(a_inherited.IndexOf(&b) != static_cast<size_t>(-1));
|
| +}
|
| +
|
| TEST(Target, GetComputedOutputName) {
|
| TestWithScope setup;
|
| Err err;
|
|
|