Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(137)

Side by Side Diff: tools/gn/ninja_binary_target_writer_unittest.cc

Issue 1431323003: Remove obsolete OS handling in GN. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/gn/ninja_binary_target_writer.cc ('k') | tools/gn/ninja_copy_target_writer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 <sstream> 5 #include <sstream>
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "tools/gn/ninja_binary_target_writer.h" 8 #include "tools/gn/ninja_binary_target_writer.h"
9 #include "tools/gn/scheduler.h" 9 #include "tools/gn/scheduler.h"
10 #include "tools/gn/target.h" 10 #include "tools/gn/target.h"
11 #include "tools/gn/test_with_scope.h" 11 #include "tools/gn/test_with_scope.h"
12 12
13 TEST(NinjaBinaryTargetWriter, SourceSet) { 13 TEST(NinjaBinaryTargetWriter, SourceSet) {
14 TestWithScope setup; 14 TestWithScope setup;
15 Err err; 15 Err err;
16 16
17 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); 17 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
18 setup.settings()->set_target_os(Settings::WIN);
19 18
20 Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); 19 Target target(setup.settings(), Label(SourceDir("//foo/"), "bar"));
21 target.set_output_type(Target::SOURCE_SET); 20 target.set_output_type(Target::SOURCE_SET);
22 target.visibility().SetPublic(); 21 target.visibility().SetPublic();
23 target.sources().push_back(SourceFile("//foo/input1.cc")); 22 target.sources().push_back(SourceFile("//foo/input1.cc"));
24 target.sources().push_back(SourceFile("//foo/input2.cc")); 23 target.sources().push_back(SourceFile("//foo/input2.cc"));
25 // Also test object files, which should be just passed through to the 24 // Also test object files, which should be just passed through to the
26 // dependents to link. 25 // dependents to link.
27 target.sources().push_back(SourceFile("//foo/input3.o")); 26 target.sources().push_back(SourceFile("//foo/input3.o"));
28 target.sources().push_back(SourceFile("//foo/input4.obj")); 27 target.sources().push_back(SourceFile("//foo/input4.obj"));
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 } 144 }
146 } 145 }
147 146
148 // This tests that output extension overrides apply, and input dependencies 147 // This tests that output extension overrides apply, and input dependencies
149 // are applied. 148 // are applied.
150 TEST(NinjaBinaryTargetWriter, ProductExtensionAndInputDeps) { 149 TEST(NinjaBinaryTargetWriter, ProductExtensionAndInputDeps) {
151 TestWithScope setup; 150 TestWithScope setup;
152 Err err; 151 Err err;
153 152
154 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); 153 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
155 setup.settings()->set_target_os(Settings::LINUX);
156 154
157 // An action for our library to depend on. 155 // An action for our library to depend on.
158 Target action(setup.settings(), Label(SourceDir("//foo/"), "action")); 156 Target action(setup.settings(), Label(SourceDir("//foo/"), "action"));
159 action.set_output_type(Target::ACTION_FOREACH); 157 action.set_output_type(Target::ACTION_FOREACH);
160 action.visibility().SetPublic(); 158 action.visibility().SetPublic();
161 action.SetToolchain(setup.toolchain()); 159 action.SetToolchain(setup.toolchain());
162 ASSERT_TRUE(action.OnResolved(&err)); 160 ASSERT_TRUE(action.OnResolved(&err));
163 161
164 // A shared library w/ the product_extension set to a custom value. 162 // A shared library w/ the product_extension set to a custom value.
165 Target target(setup.settings(), Label(SourceDir("//foo/"), "shlib")); 163 Target target(setup.settings(), Label(SourceDir("//foo/"), "shlib"));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 199
202 std::string out_str = out.str(); 200 std::string out_str = out.str();
203 EXPECT_EQ(expected, out_str); 201 EXPECT_EQ(expected, out_str);
204 } 202 }
205 203
206 TEST(NinjaBinaryTargetWriter, EmptyProductExtension) { 204 TEST(NinjaBinaryTargetWriter, EmptyProductExtension) {
207 TestWithScope setup; 205 TestWithScope setup;
208 Err err; 206 Err err;
209 207
210 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); 208 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
211 setup.settings()->set_target_os(Settings::LINUX);
212 209
213 // This test is the same as ProductExtension, except that 210 // This test is the same as ProductExtension, except that
214 // we call set_output_extension("") and ensure that we still get the default. 211 // we call set_output_extension("") and ensure that we still get the default.
215 Target target(setup.settings(), Label(SourceDir("//foo/"), "shlib")); 212 Target target(setup.settings(), Label(SourceDir("//foo/"), "shlib"));
216 target.set_output_type(Target::SHARED_LIBRARY); 213 target.set_output_type(Target::SHARED_LIBRARY);
217 target.set_output_extension(std::string()); 214 target.set_output_extension(std::string());
218 target.sources().push_back(SourceFile("//foo/input1.cc")); 215 target.sources().push_back(SourceFile("//foo/input1.cc"));
219 target.sources().push_back(SourceFile("//foo/input2.cc")); 216 target.sources().push_back(SourceFile("//foo/input2.cc"));
220 217
221 target.SetToolchain(setup.toolchain()); 218 target.SetToolchain(setup.toolchain());
(...skipping 21 matching lines...) Expand all
243 " libs =\n" 240 " libs =\n"
244 " output_extension = .so\n"; 241 " output_extension = .so\n";
245 242
246 std::string out_str = out.str(); 243 std::string out_str = out.str();
247 EXPECT_EQ(expected, out_str); 244 EXPECT_EQ(expected, out_str);
248 } 245 }
249 246
250 TEST(NinjaBinaryTargetWriter, SourceSetDataDeps) { 247 TEST(NinjaBinaryTargetWriter, SourceSetDataDeps) {
251 TestWithScope setup; 248 TestWithScope setup;
252 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); 249 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
253 setup.settings()->set_target_os(Settings::LINUX);
254 250
255 Err err; 251 Err err;
256 252
257 // This target is a data (runtime) dependency of the intermediate target. 253 // This target is a data (runtime) dependency of the intermediate target.
258 Target data(setup.settings(), Label(SourceDir("//foo/"), "data_target")); 254 Target data(setup.settings(), Label(SourceDir("//foo/"), "data_target"));
259 data.set_output_type(Target::EXECUTABLE); 255 data.set_output_type(Target::EXECUTABLE);
260 data.visibility().SetPublic(); 256 data.visibility().SetPublic();
261 data.SetToolchain(setup.toolchain()); 257 data.SetToolchain(setup.toolchain());
262 ASSERT_TRUE(data.OnResolved(&err)); 258 ASSERT_TRUE(data.OnResolved(&err));
263 259
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 "obj/foo/inter.stamp\n" 321 "obj/foo/inter.stamp\n"
326 " ldflags =\n" 322 " ldflags =\n"
327 " libs =\n" 323 " libs =\n"
328 " output_extension = \n"; 324 " output_extension = \n";
329 EXPECT_EQ(final_expected, final_out.str()); 325 EXPECT_EQ(final_expected, final_out.str());
330 } 326 }
331 327
332 TEST(NinjaBinaryTargetWriter, SharedLibraryModuleDefinitionFile) { 328 TEST(NinjaBinaryTargetWriter, SharedLibraryModuleDefinitionFile) {
333 TestWithScope setup; 329 TestWithScope setup;
334 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); 330 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
335 setup.settings()->set_target_os(Settings::WIN);
336 331
337 Target shared_lib(setup.settings(), Label(SourceDir("//foo/"), "bar")); 332 Target shared_lib(setup.settings(), Label(SourceDir("//foo/"), "bar"));
338 shared_lib.set_output_type(Target::SHARED_LIBRARY); 333 shared_lib.set_output_type(Target::SHARED_LIBRARY);
339 shared_lib.SetToolchain(setup.toolchain()); 334 shared_lib.SetToolchain(setup.toolchain());
340 shared_lib.sources().push_back(SourceFile("//foo/sources.cc")); 335 shared_lib.sources().push_back(SourceFile("//foo/sources.cc"));
341 shared_lib.sources().push_back(SourceFile("//foo/bar.def")); 336 shared_lib.sources().push_back(SourceFile("//foo/bar.def"));
342 337
343 Err err; 338 Err err;
344 ASSERT_TRUE(shared_lib.OnResolved(&err)); 339 ASSERT_TRUE(shared_lib.OnResolved(&err));
345 340
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
696 691
697 EXPECT_FALSE(scheduler.is_failed()); 692 EXPECT_FALSE(scheduler.is_failed());
698 693
699 std::ostringstream out; 694 std::ostringstream out;
700 NinjaBinaryTargetWriter writer(&target, out); 695 NinjaBinaryTargetWriter writer(&target, out);
701 writer.Run(); 696 writer.Run();
702 697
703 // Should have issued an error. 698 // Should have issued an error.
704 EXPECT_TRUE(scheduler.is_failed()); 699 EXPECT_TRUE(scheduler.is_failed());
705 } 700 }
OLDNEW
« no previous file with comments | « tools/gn/ninja_binary_target_writer.cc ('k') | tools/gn/ninja_copy_target_writer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698