From ebd57713aa316a1f7f759cab6d61db557beb807e Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Sun, 31 Dec 2006 21:11:50 +0800 Subject: [PATCH] kernel32: Make the locale test pass without errors under XP SP2. --- dlls/kernel32/tests/locale.c | 51 +++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/dlls/kernel32/tests/locale.c b/dlls/kernel32/tests/locale.c index f09c8980aa9..fd807978e11 100644 --- a/dlls/kernel32/tests/locale.c +++ b/dlls/kernel32/tests/locale.c @@ -116,8 +116,9 @@ static void InitFunctionPointers(void) #define EXPECT_INVALIDFLAGS ok(GetLastError() == ERROR_INVALID_FLAGS || \ GetLastError() == ERROR_INVALID_PARAMETER, \ "Expected ERROR_INVALID_FLAGS, got %d\n", GetLastError()) -#define EXPECT_VALID ok(GetLastError() == 0, \ +#define EXPECT_LASTERROR_0 ok(GetLastError() == 0, \ "Expected GetLastError() == 0, got %d\n", GetLastError()) +#define EXPECT_VALID ok(ret, "Expected ret != 0, got %d, error %d\n", ret, GetLastError()) #define STRINGSA(x,y) strcpy(input, x); strcpy(Expected, y); SetLastError(0); buffer[0] = '\0' #define EXPECT_LENA EXPECT_LEN((int)strlen(Expected)+1) @@ -169,6 +170,7 @@ static void test_GetTimeFormatA(void) memset(&curtime, 2, sizeof(SYSTEMTIME)); STRINGSA("tt HH':'mm'@'ss", ""); /* Invalid time */ + SetLastError(0xdeadbeef); ret = GetTimeFormatA(lcid, TIME_FORCE24HOURFORMAT, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; @@ -177,15 +179,18 @@ static void test_GetTimeFormatA(void) curtime.wSecond = 13; curtime.wMilliseconds = 22; STRINGSA("tt HH':'mm'@'ss", "AM 08:56@13"); /* Valid time */ + SetLastError(0xdeadbeef); ret = GetTimeFormatA(lcid, NUO|TIME_FORCE24HOURFORMAT, &curtime, input, buffer, COUNTOF(buffer)); + ret = GetTimeFormatA(lcid, TIME_FORCE24HOURFORMAT, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("tt HH':'mm'@'ss", "A"); /* Insufficent buffer */ - ret = GetTimeFormatA(lcid, NUO|TIME_FORCE24HOURFORMAT, &curtime, input, buffer, 2); + SetLastError(0xdeadbeef); + ret = GetTimeFormatA(lcid, TIME_FORCE24HOURFORMAT, &curtime, input, buffer, 2); EXPECT_BUFFER; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("tt HH':'mm'@'ss", "AM 08:56@13"); /* Calculate length only */ - ret = GetTimeFormatA(lcid, NUO|TIME_FORCE24HOURFORMAT, &curtime, input, NULL, 0); + ret = GetTimeFormatA(lcid, TIME_FORCE24HOURFORMAT, &curtime, input, NULL, 0); EXPECT_VALID; EXPECT_LENA; STRINGSA("", "8 AM"); /* TIME_NOMINUTESORSECONDS, default format */ @@ -202,11 +207,11 @@ static void test_GetTimeFormatA(void) STRINGSA("h:m:s tt", "8:56 AM"); /* TIME_NOSECONDS */ strcpy(Expected, "8:56 AM"); - ret = GetTimeFormatA(lcid, NUO|TIME_NOSECONDS, &curtime, input, buffer, COUNTOF(buffer)); + ret = GetTimeFormatA(lcid, TIME_NOSECONDS, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("h.@:m.@:s.@:tt", "8.@:56AM"); /* Multiple delimiters */ - ret = GetTimeFormatA(lcid, NUO|TIME_NOSECONDS, &curtime, input, buffer, COUNTOF(buffer)); + ret = GetTimeFormatA(lcid, TIME_NOSECONDS, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("s1s2s3", ""); /* Duplicate tokens */ @@ -214,12 +219,12 @@ static void test_GetTimeFormatA(void) EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("t/tt", "A/AM"); /* AM time marker */ - ret = GetTimeFormatA(lcid, NUO, &curtime, input, buffer, COUNTOF(buffer)); + ret = GetTimeFormatA(lcid, 0, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; curtime.wHour = 13; STRINGSA("t/tt", "P/PM"); /* PM time marker */ - ret = GetTimeFormatA(lcid, NUO, &curtime, input, buffer, COUNTOF(buffer)); + ret = GetTimeFormatA(lcid, 0, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("h1t2tt3m", "156"); /* TIME_NOTIMEMARKER: removes text around time marker token */ @@ -227,7 +232,7 @@ static void test_GetTimeFormatA(void) EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("h:m:s tt", "13:56:13 PM"); /* TIME_FORCE24HOURFORMAT */ - ret = GetTimeFormatA(lcid, NUO|TIME_FORCE24HOURFORMAT, &curtime, input, buffer, COUNTOF(buffer)); + ret = GetTimeFormatA(lcid, TIME_FORCE24HOURFORMAT, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("h:m:s", "13:56:13"); /* TIME_FORCE24HOURFORMAT doesn't add time marker */ @@ -238,7 +243,7 @@ static void test_GetTimeFormatA(void) curtime.wMinute = 5; curtime.wSecond = 3; STRINGSA("h hh H HH m mm s ss t tt", "2 02 14 14 5 05 3 03 P PM"); /* 24 hrs, leading 0 */ - ret = GetTimeFormatA(lcid, NUO, &curtime, input, buffer, COUNTOF(buffer)); + ret = GetTimeFormatA(lcid, 0, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; curtime.wHour = 0; @@ -247,7 +252,7 @@ static void test_GetTimeFormatA(void) EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("h:m:s tt", "12:5:3 AM"); /* non-zero flags should fail with format, doesn't */ - ret = GetTimeFormatA(lcid, NUO, &curtime, input, buffer, COUNTOF(buffer)); + ret = GetTimeFormatA(lcid, 0, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; /* try to convert formatting strings with more than two letters @@ -272,7 +277,7 @@ static void test_GetTimeFormatA(void) STRINGSA("h 'h' H 'H' HH 'HH' m 'm' s 's' t 't' tt 'tt'", "8 h 8 H 08 HH 56 m 13 s A t AM tt"); /* "'" preserves tokens */ - ret = GetTimeFormatA(lcid, NUO, &curtime, input, buffer, COUNTOF(buffer)); + ret = GetTimeFormatA(lcid, 0, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_VALID; EXPECT_LENA; EXPECT_EQA; STRINGSA("'''", "'"); /* invalid quoted string */ @@ -303,6 +308,7 @@ static void test_GetTimeFormatA(void) curtime.wHour = 25; STRINGSA("'123'tt", ""); /* Invalid time */ + SetLastError(0xdeadbeef); ret = GetTimeFormatA(lcid, 0, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; @@ -322,6 +328,7 @@ static void test_GetDateFormatA(void) memset(&curtime, 2, sizeof(SYSTEMTIME)); /* Invalid time */ STRINGSA("ddd',' MMM dd yy",""); + SetLastError(0xdeadbeef); ret = GetDateFormatA(lcid, 0, &curtime, input, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; @@ -347,6 +354,7 @@ static void test_GetDateFormatA(void) EXPECT_VALID; EXPECT_LEN(16); EXPECT_EQA; STRINGSA("ddd',' MMM dd ''''yy",""); /* Buffer too small */ + SetLastError(0xdeadbeef); ret = GetDateFormatA(lcid, 0, &curtime, input, buffer, 2); EXPECT_BUFFER; EXPECT_LEN(0); EXPECT_EQA; @@ -389,6 +397,7 @@ static void test_GetDateFormatW(void) EXPECT_FLAGS; EXPECT_LEN(0); EXPECT_EQW; STRINGSW("",""); /* NULL buffer, len > 0 */ + SetLastError(0xdeadbeef); ret = GetDateFormatW (lcid, 0, NULL, input, NULL, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQW; @@ -428,38 +437,47 @@ static void test_GetCurrencyFormatA(void) memset(&format, 0, sizeof(format)); STRINGSA("23",""); /* NULL output, length > 0 --> Error */ + SetLastError(0xdeadbeef); ret = GetCurrencyFormatA(lcid, 0, input, NULL, NULL, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("23,53",""); /* Invalid character --> Error */ + SetLastError(0xdeadbeef); ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("--",""); /* Double '-' --> Error */ + SetLastError(0xdeadbeef); ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("0-",""); /* Trailing '-' --> Error */ + SetLastError(0xdeadbeef); ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("0..",""); /* Double '.' --> Error */ + SetLastError(0xdeadbeef); ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA(" 0.1",""); /* Leading space --> Error */ + SetLastError(0xdeadbeef); ret = GetCurrencyFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("1234","$"); /* Length too small --> Write up to length chars */ + SetLastError(0xdeadbeef); ret = GetCurrencyFormatA(lcid, NUO, input, NULL, buffer, 2); EXPECT_BUFFER; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("2353",""); /* Format and flags given --> Error */ + SetLastError(0xdeadbeef); ret = GetCurrencyFormatA(lcid, NUO, input, &format, buffer, COUNTOF(buffer)); EXPECT_INVALIDFLAGS; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("2353",""); /* Invalid format --> Error */ + SetLastError(0xdeadbeef); ret = GetCurrencyFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; @@ -625,38 +643,47 @@ static void test_GetNumberFormatA(void) memset(&format, 0, sizeof(format)); STRINGSA("23",""); /* NULL output, length > 0 --> Error */ + SetLastError(0xdeadbeef); ret = GetNumberFormatA(lcid, 0, input, NULL, NULL, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("23,53",""); /* Invalid character --> Error */ + SetLastError(0xdeadbeef); ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("--",""); /* Double '-' --> Error */ + SetLastError(0xdeadbeef); ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("0-",""); /* Trailing '-' --> Error */ + SetLastError(0xdeadbeef); ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("0..",""); /* Double '.' --> Error */ + SetLastError(0xdeadbeef); ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA(" 0.1",""); /* Leading space --> Error */ + SetLastError(0xdeadbeef); ret = GetNumberFormatA(lcid, 0, input, NULL, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("1234","1"); /* Length too small --> Write up to length chars */ + SetLastError(0xdeadbeef); ret = GetNumberFormatA(lcid, NUO, input, NULL, buffer, 2); EXPECT_BUFFER; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("2353",""); /* Format and flags given --> Error */ + SetLastError(0xdeadbeef); ret = GetNumberFormatA(lcid, NUO, input, &format, buffer, COUNTOF(buffer)); EXPECT_INVALIDFLAGS; EXPECT_LEN(0); EXPECT_EQA; STRINGSA("2353",""); /* Invalid format --> Error */ + SetLastError(0xdeadbeef); ret = GetNumberFormatA(lcid, 0, input, &format, buffer, COUNTOF(buffer)); EXPECT_INVALID; EXPECT_LEN(0); EXPECT_EQA; @@ -1973,7 +2000,7 @@ static void test_EnumSystemLanguageGroupsA(void) /* No flags - defaults to LGRPID_INSTALLED */ SetLastError(0); pEnumSystemLanguageGroupsA(langgrp_procA, 0, 1); - EXPECT_VALID; + EXPECT_LASTERROR_0; pEnumSystemLanguageGroupsA(langgrp_procA, LGRPID_INSTALLED, 0); pEnumSystemLanguageGroupsA(langgrp_procA, LGRPID_SUPPORTED, 0);