| Index: tools/gn/target_unittest.cc
|
| diff --git a/tools/gn/target_unittest.cc b/tools/gn/target_unittest.cc
|
| index 6f1a5cfa07d82fb2b005591cae94f431ee9c6aed..8cc29e1771b555a2fa35b3b3fcf875d7008a9018 100644
|
| --- a/tools/gn/target_unittest.cc
|
| +++ b/tools/gn/target_unittest.cc
|
| @@ -479,3 +479,40 @@ TEST(Target, PublicConfigs) {
|
| ASSERT_EQ(1u, dep_on_forward.configs().size());
|
| EXPECT_EQ(&pub_config, dep_on_forward.configs()[0].ptr);
|
| }
|
| +
|
| +// Tests that different link/depend outputs work for solink tools.
|
| +TEST(Target, LinkAndDepOutputs) {
|
| + TestWithScope setup;
|
| + Err err;
|
| +
|
| + Toolchain toolchain(setup.settings(), Label(SourceDir("//tc/"), "tc"));
|
| +
|
| + scoped_ptr<Tool> solink_tool(new Tool());
|
| + solink_tool->set_output_prefix("lib");
|
| + solink_tool->set_default_output_extension(".so");
|
| +
|
| + const char kLinkPattern[] =
|
| + "{{root_out_dir}}/{{target_output_name}}{{output_extension}}";
|
| + SubstitutionPattern link_output = SubstitutionPattern::MakeForTest(
|
| + kLinkPattern);
|
| + solink_tool->set_link_output(link_output);
|
| +
|
| + const char kDependPattern[] =
|
| + "{{root_out_dir}}/{{target_output_name}}{{output_extension}}.TOC";
|
| + SubstitutionPattern depend_output = SubstitutionPattern::MakeForTest(
|
| + kDependPattern);
|
| + solink_tool->set_depend_output(depend_output);
|
| +
|
| + solink_tool->set_outputs(SubstitutionList::MakeForTest(
|
| + kLinkPattern, kDependPattern));
|
| +
|
| + toolchain.SetTool(Toolchain::TYPE_SOLINK, solink_tool.Pass());
|
| +
|
| + Target target(setup.settings(), Label(SourceDir("//a/"), "a"));
|
| + target.set_output_type(Target::SHARED_LIBRARY);
|
| + target.SetToolchain(&toolchain);
|
| + ASSERT_TRUE(target.OnResolved(&err));
|
| +
|
| + EXPECT_EQ("./liba.so", target.link_output_file().value());
|
| + EXPECT_EQ("./liba.so.TOC", target.dependency_output_file().value());
|
| +}
|
|
|