[PATCH 2/3] kernelbase: PathAllocCanonicalize tests for segments containing dots.
Jeff Smith
whydoubt at gmail.com
Wed Sep 18 12:12:10 CDT 2019
From: Zhiyi Zhang <zzhang at codeweavers.com>
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47766
Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
Signed-off-by: Jeff Smith <whydoubt at gmail.com>
---
dlls/kernelbase/tests/path.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/dlls/kernelbase/tests/path.c b/dlls/kernelbase/tests/path.c
index b5da303629..d7492a1e9f 100644
--- a/dlls/kernelbase/tests/path.c
+++ b/dlls/kernelbase/tests/path.c
@@ -72,6 +72,7 @@ static const struct alloccanonicalize_test alloccanonicalize_tests[] =
{"\\\\?C:a", "\\\\?C:a", 0, S_OK},
/* No . */
+ {"*", "*", 0, S_OK},
{"", "\\", 0, S_OK},
{"C:", "C:", 0, S_OK},
{"C:\\", "C:\\", 0, S_OK},
@@ -85,17 +86,26 @@ static const struct alloccanonicalize_test alloccanonicalize_tests[] =
{"*.", "*.", 0, S_OK},
{"*..", "*.", 0, S_OK},
{"*...", "*.", 0, S_OK},
+ {"*....", "*.", 0, S_OK},
+ {".a", ".a", 0, S_OK},
{"a.", "a", 0, S_OK},
+ {".a.", ".a", 0, S_OK},
{"a.b", "a.b", 0, S_OK},
+ {".a.b.", ".a.b", 0, S_OK},
{"a\\.", "a", 0, S_OK},
{"a\\.\\b", "a\\b", 0, S_OK},
+ {":.", ":", 0, S_OK},
{"C:.", "C:\\", 0, S_OK},
+ {"C:.\\", "C:.\\", 0, S_OK},
+ {"C:.\\.", "C:\\", 0, S_OK},
{"C:\\.", "C:\\", 0, S_OK},
{"C:\\.\\", "C:\\", 0, S_OK},
{"C:\\a.", "C:\\a", 0, S_OK},
+ {"C:\\.a", "C:\\.a", 0, S_OK},
{"C:\\a\\.", "C:\\a", 0, S_OK},
{"C:\\a\\\\.", "C:\\a\\", 0, S_OK},
{"C:\\a\\\\\\.", "C:\\a\\\\", 0, S_OK},
+ {".\\", "\\", 0, S_OK},
{"\\.", "\\", 0, S_OK},
{"\\\\.", "\\\\", 0, S_OK},
{"\\\\.\\", "\\\\", 0, S_OK},
@@ -115,21 +125,42 @@ static const struct alloccanonicalize_test alloccanonicalize_tests[] =
"\\\\?\\Volume{e51a1864-6f2d-4019-b73d-f4e60e600c26}\\", 0, S_OK},
/* .. */
+ {"..a", "..a", 0, S_OK},
+ {"...a", "...a", 0, S_OK},
+ {"....a", "....a", 0, S_OK},
{"a..", "a", 0, S_OK},
+ {"a...", "a", 0, S_OK},
+ {"a....", "a", 0, S_OK},
+ {"..a..", "..a", 0, S_OK},
{"a..b", "a..b", 0, S_OK},
+ {"..a..b..", "..a..b", 0, S_OK},
{"a\\..", "\\", 0, S_OK},
{"a\\..\\", "\\", 0, S_OK},
{"a\\..\\b", "\\b", 0, S_OK},
+ {":..", ":", 0, S_OK},
{"C:..", "C:\\", 0, S_OK},
+ {"C:...", "C:\\", 0, S_OK},
+ {"C:..\\", "C:..\\", 0, S_OK},
+ {"C:..\\\\", "C:..\\\\", 0, S_OK},
+ {"C:...\\", "C:...\\", 0, S_OK},
{"C:\\..", "C:\\", 0, S_OK},
+ {"C:\\..a", "C:\\..a", 0, S_OK},
+ {"C:\\...a", "C:\\...a", 0, S_OK},
+ {"C:\\....a", "C:\\....a", 0, S_OK},
+ {"C:\\a..", "C:\\a", 0, S_OK},
{"C:\\\\..", "C:\\", 0, S_OK},
{"C:\\..\\", "C:\\", 0, S_OK},
+ {"C:\\...\\", "C:\\...\\", 0, S_OK},
{"C:\\a\\..", "C:\\", 0, S_OK},
+ {"C:\\a\\b..", "C:\\a\\b", 0, S_OK},
{"C:\\a\\\\..", "C:\\a", 0, S_OK},
{"C:\\a\\\\\\..", "C:\\a\\", 0, S_OK},
{"C:\\a\\..\\b", "C:\\b", 0, S_OK},
{"C:\\a\\..\\\\b", "C:\\\\b", 0, S_OK},
+ {"..\\", "\\", 0, S_OK},
+ {"...\\", "...\\", 0, S_OK},
{"\\..", "\\", 0, S_OK},
+ {"\\...", "\\", 0, S_OK},
{"\\\\..", "\\\\", 0, S_OK},
{"\\\\\\..", "\\", 0, S_OK},
{"\\\\..\\", "\\\\", 0, S_OK},
@@ -249,6 +280,8 @@ static const struct alloccanonicalize_test alloccanonicalize_tests[] =
/* PATHCCH_DO_NOT_NORMALIZE_SEGMENTS */
/* No effect for spaces */
+ {"a ", "a ", 0, S_OK},
+ {"C:\\a ", "C:\\a ", 0, S_OK},
{"C:\\a \\", "C:\\a \\", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
{"C:\\a\\ ", "C:\\a\\ ", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
{"C:\\a ", "C:\\a ", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
@@ -265,6 +298,7 @@ static const struct alloccanonicalize_test alloccanonicalize_tests[] =
{"..", "\\", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
{"C:.", "C:.", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
{"C:..", "C:..", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
+ {"C:...", "C:...", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
{"C:\\a\\.", "C:\\a", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
{"C:\\a\\..", "C:\\", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
{"C:\\a.", "C:\\a.", PATHCCH_DO_NOT_NORMALIZE_SEGMENTS, S_OK},
--
2.21.0
More information about the wine-devel
mailing list