[Wine-devel] [Wine-patches] eterbug6846: ole32/tests: Incorrect storage creation
Alexander Morozov
amorozov на etersoft.ru
Пт Мар 25 16:02:48 MSK 2011
> eterbug6846: ole32/tests: Incorrect storage creation
> выдает ошибку если откатить патч
> b28eaf6776abe068416bb020856b095f972c149c
+static void test_correct_storage_creation(void)
+{
+ ILockBytes *ilb = NULL;
+ IStorage *stg = NULL;
+ DWORD mode;
+ BYTE *pFileBuffer;
+ HGLOBAL hMem;
+ HRESULT r;
+ static const BYTE StandardMagic[] = {0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1};
+ static const BYTE NullableField[] =
+{
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
Это лучше сделать как-то так:
static const BYTE NullableField[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+
Надо удалить везде ненежные пробелы в конце строк.
+ /* Test for correct storage creation */
+ /* Memory allocation */
+ mode = GMEM_FIXED;
+ hMem = GlobalAlloc( mode, 1024);
Надо сделать, чтобы либо везде присутствовали пробелы перед/после скобок при вызове функции,
либо везде остутствовали.
То есть либо так:
func( aa, bb );
либо так:
func(aa,bb);
Такого быть не должно:
func( aa,bb);
func(aa,bb );
+ FillMemory(hMem, 1024, 0xff);
+ /* ILockBytes creation */
+ r = CreateILockBytesOnHGlobal(hMem, TRUE, &ilb);
+ ok(r == S_OK, "CreateILockBytesOnHGlobal failed, hr=%08x\n", r);
+ GlobalUnlock(hMem);
GlobalUnlock здесь не нужен. Вообще, я уже обращал на это внимание:
http://lists.etersoft.ru/pipermail/wine-devel/2011-March/000366.html
+ /* Storage creation */
+ mode = STGM_CREATE|STGM_TRANSACTED|STGM_SHARE_EXCLUSIVE|STGM_READWRITE;
+ r = StgCreateDocfileOnILockBytes( ilb, mode, 0, &stg );
+ ok(r == S_OK, "StgCreateDocfileOnILockBytes failed, hr=%08x\n", r);
+ IStorage_Commit(stg, STGC_DEFAULT);
+ IStorage_Release(stg);
+ GetHGlobalFromILockBytes(ilb, &hMem);
+ pFileBuffer = GlobalLock(hMem);
+todo_wine
Перед todo_wine надо сделать отступы в четыре пробела как везде.
+ ok(!memcmp(pFileBuffer, StandardMagic, 8), "Incorrect storage creation\n");
+todo_wine
+ ok(!memcmp((pFileBuffer+8), NullableField, 16), "Incorrect storage creation. Field is not reset\n");
+todo_wine
+ ok(!memcmp((pFileBuffer+34), NullableField, 10), "Incorrect storage creation. Field is not reset\n");
А здесь надо выполнить GlobalUnlock для hMem.
+ ILockBytes_Release(ilb);
+}
Подробная информация о списке рассылки Wine-devel