Lines Matching full:path
21 bool CanonicalizePath(string* path, string* err) { in CanonicalizePath() argument
23 return ::CanonicalizePath(path, &unused, err); in CanonicalizePath()
29 string path; in TEST() local
32 EXPECT_FALSE(CanonicalizePath(&path, &err)); in TEST()
33 EXPECT_EQ("empty path", err); in TEST()
35 path = "foo.h"; err = ""; in TEST()
36 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
37 EXPECT_EQ("foo.h", path); in TEST()
39 path = "./foo.h"; in TEST()
40 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
41 EXPECT_EQ("foo.h", path); in TEST()
43 path = "./foo/./bar.h"; in TEST()
44 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
45 EXPECT_EQ("foo/bar.h", path); in TEST()
47 path = "./x/foo/../bar.h"; in TEST()
48 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
49 EXPECT_EQ("x/bar.h", path); in TEST()
51 path = "./x/foo/../../bar.h"; in TEST()
52 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
53 EXPECT_EQ("bar.h", path); in TEST()
55 path = "foo//bar"; in TEST()
56 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
57 EXPECT_EQ("foo/bar", path); in TEST()
59 path = "foo//.//..///bar"; in TEST()
60 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
61 EXPECT_EQ("bar", path); in TEST()
63 path = "./x/../foo/../../bar.h"; in TEST()
64 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
65 EXPECT_EQ("../bar.h", path); in TEST()
67 path = "foo/./."; in TEST()
68 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
69 EXPECT_EQ("foo", path); in TEST()
71 path = "foo/bar/.."; in TEST()
72 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
73 EXPECT_EQ("foo", path); in TEST()
75 path = "foo/.hidden_bar"; in TEST()
76 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
77 EXPECT_EQ("foo/.hidden_bar", path); in TEST()
79 path = "/foo"; in TEST()
80 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
81 EXPECT_EQ("/foo", path); in TEST()
83 path = "//foo"; in TEST()
84 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
86 EXPECT_EQ("//foo", path); in TEST()
88 EXPECT_EQ("/foo", path); in TEST()
91 path = "/"; in TEST()
92 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
93 EXPECT_EQ("", path); in TEST()
95 path = "/foo/.."; in TEST()
96 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
97 EXPECT_EQ("", path); in TEST()
99 path = "."; in TEST()
100 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
101 EXPECT_EQ(".", path); in TEST()
103 path = "./."; in TEST()
104 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
105 EXPECT_EQ(".", path); in TEST()
107 path = "foo/.."; in TEST()
108 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
109 EXPECT_EQ(".", path); in TEST()
114 string path; in TEST() local
117 EXPECT_FALSE(CanonicalizePath(&path, &err)); in TEST()
118 EXPECT_EQ("empty path", err); in TEST()
120 path = "foo.h"; err = ""; in TEST()
121 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
122 EXPECT_EQ("foo.h", path); in TEST()
124 path = ".\\foo.h"; in TEST()
125 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
126 EXPECT_EQ("foo.h", path); in TEST()
128 path = ".\\foo\\.\\bar.h"; in TEST()
129 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
130 EXPECT_EQ("foo/bar.h", path); in TEST()
132 path = ".\\x\\foo\\..\\bar.h"; in TEST()
133 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
134 EXPECT_EQ("x/bar.h", path); in TEST()
136 path = ".\\x\\foo\\..\\..\\bar.h"; in TEST()
137 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
138 EXPECT_EQ("bar.h", path); in TEST()
140 path = "foo\\\\bar"; in TEST()
141 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
142 EXPECT_EQ("foo/bar", path); in TEST()
144 path = "foo\\\\.\\\\..\\\\\\bar"; in TEST()
145 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
146 EXPECT_EQ("bar", path); in TEST()
148 path = ".\\x\\..\\foo\\..\\..\\bar.h"; in TEST()
149 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
150 EXPECT_EQ("../bar.h", path); in TEST()
152 path = "foo\\.\\."; in TEST()
153 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
154 EXPECT_EQ("foo", path); in TEST()
156 path = "foo\\bar\\.."; in TEST()
157 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
158 EXPECT_EQ("foo", path); in TEST()
160 path = "foo\\.hidden_bar"; in TEST()
161 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
162 EXPECT_EQ("foo/.hidden_bar", path); in TEST()
164 path = "\\foo"; in TEST()
165 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
166 EXPECT_EQ("/foo", path); in TEST()
168 path = "\\\\foo"; in TEST()
169 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
170 EXPECT_EQ("//foo", path); in TEST()
172 path = "\\"; in TEST()
173 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
174 EXPECT_EQ("", path); in TEST()
178 string path; in TEST() local
182 path = "foo.h"; err = ""; in TEST()
183 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
184 EXPECT_EQ("foo.h", path); in TEST()
187 path = "a\\foo.h"; in TEST()
188 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
189 EXPECT_EQ("a/foo.h", path); in TEST()
192 path = "a/bcd/efh\\foo.h"; in TEST()
193 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
194 EXPECT_EQ("a/bcd/efh/foo.h", path); in TEST()
197 path = "a\\bcd/efh\\foo.h"; in TEST()
198 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
199 EXPECT_EQ("a/bcd/efh/foo.h", path); in TEST()
202 path = "a\\bcd\\efh\\foo.h"; in TEST()
203 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
204 EXPECT_EQ("a/bcd/efh/foo.h", path); in TEST()
207 path = "a/bcd/efh/foo.h"; in TEST()
208 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
209 EXPECT_EQ("a/bcd/efh/foo.h", path); in TEST()
212 path = "a\\./efh\\foo.h"; in TEST()
213 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
214 EXPECT_EQ("a/efh/foo.h", path); in TEST()
217 path = "a\\../efh\\foo.h"; in TEST()
218 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
219 EXPECT_EQ("efh/foo.h", path); in TEST()
222 path = "a\\b\\c\\d\\e\\f\\g\\foo.h"; in TEST()
223 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
224 EXPECT_EQ("a/b/c/d/e/f/g/foo.h", path); in TEST()
227 path = "a\\b\\c\\..\\..\\..\\g\\foo.h"; in TEST()
228 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
229 EXPECT_EQ("g/foo.h", path); in TEST()
232 path = "a\\b/c\\../../..\\g\\foo.h"; in TEST()
233 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
234 EXPECT_EQ("g/foo.h", path); in TEST()
237 path = "a\\b/c\\./../..\\g\\foo.h"; in TEST()
238 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
239 EXPECT_EQ("a/g/foo.h", path); in TEST()
242 path = "a\\b/c\\./../..\\g/foo.h"; in TEST()
243 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
244 EXPECT_EQ("a/g/foo.h", path); in TEST()
247 path = "a\\\\\\foo.h"; in TEST()
248 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
249 EXPECT_EQ("a/foo.h", path); in TEST()
252 path = "a/\\\\foo.h"; in TEST()
253 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
254 EXPECT_EQ("a/foo.h", path); in TEST()
257 path = "a\\//foo.h"; in TEST()
258 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
259 EXPECT_EQ("a/foo.h", path); in TEST()
275 string path; in TEST() local
280 path = "a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./" in TEST()
282 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
286 path = in TEST()
292 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
295 // 65 is OK if #component is less than 60 after path canonicalization. in TEST()
297 path = "a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./a/./" in TEST()
299 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
304 path = in TEST()
309 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
315 path = "a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/a/" in TEST()
317 EXPECT_EQ(58, std::count(path.begin(), path.end(), '/')); in TEST()
318 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
323 path = in TEST()
328 EXPECT_EQ(58, std::count(path.begin(), path.end(), '\\')); in TEST()
329 EXPECT_TRUE(CanonicalizePath(&path, &slash_bits, &err)); in TEST()
335 string path, err; in TEST() local
336 path = "../../foo/bar.h"; in TEST()
337 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
338 EXPECT_EQ("../../foo/bar.h", path); in TEST()
340 path = "test/../../foo/bar.h"; in TEST()
341 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
342 EXPECT_EQ("../foo/bar.h", path); in TEST()
346 string path = "/usr/include/stdio.h"; in TEST() local
348 EXPECT_TRUE(CanonicalizePath(&path, &err)); in TEST()
349 EXPECT_EQ("/usr/include/stdio.h", path); in TEST()
353 string path; in TEST() local
358 path = "foo/. bar/."; in TEST()
360 EXPECT_TRUE(CanonicalizePath(&path[0], &len, &unused, &err)); in TEST()
362 EXPECT_EQ("foo/. bar/.", string(path)); in TEST()
364 path = "foo/../file bar/."; in TEST()
366 EXPECT_TRUE(CanonicalizePath(&path[0], &len, &unused, &err)); in TEST()
368 EXPECT_EQ("file ./file bar/.", string(path)); in TEST()
374 GetWin32EscapedString("foo bar\\\"'$@d!st!c'\\path'\\", &result); in TEST()
375 EXPECT_EQ("\"foo bar\\\\\\\"'$@d!st!c'\\path'\\\\\"", result); in TEST()
378 GetShellEscapedString("foo bar\"/'$@d!st!c'/path'", &result); in TEST()
379 EXPECT_EQ("'foo bar\"/'\\''$@d!st!c'\\''/path'\\'''", result); in TEST()
383 const char* path = "some/sensible/path/without/crazy/characters.c++"; in TEST() local
386 GetWin32EscapedString(path, &result); in TEST()
387 EXPECT_EQ(path, result); in TEST()
390 GetShellEscapedString(path, &result); in TEST()
391 EXPECT_EQ(path, result); in TEST()
395 const char* path = "some\\sensible\\path\\without\\crazy\\characters.c++"; in TEST() local
398 GetWin32EscapedString(path, &result); in TEST()
399 EXPECT_EQ(path, result); in TEST()