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/G…
==============================================================================
--- 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;
}