Add test for empty source set/static lib to NinjaBinaryTargetWriter Change-Id: I9823fda72bd06f24be23b39477c3b9bb56e794f5 Reviewed-on: https://gn-review.googlesource.com/c/gn/+/4802 Reviewed-by: Brett Wilson <brettw@google.com> Commit-Queue: Julie Hockett <juliehockett@google.com>
diff --git a/tools/gn/ninja_binary_target_writer_unittest.cc b/tools/gn/ninja_binary_target_writer_unittest.cc index 092f637..bb059e1 100644 --- a/tools/gn/ninja_binary_target_writer_unittest.cc +++ b/tools/gn/ninja_binary_target_writer_unittest.cc
@@ -47,3 +47,60 @@ std::string out_str = out.str(); EXPECT_EQ(expected, out_str); } + +TEST_F(NinjaBinaryTargetWriterTest, NoSourcesSourceSet) { + Err err; + TestWithScope setup; + + Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); + target.set_output_type(Target::SOURCE_SET); + target.visibility().SetPublic(); + target.SetToolchain(setup.toolchain()); + ASSERT_TRUE(target.OnResolved(&err)); + + std::ostringstream out; + NinjaBinaryTargetWriter writer(&target, out); + writer.Run(); + + const char expected[] = + "defines =\n" + "include_dirs =\n" + "root_out_dir = .\n" + "target_out_dir = obj/foo\n" + "target_output_name = bar\n" + "\n" + "\n" + "build obj/foo/bar.stamp: stamp\n"; + std::string out_str = out.str(); + EXPECT_EQ(expected, out_str); +} + +TEST_F(NinjaBinaryTargetWriterTest, NoSourcesStaticLib) { + Err err; + TestWithScope setup; + + Target target(setup.settings(), Label(SourceDir("//foo/"), "bar")); + target.set_output_type(Target::STATIC_LIBRARY); + target.visibility().SetPublic(); + target.SetToolchain(setup.toolchain()); + ASSERT_TRUE(target.OnResolved(&err)); + + std::ostringstream out; + NinjaBinaryTargetWriter writer(&target, out); + writer.Run(); + + const char expected[] = + "defines =\n" + "include_dirs =\n" + "root_out_dir = .\n" + "target_out_dir = obj/foo\n" + "target_output_name = libbar\n" + "\n" + "\n" + "build obj/foo/libbar.a: alink\n" + " arflags =\n" + " output_extension = \n" + " output_dir = \n"; + std::string out_str = out.str(); + EXPECT_EQ(expected, out_str); +}