On 5/3/07, Bill Medland billmedland@shaw.ca wrote:
Bill Medland (billmedland@shaw.ca) Lower boundary test cases for SystemTimeToFileTime and GetDateFormat
Index: wine/dlls/kernel32/tests/locale.c
RCS file: /home/wine/wine/dlls/kernel32/tests/locale.c,v retrieving revision 1.11 diff -u -r1.11 locale.c --- wine/dlls/kernel32/tests/locale.c 2 Apr 2007 11:24:36 -0000 1.11 +++ wine/dlls/kernel32/tests/locale.c 3 May 2007 22:21:55 -0000 @@ -424,6 +424,34 @@ STRINGSW("dddd d MMMM yyyy","Wednesday 23 October 2002"); /* Incorrect DOW and time */ ret = GetDateFormatW (lcid, 0, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENW; EXPECT_EQW;
- /* Limit tests */
- curtime.wYear = 1601;
- curtime.wMonth = 1;
- curtime.wDay = 1;
- curtime.wDayOfWeek = 0; /* Irrelevant */
- curtime.wHour = 0;
- curtime.wMinute = 0;
- curtime.wSecond = 0;
- curtime.wMilliseconds = 0;
- STRINGSW("dddd d MMMM yyyy","Monday 1 January 1601");
- SetLastError(0xdeadbeef);
- ret = GetDateFormatW (lcid, 0, &curtime, input, buffer, COUNTOF(buffer));
- EXPECT_VALID; EXPECT_LENW; EXPECT_EQW;
- curtime.wYear = 1600;
- curtime.wMonth = 12;
- curtime.wDay = 31;
- curtime.wDayOfWeek = 0; /* Irrelevant */
- curtime.wHour = 23;
- curtime.wMinute = 59;
- curtime.wSecond = 59;
- curtime.wMilliseconds = 999;
- STRINGSW("dddd d MMMM yyyy","Friday 31 December 1600");
- SetLastError(0xdeadbeef);
- ret = GetDateFormatW (lcid, 0, &curtime, input, buffer, COUNTOF(buffer));
- EXPECT_INVALID;
}
Index: wine/dlls/kernel32/tests/time.c
RCS file: /home/wine/wine/dlls/kernel32/tests/time.c,v retrieving revision 1.3 diff -u -r1.3 time.c --- wine/dlls/kernel32/tests/time.c 4 Jan 2007 10:46:26 -0000 1.3 +++ wine/dlls/kernel32/tests/time.c 3 May 2007 22:22:04 -0000 @@ -73,6 +73,23 @@ (st).wSecond = 32; \ (st).wMilliseconds = 123;
+#define SETUP_ZEROTIME(st) \
- (st).wYear = 1601; \
- (st).wMonth = 1; \
- (st).wDay = 1; \
- (st).wHour = 0; \
- (st).wMinute = 0; \
- (st).wSecond = 0; \
- (st).wMilliseconds = 0;
+#define SETUP_EARLY(st) \
- (st).wYear = 1600; \
- (st).wMonth = 12; \
- (st).wDay = 31; \
- (st).wHour = 23; \
- (st).wMinute = 59; \
- (st).wSecond = 59; \
- (st).wMilliseconds = 999;
static void test_conversions(void) @@ -82,6 +99,12 @@
memset(&ft,0,sizeof ft);
- SETUP_EARLY(st)
- ok ((!SystemTimeToFileTime(&st, &ft) && GetLastError() == ERROR_INVALID_PARAMETER), "Conversion failed EARLY\n");
- SETUP_ZEROTIME(st)
- ok (SystemTimeToFileTime(&st, &ft) && ft.dwHighDateTime == 0 && ft.dwLowDateTime == 0, "Conversion failed ZERO_TIME\n");
You need to check each part of those conditions separately in their own ok()'s.