Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Unified Diff: tools/gn/filesystem_utils_unittest.cc

Issue 387663003: Improve GN handling of directory templates. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/gn/filesystem_utils_unittest.cc
diff --git a/tools/gn/filesystem_utils_unittest.cc b/tools/gn/filesystem_utils_unittest.cc
index 906d672bdd2db245de6e21eca04be4b3e9eaa0fa..4eaf0388449fe4dbf0e4c4b05552cd886b1dd1d5 100644
--- a/tools/gn/filesystem_utils_unittest.cc
+++ b/tools/gn/filesystem_utils_unittest.cc
@@ -90,6 +90,50 @@ TEST(FilesystemUtils, FindLastDirComponent) {
EXPECT_EQ("bar", FindLastDirComponent(regular2));
}
+TEST(FilesystemUtils, EnsureStringIsInOutputDir) {
+ SourceDir output_dir("//out/Debug/");
+
+ // Some outside.
+ Err err;
+ EXPECT_FALSE(EnsureStringIsInOutputDir(output_dir, "//foo", Value(), false,
+ &err));
+ EXPECT_TRUE(err.has_error());
+ err = Err();
+ EXPECT_FALSE(EnsureStringIsInOutputDir(output_dir, "//out/Debugit", Value(),
+ false, &err));
+ EXPECT_TRUE(err.has_error());
+
+ // Some inside.
+ err = Err();
+ EXPECT_TRUE(EnsureStringIsInOutputDir(output_dir, "//out/Debug/", Value(),
+ false, &err));
+ EXPECT_FALSE(err.has_error());
+ EXPECT_TRUE(EnsureStringIsInOutputDir(output_dir, "//out/Debug/foo", Value(),
+ false, &err));
+ EXPECT_FALSE(err.has_error());
+
+ // Pattern but no template expansions are allowed.
+ EXPECT_FALSE(EnsureStringIsInOutputDir(output_dir, "{{source_gen_dir}}",
+ Value(), false, &err));
+ EXPECT_TRUE(err.has_error());
+
+ // Pattern with template expansions allowed.
+ err = Err();
+ EXPECT_TRUE(EnsureStringIsInOutputDir(output_dir, "{{source_gen_dir}}",
+ Value(), true, &err));
+ EXPECT_FALSE(err.has_error());
+
+ // Template expansion that doesn't include the absolute directory.
+ EXPECT_FALSE(EnsureStringIsInOutputDir(output_dir, "{{source}}",
+ Value(), true, &err));
+ EXPECT_TRUE(err.has_error());
+ err = Err();
+ EXPECT_FALSE(EnsureStringIsInOutputDir(output_dir,
+ "{{source_root_relative_dir}}",
+ Value(), true, &err));
+ EXPECT_TRUE(err.has_error());
+}
+
TEST(FilesystemUtils, IsPathAbsolute) {
EXPECT_TRUE(IsPathAbsolute("/foo/bar"));
EXPECT_TRUE(IsPathAbsolute("/"));

Powered by Google App Engine
This is Rietveld 408576698