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

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

Issue 321323004: Add yasm to the GN build (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « tools/gn/ninja_action_target_writer.cc ('k') | no next file » | 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 <algorithm> 5 #include <algorithm>
6 #include <sstream> 6 #include <sstream>
7 7
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "tools/gn/file_template.h" 9 #include "tools/gn/file_template.h"
10 #include "tools/gn/ninja_action_target_writer.h" 10 #include "tools/gn/ninja_action_target_writer.h"
(...skipping 14 matching lines...) Expand all
25 25
26 FileTemplate output_template = writer.GetOutputTemplate(); 26 FileTemplate output_template = writer.GetOutputTemplate();
27 27
28 SourceFile source("//foo/bar.in"); 28 SourceFile source("//foo/bar.in");
29 std::vector<OutputFile> output_files; 29 std::vector<OutputFile> output_files;
30 writer.WriteOutputFilesForBuildLine(output_template, source, &output_files); 30 writer.WriteOutputFilesForBuildLine(output_template, source, &output_files);
31 31
32 EXPECT_EQ(" gen/a$ bbar.h gen/bar.cc", out.str()); 32 EXPECT_EQ(" gen/a$ bbar.h gen/bar.cc", out.str());
33 } 33 }
34 34
35 TEST(NinjaActionTargetWriter, WriteOutputFilesForBuildLineWithDepfile) {
36 TestWithScope setup;
37 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
38 Target target(setup.settings(), Label(SourceDir("//foo/"), "bar"));
39
40 target.action_values().set_depfile(
41 SourceFile("//out/Debug/gen/{{source_name_part}}.d"));
42 target.action_values().outputs().push_back(
43 SourceFile("//out/Debug/gen/{{source_name_part}}.h"));
44 target.action_values().outputs().push_back(
45 SourceFile("//out/Debug/gen/{{source_name_part}}.cc"));
46
47 std::ostringstream out;
48 NinjaActionTargetWriter writer(&target, setup.toolchain(), out);
49
50 FileTemplate output_template = writer.GetOutputTemplate();
51
52 SourceFile source("//foo/bar.in");
53 std::vector<OutputFile> output_files;
54 writer.WriteOutputFilesForBuildLine(output_template, source, &output_files);
55
56 EXPECT_EQ(" gen/bar.d gen/bar.h gen/bar.cc", out.str());
57 }
58
59 TEST(NinjaActionTargetWriter, WriteArgsSubstitutions) { 35 TEST(NinjaActionTargetWriter, WriteArgsSubstitutions) {
60 TestWithScope setup; 36 TestWithScope setup;
61 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); 37 setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
62 Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); 38 Target target(setup.settings(), Label(SourceDir("//foo/"), "bar"));
63 39
64 std::ostringstream out; 40 std::ostringstream out;
65 NinjaActionTargetWriter writer(&target, setup.toolchain(), out); 41 NinjaActionTargetWriter writer(&target, setup.toolchain(), out);
66 42
67 std::vector<std::string> args; 43 std::vector<std::string> args;
68 args.push_back("-i"); 44 args.push_back("-i");
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 #if defined(OS_WIN) 286 #if defined(OS_WIN)
311 "\"--out=foo$ bar${source_name_part}.o\"\n" 287 "\"--out=foo$ bar${source_name_part}.o\"\n"
312 #else 288 #else
313 "--out=foo\\$ bar${source_name_part}.o\n" 289 "--out=foo\\$ bar${source_name_part}.o\n"
314 #endif 290 #endif
315 " description = ACTION //foo:bar()\n" 291 " description = ACTION //foo:bar()\n"
316 " restat = 1\n" 292 " restat = 1\n"
317 "build obj/foo/bar.inputdeps.stamp: stamp ../../foo/script.py " 293 "build obj/foo/bar.inputdeps.stamp: stamp ../../foo/script.py "
318 "../../foo/included.txt\n" 294 "../../foo/included.txt\n"
319 "\n" 295 "\n"
320 "build gen/input1.d input1.out: __foo_bar___rule ../../foo/input1.txt" 296 "build input1.out: __foo_bar___rule ../../foo/input1.txt"
321 " | obj/foo/bar.inputdeps.stamp\n" 297 " | obj/foo/bar.inputdeps.stamp\n"
322 " source = ../../foo/input1.txt\n" 298 " source = ../../foo/input1.txt\n"
323 " source_name_part = input1\n" 299 " source_name_part = input1\n"
324 " depfile = gen/input1.d\n" 300 " depfile = gen/input1.d\n"
325 "build gen/input2.d input2.out: __foo_bar___rule ../../foo/input2.txt" 301 "build input2.out: __foo_bar___rule ../../foo/input2.txt"
326 " | obj/foo/bar.inputdeps.stamp\n" 302 " | obj/foo/bar.inputdeps.stamp\n"
327 " source = ../../foo/input2.txt\n" 303 " source = ../../foo/input2.txt\n"
328 " source_name_part = input2\n" 304 " source_name_part = input2\n"
329 " depfile = gen/input2.d\n" 305 " depfile = gen/input2.d\n"
330 "\n" 306 "\n"
331 "build obj/foo/bar.stamp: stamp input1.out input2.out\n"; 307 "build obj/foo/bar.stamp: stamp input1.out input2.out\n";
332 EXPECT_EQ(expected_linux, out.str()); 308 EXPECT_EQ(expected_linux, out.str());
333 } 309 }
334 310
335 // Windows. 311 // Windows.
(...skipping 15 matching lines...) Expand all
351 " rspfile = __foo_bar___rule.$unique_name.rsp\n" 327 " rspfile = __foo_bar___rule.$unique_name.rsp\n"
352 " rspfile_content = C$:/python/python.exe ../../foo/script.py -i " 328 " rspfile_content = C$:/python/python.exe ../../foo/script.py -i "
353 #if defined(OS_WIN) 329 #if defined(OS_WIN)
354 "${source} \"--out=foo$ bar${source_name_part}.o\"\n" 330 "${source} \"--out=foo$ bar${source_name_part}.o\"\n"
355 #else 331 #else
356 "${source} --out=foo\\$ bar${source_name_part}.o\n" 332 "${source} --out=foo\\$ bar${source_name_part}.o\n"
357 #endif 333 #endif
358 "build obj/foo/bar.inputdeps.stamp: stamp ../../foo/script.py " 334 "build obj/foo/bar.inputdeps.stamp: stamp ../../foo/script.py "
359 "../../foo/included.txt\n" 335 "../../foo/included.txt\n"
360 "\n" 336 "\n"
361 "build gen/input1.d input1.out: __foo_bar___rule ../../foo/input1.txt" 337 "build input1.out: __foo_bar___rule ../../foo/input1.txt"
362 " | obj/foo/bar.inputdeps.stamp\n" 338 " | obj/foo/bar.inputdeps.stamp\n"
363 " unique_name = 0\n" 339 " unique_name = 0\n"
364 " source = ../../foo/input1.txt\n" 340 " source = ../../foo/input1.txt\n"
365 " source_name_part = input1\n" 341 " source_name_part = input1\n"
366 " depfile = gen/input1.d\n" 342 " depfile = gen/input1.d\n"
367 "build gen/input2.d input2.out: __foo_bar___rule ../../foo/input2.txt" 343 "build input2.out: __foo_bar___rule ../../foo/input2.txt"
368 " | obj/foo/bar.inputdeps.stamp\n" 344 " | obj/foo/bar.inputdeps.stamp\n"
369 " unique_name = 1\n" 345 " unique_name = 1\n"
370 " source = ../../foo/input2.txt\n" 346 " source = ../../foo/input2.txt\n"
371 " source_name_part = input2\n" 347 " source_name_part = input2\n"
372 " depfile = gen/input2.d\n" 348 " depfile = gen/input2.d\n"
373 "\n" 349 "\n"
374 "build obj/foo/bar.stamp: stamp input1.out input2.out\n"; 350 "build obj/foo/bar.stamp: stamp input1.out input2.out\n";
375 EXPECT_EQ(expected_win, out.str()); 351 EXPECT_EQ(expected_win, out.str());
376 } 352 }
377 } 353 }
OLDNEW
« no previous file with comments | « tools/gn/ninja_action_target_writer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698