| Index: tools/gn/ninja_build_writer_unittest.cc
|
| diff --git a/tools/gn/ninja_build_writer_unittest.cc b/tools/gn/ninja_build_writer_unittest.cc
|
| index 955eb1c110ea0df331d40a789fee1b0eafe7d21c..abb547532ac79dcc93b8e912e9f6e00d66c41f7e 100644
|
| --- a/tools/gn/ninja_build_writer_unittest.cc
|
| +++ b/tools/gn/ninja_build_writer_unittest.cc
|
| @@ -32,47 +32,57 @@ TEST(NinjaBuildWriter, TwoTargets) {
|
| target_bar.SetToolchain(setup.toolchain());
|
| ASSERT_TRUE(target_bar.OnResolved(&err));
|
|
|
| - Pool swiming_pool(setup.settings(),
|
| - Label(SourceDir("//swiming/"), "pool",
|
| - SourceDir("//other/"), "toolchain"));
|
| - swiming_pool.set_depth(42);
|
| + // Make a secondary toolchain that references a pool.
|
| + Label other_toolchain_label(SourceDir("//other/"), "toolchain");
|
| + Pool other_pool(setup.settings(),
|
| + Label(SourceDir("//other/"), "pool",
|
| + other_toolchain_label.dir(),
|
| + other_toolchain_label.name()));
|
| + other_pool.set_depth(42);
|
| + Toolchain other_toolchain(setup.settings(), other_toolchain_label);
|
| + TestWithScope::SetupToolchain(&other_toolchain);
|
| + other_toolchain.GetTool(Toolchain::TYPE_LINK)->set_pool(
|
| + LabelPtrPair<Pool>(&other_pool));
|
| +
|
| + // Settings to go with the other toolchain.
|
| + Settings other_settings(setup.build_settings(), "toolchain/");
|
| + other_settings.set_toolchain_label(other_toolchain_label);
|
| +
|
| + std::map<const Settings*, const Toolchain*> used_toolchains;
|
| + used_toolchains[setup.settings()] = setup.toolchain();
|
| + used_toolchains[&other_settings] = &other_toolchain;
|
| +
|
| + std::vector<const Target*> targets = { &target_foo, &target_bar };
|
|
|
| std::ostringstream ninja_out;
|
| std::ostringstream depfile_out;
|
| - std::vector<const Settings*> all_settings = {setup.settings()};
|
| - std::vector<const Target*> targets = {&target_foo, &target_bar};
|
| - std::vector<const Pool*> all_pools = {&swiming_pool};
|
| - NinjaBuildWriter writer(setup.build_settings(), all_settings,
|
| - setup.toolchain(), targets, all_pools, ninja_out,
|
| - depfile_out);
|
| +
|
| + NinjaBuildWriter writer(setup.build_settings(), used_toolchains,
|
| + setup.toolchain(), targets, ninja_out, depfile_out);
|
| ASSERT_TRUE(writer.Run(&err));
|
|
|
| const char expected_rule_gn[] = "rule gn\n";
|
| const char expected_build_ninja[] =
|
| "build build.ninja: gn\n"
|
| " generator = 1\n"
|
| - " depfile = build.ninja.d\n"
|
| - "\n";
|
| + " depfile = build.ninja.d\n";
|
| const char expected_link_pool[] =
|
| "pool link_pool\n"
|
| - " depth = 0\n"
|
| - "\n"
|
| - "pool other_toolchain_swiming_pool\n"
|
| - " depth = 42\n"
|
| - "\n";
|
| + " depth = 0\n";
|
| + const char expected_other_pool[] =
|
| + "pool other_toolchain_other_pool\n"
|
| + " depth = 42\n";
|
| const char expected_toolchain[] =
|
| - "subninja toolchain.ninja\n"
|
| - "\n";
|
| + "subninja toolchain.ninja\n";
|
| const char expected_targets[] =
|
| "build bar: phony obj/bar/bar.stamp\n"
|
| "build foo$:bar: phony obj/foo/bar.stamp\n"
|
| - "build bar$:bar: phony obj/bar/bar.stamp\n"
|
| - "\n";
|
| + "build bar$:bar: phony obj/bar/bar.stamp\n";
|
| const char expected_root_target[] =
|
| "build all: phony $\n"
|
| " obj/foo/bar.stamp $\n"
|
| - " obj/bar/bar.stamp\n"
|
| - "\n"
|
| + " obj/bar/bar.stamp\n";
|
| + const char expected_default[] =
|
| "default all\n";
|
| std::string out_str = ninja_out.str();
|
| #define EXPECT_SNIPPET(expected) \
|
| @@ -82,9 +92,11 @@ TEST(NinjaBuildWriter, TwoTargets) {
|
| EXPECT_SNIPPET(expected_rule_gn);
|
| EXPECT_SNIPPET(expected_build_ninja);
|
| EXPECT_SNIPPET(expected_link_pool);
|
| + EXPECT_SNIPPET(expected_other_pool);
|
| EXPECT_SNIPPET(expected_toolchain);
|
| EXPECT_SNIPPET(expected_targets);
|
| EXPECT_SNIPPET(expected_root_target);
|
| + EXPECT_SNIPPET(expected_default);
|
| #undef EXPECT_SNIPPET
|
| }
|
|
|
| @@ -109,14 +121,13 @@ TEST(NinjaBuildWriter, DuplicateOutputs) {
|
| target_bar.SetToolchain(setup.toolchain());
|
| ASSERT_TRUE(target_bar.OnResolved(&err));
|
|
|
| + std::map<const Settings*, const Toolchain*> used_toolchains;
|
| + used_toolchains[setup.settings()] = setup.toolchain();
|
| + std::vector<const Target*> targets = { &target_foo, &target_bar };
|
| std::ostringstream ninja_out;
|
| std::ostringstream depfile_out;
|
| - std::vector<const Settings*> all_settings = { setup.settings() };
|
| - std::vector<const Target*> targets = { &target_foo, &target_bar };
|
| - std::vector<const Pool*> all_pools;
|
| - NinjaBuildWriter writer(setup.build_settings(), all_settings,
|
| - setup.toolchain(), targets, all_pools, ninja_out,
|
| - depfile_out);
|
| + NinjaBuildWriter writer(setup.build_settings(), used_toolchains,
|
| + setup.toolchain(), targets, ninja_out, depfile_out);
|
| ASSERT_FALSE(writer.Run(&err));
|
|
|
| const char expected_help_test[] =
|
|
|