X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftools%2Fgn%2Fninja_action_target_writer_unittest.cc;h=8c295c938d92063440b1bae058b9666426819d8f;hb=3545e9f2671f595d2a2f3ee75ca0393b01e35ef6;hp=b2b7f7f43d8a4979a1d527eb74f1340ab50d0ad6;hpb=7d210d4c7e9ba36e635eabc5b5780495f8a63292;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/tools/gn/ninja_action_target_writer_unittest.cc b/src/tools/gn/ninja_action_target_writer_unittest.cc index b2b7f7f..8c295c9 100644 --- a/src/tools/gn/ninja_action_target_writer_unittest.cc +++ b/src/tools/gn/ninja_action_target_writer_unittest.cc @@ -8,18 +8,26 @@ #include "testing/gtest/include/gtest/gtest.h" #include "tools/gn/ninja_action_target_writer.h" #include "tools/gn/substitution_list.h" +#include "tools/gn/target.h" #include "tools/gn/test_with_scope.h" TEST(NinjaActionTargetWriter, WriteOutputFilesForBuildLine) { TestWithScope setup; + Err err; + setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); + Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); + target.set_output_type(Target::ACTION_FOREACH); target.action_values().outputs() = SubstitutionList::MakeForTest( "//out/Debug/gen/a b{{source_name_part}}.h", "//out/Debug/gen/{{source_name_part}}.cc"); + target.SetToolchain(setup.toolchain()); + ASSERT_TRUE(target.OnResolved(&err)); + std::ostringstream out; - NinjaActionTargetWriter writer(&target, setup.toolchain(), out); + NinjaActionTargetWriter writer(&target, out); SourceFile source("//foo/bar.in"); std::vector output_files; @@ -31,6 +39,8 @@ TEST(NinjaActionTargetWriter, WriteOutputFilesForBuildLine) { // Tests an action with no sources. TEST(NinjaActionTargetWriter, ActionNoSources) { TestWithScope setup; + Err err; + setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); target.set_output_type(Target::ACTION); @@ -41,12 +51,15 @@ TEST(NinjaActionTargetWriter, ActionNoSources) { target.action_values().outputs() = SubstitutionList::MakeForTest("//out/Debug/foo.out"); + target.SetToolchain(setup.toolchain()); + ASSERT_TRUE(target.OnResolved(&err)); + setup.settings()->set_target_os(Settings::LINUX); setup.build_settings()->set_python_path(base::FilePath(FILE_PATH_LITERAL( "/usr/bin/python"))); std::ostringstream out; - NinjaActionTargetWriter writer(&target, setup.toolchain(), out); + NinjaActionTargetWriter writer(&target, out); writer.Run(); const char expected[] = @@ -67,6 +80,8 @@ TEST(NinjaActionTargetWriter, ActionNoSources) { // both sources and inputs (ACTION_FOREACH treats the sources differently). TEST(NinjaActionTargetWriter, ActionWithSources) { TestWithScope setup; + Err err; + setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); target.set_output_type(Target::ACTION); @@ -79,6 +94,9 @@ TEST(NinjaActionTargetWriter, ActionWithSources) { target.action_values().outputs() = SubstitutionList::MakeForTest("//out/Debug/foo.out"); + target.SetToolchain(setup.toolchain()); + ASSERT_TRUE(target.OnResolved(&err)); + // Posix. { setup.settings()->set_target_os(Settings::LINUX); @@ -86,7 +104,7 @@ TEST(NinjaActionTargetWriter, ActionWithSources) { "/usr/bin/python"))); std::ostringstream out; - NinjaActionTargetWriter writer(&target, setup.toolchain(), out); + NinjaActionTargetWriter writer(&target, out); writer.Run(); const char expected_linux[] = @@ -112,7 +130,7 @@ TEST(NinjaActionTargetWriter, ActionWithSources) { setup.settings()->set_target_os(Settings::WIN); std::ostringstream out; - NinjaActionTargetWriter writer(&target, setup.toolchain(), out); + NinjaActionTargetWriter writer(&target, out); writer.Run(); const char expected_win[] = @@ -134,6 +152,8 @@ TEST(NinjaActionTargetWriter, ActionWithSources) { TEST(NinjaActionTargetWriter, ForEach) { TestWithScope setup; + Err err; + setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); // Some dependencies that the action can depend on. Use actions for these @@ -142,13 +162,20 @@ TEST(NinjaActionTargetWriter, ForEach) { // binaries). Target dep(setup.settings(), Label(SourceDir("//foo/"), "dep")); dep.set_output_type(Target::ACTION); + dep.visibility().SetPublic(); + dep.SetToolchain(setup.toolchain()); + ASSERT_TRUE(dep.OnResolved(&err)); + Target datadep(setup.settings(), Label(SourceDir("//foo/"), "datadep")); datadep.set_output_type(Target::ACTION); + datadep.visibility().SetPublic(); + datadep.SetToolchain(setup.toolchain()); + ASSERT_TRUE(datadep.OnResolved(&err)); Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); target.set_output_type(Target::ACTION_FOREACH); - target.deps().push_back(LabelTargetPair(&dep)); - target.datadeps().push_back(LabelTargetPair(&datadep)); + target.private_deps().push_back(LabelTargetPair(&dep)); + target.data_deps().push_back(LabelTargetPair(&datadep)); target.sources().push_back(SourceFile("//foo/input1.txt")); target.sources().push_back(SourceFile("//foo/input2.txt")); @@ -164,6 +191,9 @@ TEST(NinjaActionTargetWriter, ForEach) { target.inputs().push_back(SourceFile("//foo/included.txt")); + target.SetToolchain(setup.toolchain()); + ASSERT_TRUE(target.OnResolved(&err)); + // Posix. { setup.settings()->set_target_os(Settings::LINUX); @@ -171,7 +201,7 @@ TEST(NinjaActionTargetWriter, ForEach) { "/usr/bin/python"))); std::ostringstream out; - NinjaActionTargetWriter writer(&target, setup.toolchain(), out); + NinjaActionTargetWriter writer(&target, out); writer.Run(); const char expected_linux[] = @@ -196,7 +226,7 @@ TEST(NinjaActionTargetWriter, ForEach) { " source_name_part = input2\n" "\n" "build obj/foo/bar.stamp: " - "stamp input1.out input2.out obj/foo/datadep.stamp\n"; + "stamp input1.out input2.out || obj/foo/datadep.stamp\n"; std::string out_str = out.str(); #if defined(OS_WIN) @@ -212,7 +242,7 @@ TEST(NinjaActionTargetWriter, ForEach) { setup.settings()->set_target_os(Settings::WIN); std::ostringstream out; - NinjaActionTargetWriter writer(&target, setup.toolchain(), out); + NinjaActionTargetWriter writer(&target, out); writer.Run(); const char expected_win[] = @@ -241,13 +271,15 @@ TEST(NinjaActionTargetWriter, ForEach) { " source_name_part = input2\n" "\n" "build obj/foo/bar.stamp: " - "stamp input1.out input2.out obj/foo/datadep.stamp\n"; + "stamp input1.out input2.out || obj/foo/datadep.stamp\n"; EXPECT_EQ(expected_win, out.str()); } } TEST(NinjaActionTargetWriter, ForEachWithDepfile) { TestWithScope setup; + Err err; + setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/")); Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); target.set_output_type(Target::ACTION_FOREACH); @@ -257,8 +289,10 @@ TEST(NinjaActionTargetWriter, ForEachWithDepfile) { target.action_values().set_script(SourceFile("//foo/script.py")); + target.SetToolchain(setup.toolchain()); + ASSERT_TRUE(target.OnResolved(&err)); + SubstitutionPattern depfile; - Err err; ASSERT_TRUE( depfile.Parse("//out/Debug/gen/{{source_name_part}}.d", NULL, &err)); target.action_values().set_depfile(depfile); @@ -279,7 +313,7 @@ TEST(NinjaActionTargetWriter, ForEachWithDepfile) { "/usr/bin/python"))); std::ostringstream out; - NinjaActionTargetWriter writer(&target, setup.toolchain(), out); + NinjaActionTargetWriter writer(&target, out); writer.Run(); const char expected_linux[] = @@ -315,7 +349,7 @@ TEST(NinjaActionTargetWriter, ForEachWithDepfile) { setup.settings()->set_target_os(Settings::WIN); std::ostringstream out; - NinjaActionTargetWriter writer(&target, setup.toolchain(), out); + NinjaActionTargetWriter writer(&target, out); writer.Run(); const char expected_win[] =