Lines Matching refs:path

39 vfs_normalize_path(const char* path, char* buffer, size_t bufferSize,
92 KPath path;
93 status_t status = path.InitCheck();
96 status = path.SetTo("a/b/c");
98 CPPUNIT_ASSERT(strcmp(path.Path(), "a/b/c") == 0);
99 CPPUNIT_ASSERT(path.Length() == 5);
100 CPPUNIT_ASSERT(path.BufferSize() == B_PATH_NAME_LENGTH + 1);
102 status = path.SetPath("abc/def");
104 CPPUNIT_ASSERT(strcmp(path.Path(), "abc/def") == 0);
105 CPPUNIT_ASSERT(path.Length() == 7);
106 CPPUNIT_ASSERT(path.BufferSize() == B_PATH_NAME_LENGTH + 1);
108 status = path.SetTo("a/b/c", false, 10);
110 CPPUNIT_ASSERT(strcmp(path.Path(), "a/b/c") == 0);
111 CPPUNIT_ASSERT(path.Length() == 5);
112 CPPUNIT_ASSERT(path.BufferSize() == 10);
114 status = path.SetPath("sorry/i'm/too/long");
116 CPPUNIT_ASSERT(strcmp(path.Path(), "a/b/c") == 0);
117 CPPUNIT_ASSERT(path.Length() == 5);
119 status = path.SetTo(NULL, KPath::DEFAULT, SIZE_MAX);
127 KPath path(NULL, KPath::LAZY_ALLOC);
128 CPPUNIT_ASSERT(path.Path() == NULL);
129 CPPUNIT_ASSERT(path.Length() == 0);
130 CPPUNIT_ASSERT(path.BufferSize() == B_PATH_NAME_LENGTH + 1);
131 CPPUNIT_ASSERT(path.InitCheck() == B_OK);
133 path.SetPath("/b");
134 CPPUNIT_ASSERT(path.Path() != NULL);
135 CPPUNIT_ASSERT(strcmp(path.Path(), "/b") == 0);
136 CPPUNIT_ASSERT(path.Length() == 2);
137 CPPUNIT_ASSERT(path.BufferSize() == B_PATH_NAME_LENGTH + 1);
145 status_t status = path.SetTo(NULL, KPath::LAZY_ALLOC, SIZE_MAX);
147 status = path.SetPath("test");
149 CPPUNIT_ASSERT(path.InitCheck() == B_NO_MEMORY);
156 KPath path("a");
157 CPPUNIT_ASSERT(strcmp(path.Path(), "a") == 0);
158 CPPUNIT_ASSERT(strcmp(path.Leaf(), "a") == 0);
160 path.SetTo("");
161 CPPUNIT_ASSERT(strcmp(path.Path(), "") == 0);
162 CPPUNIT_ASSERT(strcmp(path.Leaf(), "") == 0);
164 path.SetTo("/");
165 CPPUNIT_ASSERT(strcmp(path.Path(), "/") == 0);
166 CPPUNIT_ASSERT(strcmp(path.Leaf(), "") == 0);
168 path.SetTo("a/b");
169 CPPUNIT_ASSERT(strcmp(path.Path(), "a/b") == 0);
170 CPPUNIT_ASSERT(strcmp(path.Leaf(), "b") == 0);
172 path.SetTo("a/b/");
173 CPPUNIT_ASSERT(strcmp(path.Path(), "a/b") == 0);
174 CPPUNIT_ASSERT(strcmp(path.Leaf(), "b") == 0);
176 path.SetTo("/a/b//c");
177 CPPUNIT_ASSERT(strcmp(path.Path(), "/a/b//c") == 0);
178 CPPUNIT_ASSERT(strcmp(path.Leaf(), "c") == 0);
185 KPath path;
186 status_t status = path.ReplaceLeaf("x");
189 path.SetTo("/a/b/c");
190 CPPUNIT_ASSERT(path.Length() == 6);
192 status = path.ReplaceLeaf(NULL);
194 CPPUNIT_ASSERT(path.Length() == 4);
195 CPPUNIT_ASSERT(strcmp(path.Path(), "/a/b") == 0);
197 status = path.ReplaceLeaf("");
199 CPPUNIT_ASSERT(path.Length() == 2);
200 CPPUNIT_ASSERT(strcmp(path.Path(), "/a") == 0);
202 status = path.ReplaceLeaf("c");
204 CPPUNIT_ASSERT(path.Length() == 2);
205 CPPUNIT_ASSERT(strcmp(path.Path(), "/c") == 0);
212 KPath path;
213 bool removed = path.RemoveLeaf();
216 path.SetTo("a//b/c");
217 removed = path.RemoveLeaf();
219 CPPUNIT_ASSERT(strcmp(path.Path(), "a//b") == 0);
220 CPPUNIT_ASSERT(path.Length() == 4);
222 removed = path.RemoveLeaf();
224 CPPUNIT_ASSERT(strcmp(path.Path(), "a") == 0);
225 CPPUNIT_ASSERT(path.Length() == 1);
227 removed = path.RemoveLeaf();
229 CPPUNIT_ASSERT(strcmp(path.Path(), "a") == 0);
230 CPPUNIT_ASSERT(path.Length() == 1);
232 path.SetTo("/a");
233 removed = path.RemoveLeaf();
235 CPPUNIT_ASSERT(strcmp(path.Path(), "/") == 0);
236 CPPUNIT_ASSERT(path.Length() == 1);
238 removed = path.RemoveLeaf();
240 CPPUNIT_ASSERT(strcmp(path.Path(), "/") == 0);
241 CPPUNIT_ASSERT(path.Length() == 1);
284 KPath path;
285 CPPUNIT_ASSERT(path.Path() != NULL);
286 CPPUNIT_ASSERT(path.Length() == 0);
287 char* buffer = path.LockBuffer();
288 CPPUNIT_ASSERT(path.Path() == buffer);
290 CPPUNIT_ASSERT(path.Length() == 0);
291 path.UnlockBuffer();
292 CPPUNIT_ASSERT(path.Length() == 4);
316 KPath path("test");
317 CPPUNIT_ASSERT(path.InitCheck() == B_OK);
319 char* buffer = path.DetachBuffer();
323 CPPUNIT_ASSERT(path.Path() == NULL);
324 CPPUNIT_ASSERT(path.InitCheck() == B_NO_INIT);
332 KPath path("test/../out");
333 CPPUNIT_ASSERT(path.InitCheck() == B_OK);
335 status_t status = path.Normalize(true);
337 CPPUNIT_ASSERT(path.Path() != NULL);
338 CPPUNIT_ASSERT(path.Path()[0] == '\0');
339 CPPUNIT_ASSERT(path.Path() == path.Leaf());
341 status = path.SetTo("test/../in", KPath::NORMALIZE);
343 CPPUNIT_ASSERT(path.Path() != NULL);
344 CPPUNIT_ASSERT(path.Path()[0] == '\0');
345 CPPUNIT_ASSERT(path.Path() == path.Leaf());