[PATCH v2 1/2] ole32/tests: Add more tests for custom ILockBytes implementation.
Signed-off-by: Dmitry Timoshkov <dmitry(a)baikal.ru> --- dlls/ole32/tests/storage32.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/dlls/ole32/tests/storage32.c b/dlls/ole32/tests/storage32.c index eea78c6d3fe..44ff3a07a21 100644 --- a/dlls/ole32/tests/storage32.c +++ b/dlls/ole32/tests/storage32.c @@ -241,6 +241,9 @@ static void CreateTestLockBytes(TestLockBytes **This) { (*This)->ILockBytes_iface.lpVtbl = &TestLockBytes_Vtbl; (*This)->ref = 1; + (*This)->size = 0; + (*This)->buffer_size = 1024; + (*This)->contents = HeapAlloc(GetProcessHeap(), 0, (*This)->buffer_size); } } @@ -3872,9 +3875,16 @@ static void test_custom_lockbytes(void) hr = IStorage_CreateStream(stg, stmname, STGM_SHARE_EXCLUSIVE|STGM_READWRITE, 0, 0, &stm); ok(hr==S_OK, "IStorage_CreateStream failed %x\n", hr); + IStream_Write(stm, "Hello World!", 12, NULL); IStream_Release(stm); + memset(lockbytes->contents, 0, lockbytes->buffer_size); + hr = IStorage_Commit(stg, 0); + ok(hr==S_OK, "IStorage_Commit failed %x\n", hr); + +todo_wine + ok(*(DWORD *)lockbytes->contents == 0xe011cfd0, "contents: %08x\n", *(DWORD *)lockbytes->contents); IStorage_Release(stg); @@ -3888,14 +3898,25 @@ static void test_custom_lockbytes(void) hr = IStorage_CreateStream(stg, stmname, STGM_SHARE_EXCLUSIVE|STGM_READWRITE, 0, 0, &stm); ok(hr==S_OK, "IStorage_CreateStream failed %x\n", hr); + IStream_Write(stm, "Hello World!", 12, NULL); IStream_Release(stm); hr = IStorage_Commit(stg, 0); - - IStorage_Release(stg); + ok(hr==S_OK, "IStorage_Commit failed %x\n", hr); ok(lockbytes->lock_called, "expected LockRegion to be called\n"); + ok(*(DWORD *)lockbytes->contents == 0xe011cfd0, "contents: %08x\n", *(DWORD *)lockbytes->contents); + + memset(lockbytes->contents, 0, lockbytes->buffer_size); + + hr = IStorage_Commit(stg, 0); + ok(hr==STG_E_INVALIDHEADER, "IStorage_Commit should fail: %x\n", hr); + + ok(*(DWORD *)lockbytes->contents == 0, "contents: %08x\n", *(DWORD *)lockbytes->contents); + + IStorage_Release(stg); + lockbytes->lock_hr = STG_E_INVALIDFUNCTION; hr = StgCreateDocfileOnILockBytes(&lockbytes->ILockBytes_iface, STGM_CREATE|STGM_READWRITE|STGM_TRANSACTED, 0, &stg); -- 2.30.2
Hi, While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=87989 Your paranoid android. === debiant2 (build log) === Task: Could not create the win32 wineprefix: Failed to disable the crash dialogs: Task: WineTest did not produce the 0 report === debiant2 (build log) === Task: Could not create the wow32 wineprefix: Failed to disable the crash dialogs: Task: WineTest did not produce the 0 report
participants (3)
-
Dmitry Timoshkov -
Esme Povirk (they/them) -
Marvin