summaryrefslogtreecommitdiff
path: root/src/kernel/tests/vfs.c
diff options
context:
space:
mode:
authordzwdz2021-11-03 07:54:29 +0000
committerdzwdz2021-11-03 07:54:29 +0000
commite0ddaaa6290f74fcce6e067c1e5f1c9c87974f4c (patch)
treee516610ff545719d01b7f1ae9a5bbe65f3ef6f90 /src/kernel/tests/vfs.c
parentd7225aa75814788828387ad5871b6aa1dddf2cec (diff)
kernel/vfs: tidy up path_simplify, fix a bug and add regression tests
the bug related to paths ending with /.. and not resolving to /
Diffstat (limited to 'src/kernel/tests/vfs.c')
-rw-r--r--src/kernel/tests/vfs.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/kernel/tests/vfs.c b/src/kernel/tests/vfs.c
index 8b450e5..339c6bd 100644
--- a/src/kernel/tests/vfs.c
+++ b/src/kernel/tests/vfs.c
@@ -38,6 +38,12 @@ TEST(path_simplify) {
TEST_WRAPPER("/asdf/.", "/asdf/");
TEST_WRAPPER("/asdf//.", "/asdf/");
+ TEST_WRAPPER("/foo/bar/..", "/foo/");
+ TEST_WRAPPER("/foo/bar/../bar", "/foo/bar");
+ TEST_WRAPPER("/foo/bar/../bar/", "/foo/bar/");
+ TEST_WRAPPER("/foo/bar/xyz/..", "/foo/bar/");
+ TEST_WRAPPER("/foo/bar/xyz/../", "/foo/bar/");
+
// going under the root or close to it
TEST_WRAPPER("/..", NULL);
TEST_WRAPPER("/../asdf", NULL);