| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
| 6 #include "tools/gn/build_settings.h" | 6 #include "tools/gn/build_settings.h" |
| 7 #include "tools/gn/config.h" | 7 #include "tools/gn/config.h" |
| 8 #include "tools/gn/settings.h" | 8 #include "tools/gn/settings.h" |
| 9 #include "tools/gn/target.h" | 9 #include "tools/gn/target.h" |
| 10 #include "tools/gn/toolchain.h" | 10 #include "tools/gn/toolchain.h" |
| 11 | 11 |
| 12 namespace { | 12 namespace { |
| 13 | 13 |
| 14 class TargetTest : public testing::Test { | 14 class TargetTest : public testing::Test { |
| 15 public: | 15 public: |
| 16 TargetTest() | 16 TargetTest() |
| 17 : build_settings_(), | 17 : build_settings_(), |
| 18 toolchain_(Label(SourceDir("//tc/"), "tc")), | 18 settings_(&build_settings_, std::string()), |
| 19 settings_(&build_settings_, &toolchain_, std::string()) { | 19 toolchain_(&settings_, Label(SourceDir("//tc/"), "tc")) { |
| 20 settings_.set_toolchain_label(toolchain_.label()); |
| 20 } | 21 } |
| 21 virtual ~TargetTest() { | 22 virtual ~TargetTest() { |
| 22 } | 23 } |
| 23 | 24 |
| 24 protected: | 25 protected: |
| 25 BuildSettings build_settings_; | 26 BuildSettings build_settings_; |
| 27 Settings settings_; |
| 26 Toolchain toolchain_; | 28 Toolchain toolchain_; |
| 27 Settings settings_; | |
| 28 }; | 29 }; |
| 29 | 30 |
| 30 } // namespace | 31 } // namespace |
| 31 | 32 |
| 32 // Tests that depending on a group is like depending directly on the group's | 33 // Tests that depending on a group is like depending directly on the group's |
| 33 // deps. | 34 // deps. |
| 34 TEST_F(TargetTest, GroupDeps) { | 35 TEST_F(TargetTest, GroupDeps) { |
| 35 // Two low-level targets. | 36 // Two low-level targets. |
| 36 Target x(&settings_, Label(SourceDir("//component/"), "x")); | 37 Target x(&settings_, Label(SourceDir("//component/"), "x")); |
| 37 Target y(&settings_, Label(SourceDir("//component/"), "y")); | 38 Target y(&settings_, Label(SourceDir("//component/"), "y")); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 115 Target a(&settings_, Label(SourceDir("//foo/"), "a")); | 116 Target a(&settings_, Label(SourceDir("//foo/"), "a")); |
| 116 a.set_output_type(Target::EXECUTABLE); | 117 a.set_output_type(Target::EXECUTABLE); |
| 117 Target b(&settings_, Label(SourceDir("//foo/"), "b")); | 118 Target b(&settings_, Label(SourceDir("//foo/"), "b")); |
| 118 b.set_output_type(Target::STATIC_LIBRARY); | 119 b.set_output_type(Target::STATIC_LIBRARY); |
| 119 Target c(&settings_, Label(SourceDir("//foo/"), "c")); | 120 Target c(&settings_, Label(SourceDir("//foo/"), "c")); |
| 120 c.set_output_type(Target::STATIC_LIBRARY); | 121 c.set_output_type(Target::STATIC_LIBRARY); |
| 121 a.deps().push_back(LabelTargetPair(&b)); | 122 a.deps().push_back(LabelTargetPair(&b)); |
| 122 b.deps().push_back(LabelTargetPair(&c)); | 123 b.deps().push_back(LabelTargetPair(&c)); |
| 123 | 124 |
| 124 // Normal non-inherited config. | 125 // Normal non-inherited config. |
| 125 Config config(Label(SourceDir("//foo/"), "config")); | 126 Config config(&settings_, Label(SourceDir("//foo/"), "config")); |
| 126 c.configs().push_back(LabelConfigPair(&config)); | 127 c.configs().push_back(LabelConfigPair(&config)); |
| 127 | 128 |
| 128 // All dependent config. | 129 // All dependent config. |
| 129 Config all(Label(SourceDir("//foo/"), "all")); | 130 Config all(&settings_, Label(SourceDir("//foo/"), "all")); |
| 130 c.all_dependent_configs().push_back(LabelConfigPair(&all)); | 131 c.all_dependent_configs().push_back(LabelConfigPair(&all)); |
| 131 | 132 |
| 132 // Direct dependent config. | 133 // Direct dependent config. |
| 133 Config direct(Label(SourceDir("//foo/"), "direct")); | 134 Config direct(&settings_, Label(SourceDir("//foo/"), "direct")); |
| 134 c.direct_dependent_configs().push_back(LabelConfigPair(&direct)); | 135 c.direct_dependent_configs().push_back(LabelConfigPair(&direct)); |
| 135 | 136 |
| 136 c.OnResolved(); | 137 c.OnResolved(); |
| 137 b.OnResolved(); | 138 b.OnResolved(); |
| 138 a.OnResolved(); | 139 a.OnResolved(); |
| 139 | 140 |
| 140 // B should have gotten both dependent configs from C. | 141 // B should have gotten both dependent configs from C. |
| 141 ASSERT_EQ(2u, b.configs().size()); | 142 ASSERT_EQ(2u, b.configs().size()); |
| 142 EXPECT_EQ(&all, b.configs()[0].ptr); | 143 EXPECT_EQ(&all, b.configs()[0].ptr); |
| 143 EXPECT_EQ(&direct, b.configs()[1].ptr); | 144 EXPECT_EQ(&direct, b.configs()[1].ptr); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 161 b_fwd.OnResolved(); | 162 b_fwd.OnResolved(); |
| 162 a_fwd.OnResolved(); | 163 a_fwd.OnResolved(); |
| 163 | 164 |
| 164 // A_fwd should now have both configs. | 165 // A_fwd should now have both configs. |
| 165 ASSERT_EQ(2u, a_fwd.configs().size()); | 166 ASSERT_EQ(2u, a_fwd.configs().size()); |
| 166 EXPECT_EQ(&all, a_fwd.configs()[0].ptr); | 167 EXPECT_EQ(&all, a_fwd.configs()[0].ptr); |
| 167 EXPECT_EQ(&direct, a_fwd.configs()[1].ptr); | 168 EXPECT_EQ(&direct, a_fwd.configs()[1].ptr); |
| 168 ASSERT_EQ(1u, a_fwd.all_dependent_configs().size()); | 169 ASSERT_EQ(1u, a_fwd.all_dependent_configs().size()); |
| 169 EXPECT_EQ(&all, a_fwd.all_dependent_configs()[0].ptr); | 170 EXPECT_EQ(&all, a_fwd.all_dependent_configs()[0].ptr); |
| 170 } | 171 } |
| OLD | NEW |