diff options
Diffstat (limited to 'tools/gn/label_unittest.cc')
-rw-r--r-- | tools/gn/label_unittest.cc | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/tools/gn/label_unittest.cc b/tools/gn/label_unittest.cc deleted file mode 100644 index 74eb3da..0000000 --- a/tools/gn/label_unittest.cc +++ /dev/null @@ -1,88 +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 "testing/gtest/include/gtest/gtest.h" -#include "tools/gn/err.h" -#include "tools/gn/label.h" -#include "tools/gn/value.h" - -namespace { - -struct ParseDepStringCase { - const char* cur_dir; - const char* str; - bool success; - const char* expected_dir; - const char* expected_name; - const char* expected_toolchain_dir; - const char* expected_toolchain_name; -}; - -} // namespace - -TEST(Label, Resolve) { - ParseDepStringCase cases[] = { - // cur input succ expected dir name tc dir tc name - { "//chrome/", "", false, "", "", "", "" }, - { "//chrome/", "/", false, "", "", "", "" }, - { "//chrome/", ":", false, "", "", "", "" }, - { "//chrome/", "/:", false, "", "", "", "" }, - { "//chrome/", "blah", true, "//chrome/blah/", "blah", "//t/", "d" }, - { "//chrome/", "blah:bar", true, "//chrome/blah/", "bar", "//t/", "d" }, - // No single-leading slash. - { "//chrome/", "/chrome:bar", false, "", "", "", "" }, - // No trailing slash. - { "//chrome/", "/chrome/:bar", false, "", "", "", "" }, - // Refers to root dir. - { "//chrome/", "//:bar", true, "//", "bar", "//t/", "d" }, - // Implicit directory - { "//chrome/", ":bar", true, "//chrome/", "bar", "//t/", "d" }, - { "//chrome/renderer/", ":bar", true, "//chrome/renderer/", "bar", "//t/", "d" }, - // Implicit names. - { "//chrome/", "//base", true, "//base/", "base", "//t/", "d" }, - { "//chrome/", "//base/i18n", true, "//base/i18n/", "i18n", "//t/", "d" }, - { "//chrome/", "//base/i18n:foo", true, "//base/i18n/", "foo", "//t/", "d" }, - // Toolchain parsing. - { "//chrome/", "//chrome:bar(//t:n)", true, "//chrome/", "bar", "//t/", "n" }, - { "//chrome/", "//chrome:bar(//t)", true, "//chrome/", "bar", "//t/", "t" }, - { "//chrome/", "//chrome:bar(//t:)", true, "//chrome/", "bar", "//t/", "t" }, - { "//chrome/", "//chrome:bar()", true, "//chrome/", "bar", "//t/", "d" }, - { "//chrome/", "//chrome:bar(foo)", true, "//chrome/", "bar", "//chrome/foo/", "foo" }, - { "//chrome/", "//chrome:bar(:foo)", true, "//chrome/", "bar", "//chrome/", "foo" }, - // TODO(brettw) it might be nice to make this an error: - //{ "//chrome/", "//chrome:bar())", false, "", "", "", "" }, - { "//chrome/", "//chrome:bar(//t:bar(tc))", false, "", "", "", "" }, - { "//chrome/", "//chrome:bar(()", false, "", "", "", "" }, - { "//chrome/", "(t:b)", false, "", "", "", "" }, - { "//chrome/", ":bar(//t/b)", true, "//chrome/", "bar", "//t/b/", "b" }, - { "//chrome/", ":bar(/t/b)", false, "", "", "", "" }, - { "//chrome/", ":bar(t/b)", true, "//chrome/", "bar", "//chrome/t/b/", "b" }, - }; - - Label default_toolchain(SourceDir("//t/"), "d", - SourceDir(), std::string()); - - for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); i++) { - const ParseDepStringCase& cur = cases[i]; - - std::string location, name; - Err err; - Value v(NULL, Value::STRING); - v.string_value() = cur.str; - Label result = - Label::Resolve(SourceDir(cur.cur_dir), default_toolchain, v, &err); - EXPECT_EQ(cur.success, !err.has_error()) << i << " " << cur.str; - if (!err.has_error() && cur.success) { - EXPECT_EQ(cur.expected_dir, result.dir().value()) - << i << " " << cur.str; - EXPECT_EQ(cur.expected_name, result.name()) - << i << " " << cur.str; - EXPECT_EQ(cur.expected_toolchain_dir, - result.toolchain_dir().value()) - << i << " " << cur.str; - EXPECT_EQ(cur.expected_toolchain_name, result.toolchain_name()) - << i << " " << cur.str; - } - } -} |