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

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

Issue 565283002: GN: Add notion of 'complete' static libraries, akin to GYP. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Actually process new argument. Duh. Created 6 years, 3 months 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/target.h » ('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/target.h" 9 #include "tools/gn/target.h"
10 #include "tools/gn/test_with_scope.h" 10 #include "tools/gn/test_with_scope.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 "\n" 118 "\n"
119 // There are no sources so there are no params to alink. (In practice 119 // There are no sources so there are no params to alink. (In practice
120 // this will probably fail in the archive tool.) 120 // this will probably fail in the archive tool.)
121 "build obj/foo/libstlib.a: alink\n" 121 "build obj/foo/libstlib.a: alink\n"
122 " ldflags =\n" 122 " ldflags =\n"
123 " libs =\n" 123 " libs =\n"
124 " output_extension = \n"; 124 " output_extension = \n";
125 std::string out_str = out.str(); 125 std::string out_str = out.str();
126 EXPECT_EQ(expected, out_str); 126 EXPECT_EQ(expected, out_str);
127 } 127 }
128
129 // Make the static library 'complete', which means it should be linked.
130 stlib_target.set_complete_static_lib(true);
131 {
132 std::ostringstream out;
133 NinjaBinaryTargetWriter writer(&stlib_target, out);
134 writer.Run();
135
136 const char expected[] =
137 "defines =\n"
138 "include_dirs =\n"
139 "cflags =\n"
140 "cflags_c =\n"
141 "cflags_cc =\n"
142 "cflags_objc =\n"
143 "cflags_objcc =\n"
144 "root_out_dir = .\n"
145 "target_out_dir = obj/foo\n"
146 "target_output_name = libstlib\n"
147 "\n"
148 "\n"
149 // Ordering of the obj files here should come out in the order
150 // specified, with the target's first, followed by the source set's, in
151 // order.
152 "build obj/foo/libstlib.a: alink obj/foo/bar.input1.o "
153 "obj/foo/bar.input2.o ../../foo/input3.o ../../foo/input4.obj\n"
154 " ldflags =\n"
155 " libs =\n"
156 " output_extension = \n";
157 std::string out_str = out.str();
158 EXPECT_EQ(expected, out_str);
159 }
128 } 160 }
129 161
130 // This tests that output extension overrides apply, and input dependencies 162 // This tests that output extension overrides apply, and input dependencies
131 // are applied. 163 // are applied.
132 TEST(NinjaBinaryTargetWriter, ProductExtensionAndInputDeps) { 164 TEST(NinjaBinaryTargetWriter, ProductExtensionAndInputDeps) {
133 TestWithScope setup; 165 TestWithScope setup;
134 Err err; 166 Err err;
135 167
136 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); 168 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
137 setup.settings()->set_target_os(Settings::LINUX); 169 setup.settings()->set_target_os(Settings::LINUX);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 "\n" 258 "\n"
227 "build ./libshlib.so: solink obj/foo/libshlib.input1.o " 259 "build ./libshlib.so: solink obj/foo/libshlib.input1.o "
228 "obj/foo/libshlib.input2.o\n" 260 "obj/foo/libshlib.input2.o\n"
229 " ldflags =\n" 261 " ldflags =\n"
230 " libs =\n" 262 " libs =\n"
231 " output_extension = .so\n"; 263 " output_extension = .so\n";
232 264
233 std::string out_str = out.str(); 265 std::string out_str = out.str();
234 EXPECT_EQ(expected, out_str); 266 EXPECT_EQ(expected, out_str);
235 } 267 }
OLDNEW
« no previous file with comments | « tools/gn/ninja_binary_target_writer.cc ('k') | tools/gn/target.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698