[PATCH 1/4] ucrtbase: Expand tests for strftime format %g.
Jeff Smith
whydoubt at gmail.com
Tue Nov 26 00:00:47 CST 2019
Signed-off-by: Jeff Smith <whydoubt at gmail.com>
---
dlls/ucrtbase/tests/misc.c | 29 +++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/dlls/ucrtbase/tests/misc.c b/dlls/ucrtbase/tests/misc.c
index 6314662eac..8c9fc1acb0 100644
--- a/dlls/ucrtbase/tests/misc.c
+++ b/dlls/ucrtbase/tests/misc.c
@@ -929,6 +929,7 @@ static void test_strftime(void)
struct tm tm;
BOOL todo;
BOOL todo_handler;
+ const char *broken;
} tests[] = {
{"%C", "", { 0, 0, 0, 1, 0, -2000, 4, 0, 0 }},
{"%C", "", { 0, 0, 0, 1, 0, -1901, 4, 0, 0 }},
@@ -977,9 +978,21 @@ static void test_strftime(void)
{"%r", "12:00:00 AM", { 0, 0, 0, 1, 0, 70, 4, 0, 0 }, TRUE},
{"%r", "02:00:00 PM", { 0, 0, 14, 1, 0, 121, 6, 0, 0 }, TRUE},
{"%t", "\t", { 0, 0, 0, 1, 0, 70, 4, 0, 0 }},
+ {"%g", "", { 0, 0, 0, 1, 0, -1901, 4, 0, 0 }, TRUE},
+ {"%g", "", { 0, 0, 0, 1, 0, -1901, 3, 364, 0 }, TRUE},
+ {"%g", "", { 0, 0, 0, 1, 0, -1900, 0, 0, 0 }, TRUE, FALSE, "0/" },
+ {"%g", "00", { 0, 0, 0, 1, 0, -1900, 4, 0, 0 }},
{"%g", "70", { 0, 0, 0, 1, 0, 70, 4, 0, 0 }},
+ {"%g", "71", { 0, 0, 0, 2, 0, 72, 0, 1, 0 }},
+ {"%g", "72", { 0, 0, 0, 3, 0, 72, 1, 2, 0 }},
{"%g", "16", { 0, 0, 0, 1, 0, 117, 0, 0, 0 }},
+ {"%g", "99", { 0, 0, 0, 1, 0, 8099, 4, 0, 0 }},
+ {"%g", "00", { 0, 0, 0, 1, 0, 8099, 3, 364, 0 }},
+ {"%g", "", { 0, 0, 0, 1, 0, 8100, 0, 0, 0 }, TRUE},
+ {"%g", "", { 0, 0, 0, 1, 0, 8100, 4, 0, 0 }, TRUE},
{"%G", "1970", { 0, 0, 0, 1, 0, 70, 4, 0, 0 }},
+ {"%G", "1971", { 0, 0, 0, 2, 0, 72, 0, 1, 0 }},
+ {"%G", "1972", { 0, 0, 0, 3, 0, 72, 1, 2, 0 }},
{"%G", "2016", { 0, 0, 0, 1, 0, 117, 0, 0, 0 }},
{"%V", "01", { 0, 0, 0, 1, 0, 70, 4, 0, 0 }, TRUE},
{"%V", "52", { 0, 0, 0, 1, 0, 117, 0, 0, 0 }, TRUE},
@@ -988,10 +1001,6 @@ static void test_strftime(void)
{"%y", "00", { 0, 0, 0, 0, 0, -1900, 0, 0, 0 }},
{"%y", "99", { 0, 0, 0, 0, 0, 8099, 0, 0, 0 }},
{"%y", "", { 0, 0, 0, 0, 0, 8100, 0, 0, 0 }},
- {"%g", "71", { 0, 0, 0, 2, 0, 72, 0, 1, 0 }},
- {"%g", "72", { 0, 0, 0, 3, 0, 72, 1, 2, 0 }},
- {"%G", "1971", { 0, 0, 0, 2, 0, 72, 0, 1, 0 }},
- {"%G", "1972", { 0, 0, 0, 3, 0, 72, 1, 2, 0 }},
{"%c", "Thu Jan 1 00:00:00 1970", { 0, 0, 0, 1, 0, 70, 4, 0, 0 }, TRUE},
{"%c", "Thu Feb 30 00:00:00 1970", { 0, 0, 0, 30, 1, 70, 4, 0, 0 }, TRUE},
{"%#c", "Thursday, January 01, 1970 00:00:00", { 0, 0, 0, 1, 0, 70, 4, 0, 0 }},
@@ -1092,16 +1101,20 @@ static void test_strftime(void)
for (i=0; i<ARRAY_SIZE(tests); i++)
{
todo_wine_if(tests[i].todo || tests[i].todo_handler) {
- if (!tests[i].ret[0])
+ if (!tests[i].ret[0] || (tests[i].broken && !tests[i].broken[0]))
SET_EXPECT(global_invalid_parameter_handler);
ret = p_strftime(buf, sizeof(buf), tests[i].format, &tests[i].tm);
- if (!tests[i].ret[0])
+ if (!tests[i].ret[0] && !tests[i].broken)
CHECK_CALLED(global_invalid_parameter_handler);
}
todo_wine_if(tests[i].todo) {
- ok(ret == strlen(tests[i].ret), "%d) ret = %d\n", i, ret);
- ok(!strcmp(buf, tests[i].ret), "%d) buf = \"%s\", expected \"%s\"\n",
+ ok(ret == strlen(tests[i].ret) ||
+ broken(tests[i].broken && ret == strlen(tests[i].broken)),
+ "%d) ret = %d\n", i, ret);
+ ok(!strcmp(buf, tests[i].ret) ||
+ broken(tests[i].broken && !strcmp(buf, tests[i].broken)),
+ "%d) buf = \"%s\", expected \"%s\"\n",
i, buf, tests[i].ret);
}
}
--
2.23.0
More information about the wine-devel
mailing list