Zebediah Figura : qcap/tests: Add more tests for smart tee pin interfaces.

Alexandre Julliard julliard at winehq.org
Fri Apr 12 13:11:49 CDT 2019


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

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Fri Apr 12 00:20:56 2019 -0500

qcap/tests: Add more tests for smart tee pin interfaces.

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

---

 dlls/qcap/tests/smartteefilter.c | 88 ++++++++++++++++++++++------------------
 1 file changed, 49 insertions(+), 39 deletions(-)

diff --git a/dlls/qcap/tests/smartteefilter.c b/dlls/qcap/tests/smartteefilter.c
index 79d296d..b3b0584 100644
--- a/dlls/qcap/tests/smartteefilter.c
+++ b/dlls/qcap/tests/smartteefilter.c
@@ -63,6 +63,7 @@ static void test_interfaces(void)
 {
     IBaseFilter *filter = create_smart_tee();
     ULONG ref;
+    IPin *pin;
 
     check_interface(filter, &IID_IBaseFilter, TRUE);
     check_interface(filter, &IID_IMediaFilter, TRUE);
@@ -82,6 +83,54 @@ static void test_interfaces(void)
     check_interface(filter, &IID_IReferenceClock, FALSE);
     check_interface(filter, &IID_IVideoWindow, FALSE);
 
+    IBaseFilter_FindPin(filter, sink_id, &pin);
+
+    check_interface(pin, &IID_IMemInputPin, TRUE);
+    check_interface(pin, &IID_IPin, TRUE);
+    todo_wine check_interface(pin, &IID_IQualityControl, TRUE);
+    check_interface(pin, &IID_IUnknown, TRUE);
+
+    check_interface(pin, &IID_IAMStreamConfig, FALSE);
+    check_interface(pin, &IID_IAMStreamControl, FALSE);
+    check_interface(pin, &IID_IKsPropertySet, FALSE);
+    check_interface(pin, &IID_IMediaPosition, FALSE);
+    check_interface(pin, &IID_IMediaSeeking, FALSE);
+    check_interface(pin, &IID_IPropertyBag, FALSE);
+
+    IPin_Release(pin);
+
+    IBaseFilter_FindPin(filter, capture_id, &pin);
+
+    todo_wine check_interface(pin, &IID_IAMStreamControl, TRUE);
+    check_interface(pin, &IID_IPin, TRUE);
+    todo_wine check_interface(pin, &IID_IQualityControl, TRUE);
+    check_interface(pin, &IID_IUnknown, TRUE);
+
+    check_interface(pin, &IID_IAMStreamConfig, FALSE);
+    check_interface(pin, &IID_IAsyncReader, FALSE);
+    check_interface(pin, &IID_IKsPropertySet, FALSE);
+    check_interface(pin, &IID_IMediaPosition, FALSE);
+    check_interface(pin, &IID_IMediaSeeking, FALSE);
+    check_interface(pin, &IID_IPropertyBag, FALSE);
+
+    IPin_Release(pin);
+
+    IBaseFilter_FindPin(filter, preview_id, &pin);
+
+    todo_wine check_interface(pin, &IID_IAMStreamControl, TRUE);
+    check_interface(pin, &IID_IPin, TRUE);
+    todo_wine check_interface(pin, &IID_IQualityControl, TRUE);
+    check_interface(pin, &IID_IUnknown, TRUE);
+
+    check_interface(pin, &IID_IAMStreamConfig, FALSE);
+    check_interface(pin, &IID_IAsyncReader, FALSE);
+    check_interface(pin, &IID_IKsPropertySet, FALSE);
+    check_interface(pin, &IID_IMediaPosition, FALSE);
+    check_interface(pin, &IID_IMediaSeeking, FALSE);
+    check_interface(pin, &IID_IPropertyBag, FALSE);
+
+    IPin_Release(pin);
+
     ref = IBaseFilter_Release(filter);
     ok(!ref, "Got unexpected refcount %d.\n", ref);
 }
@@ -1842,21 +1891,6 @@ static SourceFilter* create_audio_SourceFilter(void)
     return This;
 }
 
-static BOOL has_interface(IUnknown *unknown, REFIID uuid)
-{
-     HRESULT hr;
-     IUnknown *iface = NULL;
-
-     hr = IUnknown_QueryInterface(unknown, uuid, (void**)&iface);
-     if (SUCCEEDED(hr))
-     {
-         IUnknown_Release(iface);
-         return TRUE;
-     }
-     else
-         return FALSE;
-}
-
 static void test_smart_tee_filter_in_graph(IBaseFilter *smartTeeFilter, IPin *inputPin,
         IPin *capturePin, IPin *previewPin)
 {
@@ -2036,30 +2070,6 @@ static void test_smart_tee_filter(void)
     if (!(inputPin && capturePin && previewPin))
         goto end;
 
-    ok(has_interface((IUnknown*)inputPin, &IID_IUnknown), "IUnknown should exist on the input pin\n");
-    ok(has_interface((IUnknown*)inputPin, &IID_IMemInputPin), "IMemInputPin should exist the input pin\n");
-    ok(!has_interface((IUnknown*)inputPin, &IID_IKsPropertySet), "IKsPropertySet shouldn't exist on the input pin\n");
-    ok(!has_interface((IUnknown*)inputPin, &IID_IAMStreamConfig), "IAMStreamConfig shouldn't exist on the input pin\n");
-    ok(!has_interface((IUnknown*)inputPin, &IID_IAMStreamControl), "IAMStreamControl shouldn't exist on the input pin\n");
-    ok(!has_interface((IUnknown*)inputPin, &IID_IPropertyBag), "IPropertyBag shouldn't exist on the input pin\n");
-    todo_wine ok(has_interface((IUnknown*)inputPin, &IID_IQualityControl), "IQualityControl should exist on the input pin\n");
-
-    ok(has_interface((IUnknown*)capturePin, &IID_IUnknown), "IUnknown should exist on the capture pin\n");
-    ok(!has_interface((IUnknown*)capturePin, &IID_IAsyncReader), "IAsyncReader shouldn't exist on the capture pin\n");
-    ok(!has_interface((IUnknown*)capturePin, &IID_IKsPropertySet), "IKsPropertySet shouldn't exist on the capture pin\n");
-    ok(!has_interface((IUnknown*)capturePin, &IID_IAMStreamConfig), "IAMStreamConfig shouldn't exist on the capture pin\n");
-    todo_wine ok(has_interface((IUnknown*)capturePin, &IID_IAMStreamControl), "IAMStreamControl should exist on the capture pin\n");
-    ok(!has_interface((IUnknown*)capturePin, &IID_IPropertyBag), "IPropertyBag shouldn't exist on the capture pin\n");
-    todo_wine ok(has_interface((IUnknown*)capturePin, &IID_IQualityControl), "IQualityControl should exist on the capture pin\n");
-
-    ok(has_interface((IUnknown*)previewPin, &IID_IUnknown), "IUnknown should exist on the preview pin\n");
-    ok(!has_interface((IUnknown*)previewPin, &IID_IAsyncReader), "IAsyncReader shouldn't exist on the preview pin\n");
-    ok(!has_interface((IUnknown*)previewPin, &IID_IKsPropertySet), "IKsPropertySet shouldn't exist on the preview pin\n");
-    ok(!has_interface((IUnknown*)previewPin, &IID_IAMStreamConfig), "IAMStreamConfig shouldn't exist on the preview pin\n");
-    todo_wine ok(has_interface((IUnknown*)capturePin, &IID_IAMStreamControl), "IAMStreamControl should exist on the preview pin\n");
-    ok(!has_interface((IUnknown*)previewPin, &IID_IPropertyBag), "IPropertyBag shouldn't exist on the preview pin\n");
-    todo_wine ok(has_interface((IUnknown*)previewPin, &IID_IQualityControl), "IQualityControl should exist on the preview pin\n");
-
     hr = IPin_QueryInterface(inputPin, &IID_IMemInputPin, (void**)&memInputPin);
     ok(SUCCEEDED(hr), "couldn't get mem input pin, hr=0x%08x\n", hr);
     if (FAILED(hr))




More information about the wine-cvs mailing list