Zebediah Figura : quartz/tests: Clean up CommitDecommitTest().

Alexandre Julliard julliard at winehq.org
Mon Feb 25 15:10:33 CST 2019


Module: wine
Branch: master
Commit: 83dc66730e6468428a9ecf03c9880afe2dc74ed8
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=83dc66730e6468428a9ecf03c9880afe2dc74ed8

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Fri Feb 22 19:27:01 2019 -0600

quartz/tests: Clean up CommitDecommitTest().

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/quartz/tests/memallocator.c | 113 ++++++++++++++++++++-------------------
 1 file changed, 57 insertions(+), 56 deletions(-)

diff --git a/dlls/quartz/tests/memallocator.c b/dlls/quartz/tests/memallocator.c
index 1086ed5..ee6a409 100644
--- a/dlls/quartz/tests/memallocator.c
+++ b/dlls/quartz/tests/memallocator.c
@@ -1,5 +1,5 @@
 /*
- * Unit tests for Direct Show functions
+ * Memory allocator unit tests
  *
  * Copyright (C) 2005 Christian Costa
  *
@@ -19,72 +19,73 @@
  */
 
 #define COBJMACROS
-
-#include "wine/test.h"
-#include "uuids.h"
 #include "dshow.h"
-#include "control.h"
+#include "wine/test.h"
 
-static void CommitDecommitTest(void)
+static IMemAllocator *create_allocator(void)
 {
-    IMemAllocator* pMemAllocator;
+    IMemAllocator *allocator = NULL;
+    HRESULT hr = CoCreateInstance(&CLSID_MemoryAllocator, NULL, CLSCTX_INPROC_SERVER,
+        &IID_IMemAllocator, (void **)&allocator);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    return allocator;
+}
+
+static void test_commit(void)
+{
+    ALLOCATOR_PROPERTIES req_props = {2, 65536, 1, 0}, ret_props;
+    IMemAllocator *allocator = create_allocator();
+    IMediaSample *sample, *sample2;
     HRESULT hr;
+    BYTE *data;
+
+    hr = IMemAllocator_SetProperties(allocator, &req_props, &ret_props);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
+    hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, 0);
+    ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#x.\n", hr);
+
+    hr = IMemAllocator_Commit(allocator);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    hr = IMemAllocator_Commit(allocator);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
+    hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, 0);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    IMediaSample_Release(sample);
+
+    hr = IMemAllocator_Decommit(allocator);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+    hr = IMemAllocator_Decommit(allocator);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
+    /* Extant samples remain valid even after Decommit() is called. */
+    hr = IMemAllocator_Commit(allocator);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
+    hr = IMemAllocator_GetBuffer(allocator, &sample, NULL, NULL, 0);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
+    hr = IMediaSample_GetPointer(sample, &data);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
+    hr = IMemAllocator_Decommit(allocator);
+    ok(hr == S_OK, "Got hr %#x.\n", hr);
+
+    memset(data, 0xcc, 65536);
+
+    hr = IMemAllocator_GetBuffer(allocator, &sample2, NULL, NULL, 0);
+    ok(hr == VFW_E_NOT_COMMITTED, "Got hr %#x.\n", hr);
 
-    hr = CoCreateInstance(&CLSID_MemoryAllocator, NULL, CLSCTX_INPROC_SERVER, &IID_IMemAllocator, (LPVOID*)&pMemAllocator);
-    ok(hr==S_OK, "Unable to create memory allocator %x\n", hr);
-
-    if (hr == S_OK)
-    {
-        ALLOCATOR_PROPERTIES RequestedProps;
-        ALLOCATOR_PROPERTIES ActualProps;
-
-        IMediaSample *sample = NULL, *sample2 = NULL;
-
-        RequestedProps.cBuffers = 2;
-        RequestedProps.cbBuffer = 65536;
-        RequestedProps.cbAlign = 1;
-        RequestedProps.cbPrefix = 0;
-
-	hr = IMemAllocator_SetProperties(pMemAllocator, &RequestedProps, &ActualProps);
-	ok(hr==S_OK, "SetProperties returned: %x\n", hr);
-
-	hr = IMemAllocator_Commit(pMemAllocator);
-	ok(hr==S_OK, "Commit returned: %x\n", hr);
-	hr = IMemAllocator_Commit(pMemAllocator);
-	ok(hr==S_OK, "Commit returned: %x\n", hr);
-
-        hr = IMemAllocator_GetBuffer(pMemAllocator, &sample, NULL, NULL, 0);
-        ok(hr==S_OK, "Could not get a buffer: %x\n", hr);
-
-	hr = IMemAllocator_Decommit(pMemAllocator);
-	ok(hr==S_OK, "Decommit returned: %x\n", hr);
-	hr = IMemAllocator_Decommit(pMemAllocator);
-	ok(hr==S_OK, "Cecommit returned: %x\n", hr);
-
-        /* Decommit and recommit while holding a sample */
-        if (sample)
-        {
-            hr = IMemAllocator_Commit(pMemAllocator);
-            ok(hr==S_OK, "Commit returned: %x\n", hr);
-
-            hr = IMemAllocator_GetBuffer(pMemAllocator, &sample2, NULL, NULL, 0);
-            ok(hr==S_OK, "Could not get a buffer: %x\n", hr);
-            IMediaSample_Release(sample);
-            if (sample2)
-                IMediaSample_Release(sample2);
-
-            hr = IMemAllocator_Decommit(pMemAllocator);
-            ok(hr==S_OK, "Cecommit returned: %x\n", hr);
-        }
-        IMemAllocator_Release(pMemAllocator);
-    }
+    IMediaSample_Release(sample);
+    IMemAllocator_Release(allocator);
 }
 
 START_TEST(memallocator)
 {
     CoInitialize(NULL);
 
-    CommitDecommitTest();
+    test_commit();
 
     CoUninitialize();
 }




More information about the wine-cvs mailing list