From e23160a43c9cb81cda642400bff1172a51cd2c98 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Fri, 14 May 2010 23:19:16 +0000 Subject: [PATCH] [ROSTESTS] - more tests for direct DC creation/deletion svn path=/trunk/; revision=47210 --- .../w32knapi/ntgdi/NtGdiCreateCompatibleDC.c | 2 ++ .../w32knapi/ntgdi/NtGdiDeleteObjectApp.c | 27 ++++++++++++++++++- 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/rostests/apitests/w32knapi/ntgdi/NtGdiCreateCompatibleDC.c b/rostests/apitests/w32knapi/ntgdi/NtGdiCreateCompatibleDC.c index 3597eb67dca..130e1005bd1 100644 --- a/rostests/apitests/w32knapi/ntgdi/NtGdiCreateCompatibleDC.c +++ b/rostests/apitests/w32knapi/ntgdi/NtGdiCreateCompatibleDC.c @@ -21,6 +21,8 @@ Test_NtGdiCreateCompatibleDC(PTESTINFO pti) /* The default pen should be GetStockObject(BLACK_PEN) */ hObj = SelectObject(hDC, GetStockObject(WHITE_PEN)); TEST(hObj == GetStockObject(BLACK_PEN)); + + TEST(NtGdiDeleteObjectApp(hDC) != 0); TEST(NtGdiDeleteObjectApp(hDC) != 0); diff --git a/rostests/apitests/w32knapi/ntgdi/NtGdiDeleteObjectApp.c b/rostests/apitests/w32knapi/ntgdi/NtGdiDeleteObjectApp.c index 0084b109a9a..351de95e029 100644 --- a/rostests/apitests/w32knapi/ntgdi/NtGdiDeleteObjectApp.c +++ b/rostests/apitests/w32knapi/ntgdi/NtGdiDeleteObjectApp.c @@ -5,6 +5,7 @@ Test_NtGdiDeleteObjectApp(PTESTINFO pti) HDC hdc; HBITMAP hbmp; HBRUSH hbrush; + HPEN hpen; /* Try to delete 0 */ SetLastError(0); @@ -23,7 +24,31 @@ Test_NtGdiDeleteObjectApp(PTESTINFO pti) TEST(NtGdiDeleteObjectApp(hdc) == 1); TEST(GetLastError() == 0); TEST(IsHandleValid(hdc) == 0); - + + /* Delete a display DC */ + SetLastError(0); + hdc = CreateDC("DISPLAY", NULL, NULL, NULL); + ASSERT(IsHandleValid(hdc) == 1); + TEST((hpen=SelectObject(hdc, GetStockObject(WHITE_PEN))) != NULL); + SelectObject(hdc, hpen); + TEST(NtGdiDeleteObjectApp(hdc) != 0); + TEST(GetLastError() == 0); + TEST(IsHandleValid(hdc) == 1); + TEST(SelectObject(hdc, GetStockObject(WHITE_PEN)) == NULL); + TESTX(GetLastError() == ERROR_INVALID_PARAMETER, "GetLasterror returned 0x%08x\n", (unsigned int)GetLastError()); + + /* Once more */ + SetLastError(0); + hdc = GetDC(0); + ASSERT(IsHandleValid(hdc) == 1); + TEST(NtGdiDeleteObjectApp(hdc) != 0); + TEST(GetLastError() == 0); + TEST(IsHandleValid(hdc) == 1); + TEST(SelectObject(hdc, GetStockObject(WHITE_PEN)) == NULL); + TESTX(GetLastError() == ERROR_INVALID_PARAMETER, "GetLasterror returned 0x%08x\n", (unsigned int)GetLastError()); + /* Make sure */ + TEST(NtUserCallOneParam((DWORD_PTR)hdc, ONEPARAM_ROUTINE_RELEASEDC) == 0); + /* Delete a display DC */ SetLastError(0); hdc = CreateDC("DISPLAY", NULL, NULL, NULL); -- 2.17.1