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

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

Issue 524623005: Add testonly flag to GN (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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_target_writer_unittest.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/err.h" 8 #include "tools/gn/err.h"
9 #include "tools/gn/escape.h" 9 #include "tools/gn/escape.h"
10 #include "tools/gn/substitution_list.h" 10 #include "tools/gn/substitution_list.h"
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 166
167 EXPECT_EQ(".", 167 EXPECT_EQ(".",
168 GetRelSubst("//baz.txt", SUBSTITUTION_SOURCE_ROOT_RELATIVE_DIR)); 168 GetRelSubst("//baz.txt", SUBSTITUTION_SOURCE_ROOT_RELATIVE_DIR));
169 169
170 #undef GetAbsSubst 170 #undef GetAbsSubst
171 #undef GetRelSubst 171 #undef GetRelSubst
172 } 172 }
173 173
174 TEST(SubstitutionWriter, TargetSubstitutions) { 174 TEST(SubstitutionWriter, TargetSubstitutions) {
175 TestWithScope setup; 175 TestWithScope setup;
176 Err err;
176 177
177 Target target(setup.settings(), Label(SourceDir("//foo/bar/"), "baz")); 178 Target target(setup.settings(), Label(SourceDir("//foo/bar/"), "baz"));
178 target.set_output_type(Target::STATIC_LIBRARY); 179 target.set_output_type(Target::STATIC_LIBRARY);
179 target.SetToolchain(setup.toolchain()); 180 target.SetToolchain(setup.toolchain());
180 target.OnResolved(); 181 ASSERT_TRUE(target.OnResolved(&err));
181 182
182 std::string result; 183 std::string result;
183 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution( 184 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution(
184 &target, SUBSTITUTION_LABEL, &result)); 185 &target, SUBSTITUTION_LABEL, &result));
185 EXPECT_EQ("//foo/bar:baz", result); 186 EXPECT_EQ("//foo/bar:baz", result);
186 187
187 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution( 188 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution(
188 &target, SUBSTITUTION_ROOT_GEN_DIR, &result)); 189 &target, SUBSTITUTION_ROOT_GEN_DIR, &result));
189 EXPECT_EQ("gen", result); 190 EXPECT_EQ("gen", result);
190 191
191 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution( 192 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution(
192 &target, SUBSTITUTION_ROOT_OUT_DIR, &result)); 193 &target, SUBSTITUTION_ROOT_OUT_DIR, &result));
193 EXPECT_EQ(".", result); 194 EXPECT_EQ(".", result);
194 195
195 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution( 196 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution(
196 &target, SUBSTITUTION_TARGET_GEN_DIR, &result)); 197 &target, SUBSTITUTION_TARGET_GEN_DIR, &result));
197 EXPECT_EQ("gen/foo/bar", result); 198 EXPECT_EQ("gen/foo/bar", result);
198 199
199 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution( 200 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution(
200 &target, SUBSTITUTION_TARGET_OUT_DIR, &result)); 201 &target, SUBSTITUTION_TARGET_OUT_DIR, &result));
201 EXPECT_EQ("obj/foo/bar", result); 202 EXPECT_EQ("obj/foo/bar", result);
202 203
203 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution( 204 EXPECT_TRUE(SubstitutionWriter::GetTargetSubstitution(
204 &target, SUBSTITUTION_TARGET_OUTPUT_NAME, &result)); 205 &target, SUBSTITUTION_TARGET_OUTPUT_NAME, &result));
205 EXPECT_EQ("libbaz", result); 206 EXPECT_EQ("libbaz", result);
206 } 207 }
207 208
208 TEST(SubstitutionWriter, CompilerSubstitutions) { 209 TEST(SubstitutionWriter, CompilerSubstitutions) {
209 TestWithScope setup; 210 TestWithScope setup;
211 Err err;
210 212
211 Target target(setup.settings(), Label(SourceDir("//foo/bar/"), "baz")); 213 Target target(setup.settings(), Label(SourceDir("//foo/bar/"), "baz"));
212 target.set_output_type(Target::STATIC_LIBRARY); 214 target.set_output_type(Target::STATIC_LIBRARY);
213 target.SetToolchain(setup.toolchain()); 215 target.SetToolchain(setup.toolchain());
214 target.OnResolved(); 216 ASSERT_TRUE(target.OnResolved(&err));
215 217
216 // The compiler substitution is just source + target combined. So test one 218 // The compiler substitution is just source + target combined. So test one
217 // of each of those classes of things to make sure this is hooked up. 219 // of each of those classes of things to make sure this is hooked up.
218 EXPECT_EQ("file", 220 EXPECT_EQ("file",
219 SubstitutionWriter::GetCompilerSubstitution( 221 SubstitutionWriter::GetCompilerSubstitution(
220 &target, SourceFile("//foo/bar/file.txt"), 222 &target, SourceFile("//foo/bar/file.txt"),
221 SUBSTITUTION_SOURCE_NAME_PART)); 223 SUBSTITUTION_SOURCE_NAME_PART));
222 EXPECT_EQ("gen/foo/bar", 224 EXPECT_EQ("gen/foo/bar",
223 SubstitutionWriter::GetCompilerSubstitution( 225 SubstitutionWriter::GetCompilerSubstitution(
224 &target, SourceFile("//foo/bar/file.txt"), 226 &target, SourceFile("//foo/bar/file.txt"),
225 SUBSTITUTION_TARGET_GEN_DIR)); 227 SUBSTITUTION_TARGET_GEN_DIR));
226 } 228 }
227 229
228 TEST(SubstitutionWriter, LinkerSubstitutions) { 230 TEST(SubstitutionWriter, LinkerSubstitutions) {
229 TestWithScope setup; 231 TestWithScope setup;
232 Err err;
230 233
231 Target target(setup.settings(), Label(SourceDir("//foo/bar/"), "baz")); 234 Target target(setup.settings(), Label(SourceDir("//foo/bar/"), "baz"));
232 target.set_output_type(Target::SHARED_LIBRARY); 235 target.set_output_type(Target::SHARED_LIBRARY);
233 target.SetToolchain(setup.toolchain()); 236 target.SetToolchain(setup.toolchain());
234 target.OnResolved(); 237 ASSERT_TRUE(target.OnResolved(&err));
235 238
236 const Tool* tool = setup.toolchain()->GetToolForTargetFinalOutput(&target); 239 const Tool* tool = setup.toolchain()->GetToolForTargetFinalOutput(&target);
237 240
238 // The compiler substitution is just target + OUTPUT_EXTENSION combined. So 241 // The compiler substitution is just target + OUTPUT_EXTENSION combined. So
239 // test one target one plus the output extension. 242 // test one target one plus the output extension.
240 EXPECT_EQ(".so", 243 EXPECT_EQ(".so",
241 SubstitutionWriter::GetLinkerSubstitution( 244 SubstitutionWriter::GetLinkerSubstitution(
242 &target, tool, SUBSTITUTION_OUTPUT_EXTENSION)); 245 &target, tool, SUBSTITUTION_OUTPUT_EXTENSION));
243 EXPECT_EQ("gen/foo/bar", 246 EXPECT_EQ("gen/foo/bar",
244 SubstitutionWriter::GetLinkerSubstitution( 247 SubstitutionWriter::GetLinkerSubstitution(
245 &target, tool, SUBSTITUTION_TARGET_GEN_DIR)); 248 &target, tool, SUBSTITUTION_TARGET_GEN_DIR));
246 249
247 // Test that we handle paths that end up in the root build dir properly 250 // Test that we handle paths that end up in the root build dir properly
248 // (no leading "./" or "/"). 251 // (no leading "./" or "/").
249 Err err;
250 SubstitutionPattern pattern; 252 SubstitutionPattern pattern;
251 ASSERT_TRUE( 253 ASSERT_TRUE(
252 pattern.Parse("{{root_out_dir}}/{{target_output_name}}.so", NULL, &err)); 254 pattern.Parse("{{root_out_dir}}/{{target_output_name}}.so", NULL, &err));
253 255
254 OutputFile output = SubstitutionWriter::ApplyPatternToLinkerAsOutputFile( 256 OutputFile output = SubstitutionWriter::ApplyPatternToLinkerAsOutputFile(
255 &target, tool, pattern); 257 &target, tool, pattern);
256 EXPECT_EQ("./libbaz.so", output.value()); 258 EXPECT_EQ("./libbaz.so", output.value());
257 } 259 }
OLDNEW
« no previous file with comments | « tools/gn/ninja_target_writer_unittest.cc ('k') | tools/gn/target.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698