| Index: tools/gn/ninja_group_target_writer_unittest.cc
|
| diff --git a/tools/gn/ninja_group_target_writer_unittest.cc b/tools/gn/ninja_group_target_writer_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0aec35c5890354b003c6b2af6e92da1fbc9ed439
|
| --- /dev/null
|
| +++ b/tools/gn/ninja_group_target_writer_unittest.cc
|
| @@ -0,0 +1,48 @@
|
| +// Copyright 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "tools/gn/ninja_group_target_writer.h"
|
| +#include "tools/gn/target.h"
|
| +#include "tools/gn/test_with_scope.h"
|
| +
|
| +TEST(NinjaGroupTargetWriter, Run) {
|
| + TestWithScope setup;
|
| + Err err;
|
| +
|
| + setup.build_settings()->SetBuildDir(SourceDir("//out/Debug/"));
|
| + Target target(setup.settings(), Label(SourceDir("//foo/"), "bar"));
|
| +
|
| + target.set_output_type(Target::GROUP);
|
| +
|
| + Target dep(setup.settings(), Label(SourceDir("//foo/"), "dep"));
|
| + dep.set_output_type(Target::ACTION);
|
| + dep.SetToolchain(setup.toolchain());
|
| + ASSERT_TRUE(dep.OnResolved(&err));
|
| +
|
| + Target dep2(setup.settings(), Label(SourceDir("//foo/"), "dep2"));
|
| + dep2.set_output_type(Target::ACTION);
|
| + dep2.SetToolchain(setup.toolchain());
|
| + ASSERT_TRUE(dep2.OnResolved(&err));
|
| +
|
| + Target datadep(setup.settings(), Label(SourceDir("//foo/"), "datadep"));
|
| + datadep.set_output_type(Target::ACTION);
|
| + datadep.SetToolchain(setup.toolchain());
|
| + ASSERT_TRUE(datadep.OnResolved(&err));
|
| +
|
| + target.deps().push_back(LabelTargetPair(&dep));
|
| + target.deps().push_back(LabelTargetPair(&dep2));
|
| + target.datadeps().push_back(LabelTargetPair(&datadep));
|
| +
|
| + target.SetToolchain(setup.toolchain());
|
| + ASSERT_TRUE(target.OnResolved(&err));
|
| +
|
| + std::ostringstream out;
|
| + NinjaGroupTargetWriter writer(&target, out);
|
| + writer.Run();
|
| +
|
| + const char expected[] =
|
| + "build obj/foo/bar.stamp: stamp obj/foo/dep.stamp obj/foo/dep2.stamp || obj/foo/datadep.stamp\n";
|
| + EXPECT_EQ(expected, out.str());
|
| +}
|
|
|