From: Zhiyi Zhang <zzhang(a)codeweavers.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47766 Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com> Signed-off-by: Jeff Smith <whydoubt(a)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