Author: hyperion Date: Thu Oct 16 19:28:47 2008 New Revision: 36779
URL: http://svn.reactos.org/svn/reactos?rev=36779&view=rev Log: - 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)
Modified: trunk/rostests/apitests/gdi32api/tests/GetTextFace.c
Modified: trunk/rostests/apitests/gdi32api/tests/GetTextFace.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32api/tests/Ge... ============================================================================== --- trunk/rostests/apitests/gdi32api/tests/GetTextFace.c [iso-8859-1] (original) +++ trunk/rostests/apitests/gdi32api/tests/GetTextFace.c [iso-8859-1] Thu Oct 16 19:28:47 2008 @@ -4,22 +4,65 @@ { 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; }