| Index: tools/gn/file_template_unittest.cc
|
| diff --git a/tools/gn/file_template_unittest.cc b/tools/gn/file_template_unittest.cc
|
| deleted file mode 100644
|
| index eab52858396d3cd7f59f7ffbe1694856a805fb74..0000000000000000000000000000000000000000
|
| --- a/tools/gn/file_template_unittest.cc
|
| +++ /dev/null
|
| @@ -1,183 +0,0 @@
|
| -// Copyright (c) 2013 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 <sstream>
|
| -
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "tools/gn/escape.h"
|
| -#include "tools/gn/file_template.h"
|
| -#include "tools/gn/test_with_scope.h"
|
| -
|
| -TEST(FileTemplate, Static) {
|
| - TestWithScope setup;
|
| -
|
| - std::vector<std::string> templates;
|
| - templates.push_back("something_static");
|
| - FileTemplate t(setup.settings(), templates,
|
| - FileTemplate::OUTPUT_ABSOLUTE, SourceDir("//"));
|
| - EXPECT_FALSE(t.has_substitutions());
|
| -
|
| - std::vector<std::string> result;
|
| - t.Apply(SourceFile("//foo/bar"), &result);
|
| - ASSERT_EQ(1u, result.size());
|
| - EXPECT_EQ("something_static", result[0]);
|
| -}
|
| -
|
| -TEST(FileTemplate, Typical) {
|
| - TestWithScope setup;
|
| -
|
| - std::vector<std::string> templates;
|
| - templates.push_back("foo/{{source_name_part}}.cc");
|
| - templates.push_back("foo/{{source_name_part}}.h");
|
| - FileTemplate t(setup.settings(), templates,
|
| - FileTemplate::OUTPUT_ABSOLUTE, SourceDir("//"));
|
| - EXPECT_TRUE(t.has_substitutions());
|
| -
|
| - std::vector<std::string> result;
|
| - t.Apply(SourceFile("//sources/ha.idl"), &result);
|
| - ASSERT_EQ(2u, result.size());
|
| - EXPECT_EQ("foo/ha.cc", result[0]);
|
| - EXPECT_EQ("foo/ha.h", result[1]);
|
| -}
|
| -
|
| -TEST(FileTemplate, Weird) {
|
| - TestWithScope setup;
|
| -
|
| - std::vector<std::string> templates;
|
| - templates.push_back("{{{source}}{{source}}{{");
|
| - FileTemplate t(setup.settings(), templates,
|
| - FileTemplate::OUTPUT_RELATIVE,
|
| - setup.settings()->build_settings()->build_dir());
|
| - EXPECT_TRUE(t.has_substitutions());
|
| -
|
| - std::vector<std::string> result;
|
| - t.Apply(SourceFile("//foo/lalala.c"), &result);
|
| - ASSERT_EQ(1u, result.size());
|
| - EXPECT_EQ("{../../foo/lalala.c../../foo/lalala.c{{", result[0]);
|
| -}
|
| -
|
| -TEST(FileTemplate, NinjaExpansions) {
|
| - TestWithScope setup;
|
| -
|
| - std::vector<std::string> templates;
|
| - templates.push_back("-i");
|
| - templates.push_back("{{source}}");
|
| - templates.push_back("--out=foo bar\"{{source_name_part}}\".o");
|
| - templates.push_back(""); // Test empty string.
|
| -
|
| - FileTemplate t(setup.settings(), templates,
|
| - FileTemplate::OUTPUT_RELATIVE,
|
| - setup.settings()->build_settings()->build_dir());
|
| -
|
| - std::ostringstream out;
|
| - t.WriteWithNinjaExpansions(out);
|
| -
|
| -#if defined(OS_WIN)
|
| - // The third argument should get quoted since it contains a space, and the
|
| - // embedded quotes should get shell escaped.
|
| - EXPECT_EQ(
|
| - " -i ${source} \"--out=foo$ bar\\\"${source_name_part}\\\".o\" \"\"",
|
| - out.str());
|
| -#else
|
| - // On Posix we don't need to quote the whole thing and can escape all
|
| - // individual bad chars.
|
| - EXPECT_EQ(
|
| - " -i ${source} --out=foo\\$ bar\\\"${source_name_part}\\\".o \"\"",
|
| - out.str());
|
| -#endif
|
| -}
|
| -
|
| -TEST(FileTemplate, NinjaVariables) {
|
| - TestWithScope setup;
|
| -
|
| - std::vector<std::string> templates;
|
| - templates.push_back("-i");
|
| - templates.push_back("{{source}}");
|
| - templates.push_back("--out=foo bar\"{{source_name_part}}\".o");
|
| - templates.push_back("{{source_file_part}}");
|
| - templates.push_back("{{source_dir}}");
|
| - templates.push_back("{{source_root_relative_dir}}");
|
| - templates.push_back("{{source_gen_dir}}");
|
| - templates.push_back("{{source_out_dir}}");
|
| -
|
| - FileTemplate t(setup.settings(), templates,
|
| - FileTemplate::OUTPUT_RELATIVE,
|
| - setup.settings()->build_settings()->build_dir());
|
| -
|
| - std::ostringstream out;
|
| - EscapeOptions options;
|
| - options.mode = ESCAPE_NINJA_COMMAND;
|
| - t.WriteNinjaVariablesForSubstitution(out, SourceFile("//foo/bar.txt"),
|
| - options);
|
| -
|
| - // Just the variables used above should be written.
|
| - EXPECT_EQ(
|
| - " source = ../../foo/bar.txt\n"
|
| - " source_name_part = bar\n"
|
| - " source_file_part = bar.txt\n"
|
| - " source_dir = ../../foo\n"
|
| - " source_root_rel_dir = foo\n"
|
| - " source_gen_dir = gen/foo\n"
|
| - " source_out_dir = obj/foo\n",
|
| - out.str());
|
| -}
|
| -
|
| -// Tests in isolation different types of substitutions and that the right
|
| -// things are generated.
|
| -TEST(FileTemplate, Substitutions) {
|
| - TestWithScope setup;
|
| -
|
| - // Call to get substitutions relative to the build dir.
|
| - #define GetRelSubst(str, what) \
|
| - FileTemplate::GetSubstitution( \
|
| - setup.settings(), \
|
| - SourceFile(str), \
|
| - FileTemplate::Subrange::what, \
|
| - FileTemplate::OUTPUT_RELATIVE, \
|
| - setup.settings()->build_settings()->build_dir())
|
| -
|
| - // Call to get absolute directory substitutions.
|
| - #define GetAbsSubst(str, what) \
|
| - FileTemplate::GetSubstitution( \
|
| - setup.settings(), \
|
| - SourceFile(str), \
|
| - FileTemplate::Subrange::what, \
|
| - FileTemplate::OUTPUT_ABSOLUTE, \
|
| - SourceDir())
|
| -
|
| - // Try all possible templates with a normal looking string.
|
| - EXPECT_EQ("../../foo/bar/baz.txt", GetRelSubst("//foo/bar/baz.txt", SOURCE));
|
| - EXPECT_EQ("//foo/bar/baz.txt", GetAbsSubst("//foo/bar/baz.txt", SOURCE));
|
| -
|
| - EXPECT_EQ("baz", GetRelSubst("//foo/bar/baz.txt", NAME_PART));
|
| - EXPECT_EQ("baz", GetAbsSubst("//foo/bar/baz.txt", NAME_PART));
|
| -
|
| - EXPECT_EQ("baz.txt", GetRelSubst("//foo/bar/baz.txt", FILE_PART));
|
| - EXPECT_EQ("baz.txt", GetAbsSubst("//foo/bar/baz.txt", FILE_PART));
|
| -
|
| - EXPECT_EQ("../../foo/bar", GetRelSubst("//foo/bar/baz.txt", SOURCE_DIR));
|
| - EXPECT_EQ("//foo/bar", GetAbsSubst("//foo/bar/baz.txt", SOURCE_DIR));
|
| -
|
| - EXPECT_EQ("foo/bar", GetRelSubst("//foo/bar/baz.txt", ROOT_RELATIVE_DIR));
|
| - EXPECT_EQ("foo/bar", GetAbsSubst("//foo/bar/baz.txt", ROOT_RELATIVE_DIR));
|
| -
|
| - EXPECT_EQ("gen/foo/bar", GetRelSubst("//foo/bar/baz.txt", SOURCE_GEN_DIR));
|
| - EXPECT_EQ("//out/Debug/gen/foo/bar",
|
| - GetAbsSubst("//foo/bar/baz.txt", SOURCE_GEN_DIR));
|
| -
|
| - EXPECT_EQ("obj/foo/bar", GetRelSubst("//foo/bar/baz.txt", SOURCE_OUT_DIR));
|
| - EXPECT_EQ("//out/Debug/obj/foo/bar",
|
| - GetAbsSubst("//foo/bar/baz.txt", SOURCE_OUT_DIR));
|
| -
|
| - // Operations on an absolute path.
|
| - EXPECT_EQ("/baz.txt", GetRelSubst("/baz.txt", SOURCE));
|
| - EXPECT_EQ("/.", GetRelSubst("/baz.txt", SOURCE_DIR));
|
| - EXPECT_EQ("gen", GetRelSubst("/baz.txt", SOURCE_GEN_DIR));
|
| - EXPECT_EQ("obj", GetRelSubst("/baz.txt", SOURCE_OUT_DIR));
|
| -
|
| - EXPECT_EQ(".", GetRelSubst("//baz.txt", ROOT_RELATIVE_DIR));
|
| -
|
| - #undef GetAbsSubst
|
| - #undef GetRelSubst
|
| -}
|
|
|