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

Side by Side Diff: tools/gn/filesystem_utils_unittest.cc

Issue 21114002: Add initial prototype for the GN meta-buildsystem. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add owners and readme Created 7 years, 4 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tools/gn/filesystem_utils.cc ('k') | tools/gn/function_define_rule.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/strings/string_util.h"
6 #include "base/strings/utf_string_conversions.h"
7 #include "build/build_config.h"
8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "tools/gn/filesystem_utils.h"
10
11 TEST(FilesystemUtils, FileExtensionOffset) {
12 EXPECT_EQ(std::string::npos, FindExtensionOffset(""));
13 EXPECT_EQ(std::string::npos, FindExtensionOffset("foo/bar/baz"));
14 EXPECT_EQ(4u, FindExtensionOffset("foo."));
15 EXPECT_EQ(4u, FindExtensionOffset("f.o.bar"));
16 EXPECT_EQ(std::string::npos, FindExtensionOffset("foo.bar/"));
17 EXPECT_EQ(std::string::npos, FindExtensionOffset("foo.bar/baz"));
18 }
19
20 TEST(FilesystemUtils, FindExtension) {
21 std::string input;
22 EXPECT_EQ("", FindExtension(&input).as_string());
23 input = "foo/bar/baz";
24 EXPECT_EQ("", FindExtension(&input).as_string());
25 input = "foo.";
26 EXPECT_EQ("", FindExtension(&input).as_string());
27 input = "f.o.bar";
28 EXPECT_EQ("bar", FindExtension(&input).as_string());
29 input = "foo.bar/";
30 EXPECT_EQ("", FindExtension(&input).as_string());
31 input = "foo.bar/baz";
32 EXPECT_EQ("", FindExtension(&input).as_string());
33 }
34
35 TEST(FilesystemUtils, FindFilenameOffset) {
36 EXPECT_EQ(0u, FindFilenameOffset(""));
37 EXPECT_EQ(0u, FindFilenameOffset("foo"));
38 EXPECT_EQ(4u, FindFilenameOffset("foo/"));
39 EXPECT_EQ(4u, FindFilenameOffset("foo/bar"));
40 }
41
42 TEST(FilesystemUtils, RemoveFilename) {
43 std::string s;
44
45 RemoveFilename(&s);
46 EXPECT_STREQ("", s.c_str());
47
48 s = "foo";
49 RemoveFilename(&s);
50 EXPECT_STREQ("", s.c_str());
51
52 s = "/";
53 RemoveFilename(&s);
54 EXPECT_STREQ("/", s.c_str());
55
56 s = "foo/bar";
57 RemoveFilename(&s);
58 EXPECT_STREQ("foo/", s.c_str());
59
60 s = "foo/bar/baz.cc";
61 RemoveFilename(&s);
62 EXPECT_STREQ("foo/bar/", s.c_str());
63 }
64
65 TEST(FilesystemUtils, FindDir) {
66 std::string input;
67 EXPECT_EQ("", FindDir(&input));
68 input = "/";
69 EXPECT_EQ("/", FindDir(&input));
70 input = "foo/";
71 EXPECT_EQ("foo/", FindDir(&input));
72 input = "foo/bar/baz";
73 EXPECT_EQ("foo/bar/", FindDir(&input));
74 }
75
76 TEST(FilesystemUtils, InvertDir) {
77 EXPECT_TRUE(InvertDir(SourceDir()) == "");
78 EXPECT_TRUE(InvertDir(SourceDir("/")) == "");
79 EXPECT_TRUE(InvertDir(SourceDir("//")) == "");
80
81 EXPECT_TRUE(InvertDir(SourceDir("//foo/bar")) == "../../");
82 EXPECT_TRUE(InvertDir(SourceDir("/foo/bar/")) == "../../");
83 }
84
85 TEST(FilesystemUtils, NormalizePath) {
86 std::string input;
87
88 NormalizePath(&input);
89 EXPECT_EQ("", input);
90
91 input = "foo/bar.txt";
92 NormalizePath(&input);
93 EXPECT_EQ("foo/bar.txt", input);
94
95 input = ".";
96 NormalizePath(&input);
97 EXPECT_EQ("", input);
98
99 input = "..";
100 NormalizePath(&input);
101 EXPECT_EQ("..", input);
102
103 input = "foo//bar";
104 NormalizePath(&input);
105 EXPECT_EQ("foo/bar", input);
106
107 input = "//foo";
108 NormalizePath(&input);
109 EXPECT_EQ("//foo", input);
110
111 input = "foo/..//bar";
112 NormalizePath(&input);
113 EXPECT_EQ("bar", input);
114
115 input = "foo/../../bar";
116 NormalizePath(&input);
117 EXPECT_EQ("../bar", input);
118
119 input = "/../foo"; // Don't go aboe the root dir.
120 NormalizePath(&input);
121 EXPECT_EQ("/foo", input);
122
123 input = "//../foo"; // Don't go aboe the root dir.
124 NormalizePath(&input);
125 EXPECT_EQ("//foo", input);
126
127 input = "../foo";
128 NormalizePath(&input);
129 EXPECT_EQ("../foo", input);
130
131 input = "..";
132 NormalizePath(&input);
133 EXPECT_EQ("..", input);
134
135 input = "./././.";
136 NormalizePath(&input);
137 EXPECT_EQ("", input);
138
139 input = "../../..";
140 NormalizePath(&input);
141 EXPECT_EQ("../../..", input);
142
143 input = "../";
144 NormalizePath(&input);
145 EXPECT_EQ("../", input);
146 }
OLDNEW
« no previous file with comments | « tools/gn/filesystem_utils.cc ('k') | tools/gn/function_define_rule.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698