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 <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" |
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 // that writes this. | 194 // that writes this. |
195 "obj/foo/libshlib.input2.o || obj/foo/action.stamp\n" | 195 "obj/foo/libshlib.input2.o || obj/foo/action.stamp\n" |
196 " ldflags =\n" | 196 " ldflags =\n" |
197 " libs =\n" | 197 " libs =\n" |
198 " output_extension = .so.6\n"; | 198 " output_extension = .so.6\n"; |
199 | 199 |
200 std::string out_str = out.str(); | 200 std::string out_str = out.str(); |
201 EXPECT_EQ(expected, out_str); | 201 EXPECT_EQ(expected, out_str); |
202 } | 202 } |
203 | 203 |
| 204 // Tests libs are applied. |
| 205 TEST(NinjaBinaryTargetWriter, LibsAndLibDirs) { |
| 206 TestWithScope setup; |
| 207 Err err; |
| 208 |
| 209 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); |
| 210 |
| 211 // A shared library w/ libs and lib_dirs. |
| 212 Target target(setup.settings(), Label(SourceDir("//foo/"), "shlib")); |
| 213 target.set_output_type(Target::SHARED_LIBRARY); |
| 214 target.config_values().libs().push_back(LibFile(SourceFile("//foo/lib1.a"))); |
| 215 target.config_values().libs().push_back(LibFile("foo")); |
| 216 target.config_values().lib_dirs().push_back(SourceDir("//foo/bar/")); |
| 217 target.SetToolchain(setup.toolchain()); |
| 218 ASSERT_TRUE(target.OnResolved(&err)); |
| 219 |
| 220 std::ostringstream out; |
| 221 NinjaBinaryTargetWriter writer(&target, out); |
| 222 writer.Run(); |
| 223 |
| 224 const char expected[] = |
| 225 "defines =\n" |
| 226 "include_dirs =\n" |
| 227 "root_out_dir = .\n" |
| 228 "target_out_dir = obj/foo\n" |
| 229 "target_output_name = libshlib\n" |
| 230 "\n" |
| 231 "\n" |
| 232 "build ./libshlib.so: solink | ../../foo/lib1.a\n" |
| 233 " ldflags = -L../../foo/bar\n" |
| 234 " libs = ../../foo/lib1.a -lfoo\n" |
| 235 " output_extension = .so\n"; |
| 236 |
| 237 std::string out_str = out.str(); |
| 238 EXPECT_EQ(expected, out_str); |
| 239 } |
| 240 |
204 TEST(NinjaBinaryTargetWriter, EmptyProductExtension) { | 241 TEST(NinjaBinaryTargetWriter, EmptyProductExtension) { |
205 TestWithScope setup; | 242 TestWithScope setup; |
206 Err err; | 243 Err err; |
207 | 244 |
208 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); | 245 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); |
209 | 246 |
210 // This test is the same as ProductExtension, except that | 247 // This test is the same as ProductExtension, except that |
211 // we call set_output_extension("") and ensure that we still get the default. | 248 // we call set_output_extension("") and ensure that we still get the default. |
212 Target target(setup.settings(), Label(SourceDir("//foo/"), "shlib")); | 249 Target target(setup.settings(), Label(SourceDir("//foo/"), "shlib")); |
213 target.set_output_type(Target::SHARED_LIBRARY); | 250 target.set_output_type(Target::SHARED_LIBRARY); |
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
691 | 728 |
692 EXPECT_FALSE(scheduler.is_failed()); | 729 EXPECT_FALSE(scheduler.is_failed()); |
693 | 730 |
694 std::ostringstream out; | 731 std::ostringstream out; |
695 NinjaBinaryTargetWriter writer(&target, out); | 732 NinjaBinaryTargetWriter writer(&target, out); |
696 writer.Run(); | 733 writer.Run(); |
697 | 734 |
698 // Should have issued an error. | 735 // Should have issued an error. |
699 EXPECT_TRUE(scheduler.is_failed()); | 736 EXPECT_TRUE(scheduler.is_failed()); |
700 } | 737 } |
OLD | NEW |