[PATCH 3/5] ole32/tests: Release the marshalled data in the expected buffers.
Huw Davies
huw at codeweavers.com
Tue Oct 27 09:42:32 CDT 2015
Signed-off-by: Huw Davies <huw at codeweavers.com>
---
dlls/ole32/tests/usrmarshal.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/dlls/ole32/tests/usrmarshal.c b/dlls/ole32/tests/usrmarshal.c
index 756e820..0ab4634 100644
--- a/dlls/ole32/tests/usrmarshal.c
+++ b/dlls/ole32/tests/usrmarshal.c
@@ -699,6 +699,8 @@ static void test_marshal_STGMEDIUM(void)
init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, NULL, 0, MSHCTX_DIFFERENTMACHINE);
expect_size = WdtpInterfacePointer_UserSize(&umcb.Flags, umcb.Flags, 2 * sizeof(DWORD), unk, &IID_IUnknown);
expect_buffer = HeapAlloc(GetProcessHeap(), 0, expect_size);
+ *(DWORD*)expect_buffer = TYMED_NULL;
+ *((DWORD*)expect_buffer + 1) = 0xdeadbeef;
init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, expect_buffer, expect_size, MSHCTX_DIFFERENTMACHINE);
expect_buffer_end = WdtpInterfacePointer_UserMarshal(&umcb.Flags, umcb.Flags, expect_buffer + 2 * sizeof(DWORD), unk, &IID_IUnknown);
@@ -735,6 +737,14 @@ static void test_marshal_STGMEDIUM(void)
init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, NULL, 0, MSHCTX_DIFFERENTMACHINE);
STGMEDIUM_UserFree(&umcb.Flags, &med2);
+ init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, expect_buffer, expect_size, MSHCTX_DIFFERENTMACHINE);
+ med2.tymed = TYMED_NULL;
+ U(med2).pstm = NULL;
+ med2.pUnkForRelease = NULL;
+ STGMEDIUM_UserUnmarshal(&umcb.Flags, expect_buffer, &med2);
+ init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, NULL, 0, MSHCTX_DIFFERENTMACHINE);
+ STGMEDIUM_UserFree(&umcb.Flags, &med2);
+
HeapFree(GetProcessHeap(), 0, expect_buffer);
/* TYMED_ISTREAM with pUnkForRelease */
@@ -746,6 +756,9 @@ static void test_marshal_STGMEDIUM(void)
expect_buffer = HeapAlloc(GetProcessHeap(), 0, expect_size);
/* There may be a hole between the two interfaces so init the buffer to something */
memset(expect_buffer, 0xcc, expect_size);
+ *(DWORD*)expect_buffer = TYMED_ISTREAM;
+ *((DWORD*)expect_buffer + 1) = 0xdeadbeef;
+ *((DWORD*)expect_buffer + 2) = 0xcafe;
init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, expect_buffer, expect_size, MSHCTX_DIFFERENTMACHINE);
expect_buffer_end = WdtpInterfacePointer_UserMarshal(&umcb.Flags, umcb.Flags, expect_buffer + 3 * sizeof(DWORD), (IUnknown*)stm, &IID_IStream);
expect_buffer_end = WdtpInterfacePointer_UserMarshal(&umcb.Flags, umcb.Flags, expect_buffer_end, unk, &IID_IUnknown);
@@ -786,6 +799,14 @@ static void test_marshal_STGMEDIUM(void)
init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, NULL, 0, MSHCTX_DIFFERENTMACHINE);
STGMEDIUM_UserFree(&umcb.Flags, &med2);
+ init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, expect_buffer, expect_size, MSHCTX_DIFFERENTMACHINE);
+ med2.tymed = TYMED_NULL;
+ U(med2).pstm = NULL;
+ med2.pUnkForRelease = NULL;
+ STGMEDIUM_UserUnmarshal(&umcb.Flags, expect_buffer, &med2);
+ init_user_marshal_cb(&umcb, &stub_msg, &rpc_msg, NULL, 0, MSHCTX_DIFFERENTMACHINE);
+ STGMEDIUM_UserFree(&umcb.Flags, &med2);
+
HeapFree(GetProcessHeap(), 0, expect_buffer);
}
--
1.8.0
More information about the wine-patches
mailing list