- test GetTextFaceW instead of GetTextFaceA

- test that:
    - the last error is never set
    - the buffer size is ignored if the buffer is NULL
    - the buffer size is returned if the buffer is non-NULL and too small
    - the function fails if a non-NULL buffer has a size <= 0
 - allocate the DC for a GDI test with a GDI routine (CreateCompatibleDC) instead of an USER routine (GetDC)

svn path=/trunk/; revision=36779
This commit is contained in:
KJK::Hyperion 2008-10-17 00:28:47 +00:00
parent 97d55c7685
commit 8c7bebfed8

View file

@ -4,22 +4,65 @@ Test_GetTextFace(PTESTINFO pti)
{
HDC hDC;
INT ret;
CHAR Buffer[20];
INT ret2;
WCHAR Buffer[20];
hDC = GetDC(NULL);
hDC = CreateCompatibleDC(NULL);
ASSERT(hDC);
ret = GetTextFaceA(hDC, 0, NULL);
/* Whether asking for the string size (NULL buffer) ignores the size argument */
SetLastError(0xE000BEEF);
ret = GetTextFaceW(hDC, 0, NULL);
TEST(ret != 0);
TEST(GetLastError() == 0xE000BEEF);
ret2 = ret;
ret = GetTextFaceA(hDC, 20, Buffer);
SetLastError(0xE000BEEF);
ret = GetTextFaceW(hDC, -1, NULL);
TEST(ret != 0);
TEST(ret == ret2);
TEST(GetLastError() == 0xE000BEEF);
ret2 = ret;
ret = GetTextFaceA(hDC, 0, Buffer);
SetLastError(0xE000BEEF);
ret = GetTextFaceW(hDC, 10000, NULL);
TEST(ret != 0);
TEST(ret == ret2);
TEST(GetLastError() == 0xE000BEEF);
ret2 = ret;
/* Whether the buffer is correctly filled */
SetLastError(0xE000BEEF);
ret = GetTextFaceW(hDC, 20, Buffer);
TEST(ret != 0);
TEST(ret <= 20);
TEST(Buffer[ret - 1] == 0);
TEST(GetLastError() == 0xE000BEEF);
SetLastError(0xE000BEEF);
ret = GetTextFaceW(hDC, 1, Buffer);
TEST(ret == 1);
TEST(Buffer[ret - 1] == 0);
TEST(GetLastError() == 0xE000BEEF);
SetLastError(0xE000BEEF);
ret = GetTextFaceW(hDC, 2, Buffer);
TEST(ret == 2);
TEST(Buffer[ret - 1] == 0);
TEST(GetLastError() == 0xE000BEEF);
/* Whether invalid buffer sizes are correctly ignored */
SetLastError(0xE000BEEF);
ret = GetTextFaceW(hDC, 0, Buffer);
TEST(ret == 0);
TEST(GetLastError() == 0xE000BEEF);
ret = GetTextFaceA(hDC, 20, NULL);
TEST(ret != 0);
SetLastError(0xE000BEEF);
ret = GetTextFaceW(hDC, -1, Buffer);
TEST(ret == 0);
TEST(GetLastError() == 0xE000BEEF);
DeleteDC(hDC);
return APISTATUS_NORMAL;
}