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/builder.h" | 6 #include "tools/gn/builder.h" |
7 #include "tools/gn/loader.h" | 7 #include "tools/gn/loader.h" |
8 #include "tools/gn/target.h" | 8 #include "tools/gn/target.h" |
9 #include "tools/gn/test_with_scope.h" | 9 #include "tools/gn/test_with_scope.h" |
10 #include "tools/gn/toolchain.h" | 10 #include "tools/gn/toolchain.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 builder_(new Builder(loader_.get())), | 64 builder_(new Builder(loader_.get())), |
65 settings_(&build_settings_, std::string()), | 65 settings_(&build_settings_, std::string()), |
66 scope_(&settings_) { | 66 scope_(&settings_) { |
67 build_settings_.SetBuildDir(SourceDir("//out/")); | 67 build_settings_.SetBuildDir(SourceDir("//out/")); |
68 settings_.set_toolchain_label(Label(SourceDir("//tc/"), "default")); | 68 settings_.set_toolchain_label(Label(SourceDir("//tc/"), "default")); |
69 settings_.set_default_toolchain_label(settings_.toolchain_label()); | 69 settings_.set_default_toolchain_label(settings_.toolchain_label()); |
70 } | 70 } |
71 | 71 |
72 Toolchain* DefineToolchain() { | 72 Toolchain* DefineToolchain() { |
73 Toolchain* tc = new Toolchain(&settings_, settings_.toolchain_label()); | 73 Toolchain* tc = new Toolchain(&settings_, settings_.toolchain_label()); |
| 74 TestWithScope::SetupToolchain(tc); |
74 builder_->ItemDefined(scoped_ptr<Item>(tc)); | 75 builder_->ItemDefined(scoped_ptr<Item>(tc)); |
75 return tc; | 76 return tc; |
76 } | 77 } |
77 | 78 |
78 protected: | 79 protected: |
79 scoped_refptr<MockLoader> loader_; | 80 scoped_refptr<MockLoader> loader_; |
80 scoped_refptr<Builder> builder_; | 81 scoped_refptr<Builder> builder_; |
81 BuildSettings build_settings_; | 82 BuildSettings build_settings_; |
82 Settings settings_; | 83 Settings settings_; |
83 Scope scope_; | 84 Scope scope_; |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
177 | 178 |
178 // Tests that the should generate bit is set and propogated properly. | 179 // Tests that the should generate bit is set and propogated properly. |
179 TEST_F(BuilderTest, ShouldGenerate) { | 180 TEST_F(BuilderTest, ShouldGenerate) { |
180 DefineToolchain(); | 181 DefineToolchain(); |
181 | 182 |
182 // Define a secondary toolchain. | 183 // Define a secondary toolchain. |
183 Settings settings2(&build_settings_, "secondary/"); | 184 Settings settings2(&build_settings_, "secondary/"); |
184 Label toolchain_label2(SourceDir("//tc/"), "secondary"); | 185 Label toolchain_label2(SourceDir("//tc/"), "secondary"); |
185 settings2.set_toolchain_label(toolchain_label2); | 186 settings2.set_toolchain_label(toolchain_label2); |
186 Toolchain* tc2 = new Toolchain(&settings2, toolchain_label2); | 187 Toolchain* tc2 = new Toolchain(&settings2, toolchain_label2); |
| 188 TestWithScope::SetupToolchain(tc2); |
187 builder_->ItemDefined(scoped_ptr<Item>(tc2)); | 189 builder_->ItemDefined(scoped_ptr<Item>(tc2)); |
188 | 190 |
189 // Construct a dependency chain: A -> B. A is in the default toolchain, B | 191 // Construct a dependency chain: A -> B. A is in the default toolchain, B |
190 // is not. | 192 // is not. |
191 Label a_label(SourceDir("//foo/"), "a", | 193 Label a_label(SourceDir("//foo/"), "a", |
192 settings_.toolchain_label().dir(), "a"); | 194 settings_.toolchain_label().dir(), "a"); |
193 Label b_label(SourceDir("//foo/"), "b", | 195 Label b_label(SourceDir("//foo/"), "b", |
194 toolchain_label2.dir(), toolchain_label2.name()); | 196 toolchain_label2.dir(), toolchain_label2.name()); |
195 | 197 |
196 // First define B. | 198 // First define B. |
(...skipping 11 matching lines...) Expand all Loading... |
208 a->set_output_type(Target::EXECUTABLE); | 210 a->set_output_type(Target::EXECUTABLE); |
209 builder_->ItemDefined(scoped_ptr<Item>(a)); | 211 builder_->ItemDefined(scoped_ptr<Item>(a)); |
210 | 212 |
211 // A should have the generate bit set since it's in the default toolchain. | 213 // A should have the generate bit set since it's in the default toolchain. |
212 BuilderRecord* a_record = builder_->GetRecord(a_label); | 214 BuilderRecord* a_record = builder_->GetRecord(a_label); |
213 EXPECT_TRUE(a_record->should_generate()); | 215 EXPECT_TRUE(a_record->should_generate()); |
214 | 216 |
215 // It should have gotten pushed to B. | 217 // It should have gotten pushed to B. |
216 EXPECT_TRUE(b_record->should_generate()); | 218 EXPECT_TRUE(b_record->should_generate()); |
217 } | 219 } |
OLD | NEW |