[3/4] webservices/tests: Add another repeating element test.

Hans Leidekker hans at codeweavers.com
Tue Sep 13 07:31:36 CDT 2016


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/webservices/tests/reader.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/dlls/webservices/tests/reader.c b/dlls/webservices/tests/reader.c
index e8ac6b8..4a1f8de 100644
--- a/dlls/webservices/tests/reader.c
+++ b/dlls/webservices/tests/reader.c
@@ -2831,6 +2831,11 @@ static void test_repeating_element(void)
         struct service3 *service;
         ULONG            service_count;
     } *test3;
+    struct services4
+    {
+        struct service **service;
+        ULONG            service_count;
+    } *test4;
 
     hr = WsCreateHeap( 1 << 16, 0, NULL, 0, &heap, NULL );
     ok( hr == S_OK, "got %08x\n", hr );
@@ -2880,8 +2885,24 @@ static void test_repeating_element(void)
     ok( test->service[0].id == 1, "got %u\n", test->service[0].id );
     ok( test->service[1].id == 2, "got %u\n", test->service[1].id );
 
+    /* array of pointers */
+    prepare_struct_type_test( reader, data12 );
+    f.options = WS_FIELD_POINTER;
+    test4 = NULL;
+    hr = WsReadType( reader, WS_ELEMENT_TYPE_MAPPING, WS_STRUCT_TYPE, &s,
+                     WS_READ_REQUIRED_POINTER, heap, &test4, sizeof(test4), NULL );
+    ok( hr == S_OK || broken(hr == E_INVALIDARG) /* win7 */, "got %08x\n", hr );
+    if (test4)
+    {
+        ok( test4->service != NULL, "service not set\n" );
+        ok( test4->service_count == 2, "got %u\n", test4->service_count );
+        ok( test4->service[0]->id == 1, "got %u\n", test4->service[0]->id );
+        ok( test4->service[1]->id == 2, "got %u\n", test4->service[1]->id );
+    }
+
     /* item range */
     prepare_struct_type_test( reader, data13 );
+    f.options = 0;
     range.minItemCount = 0;
     range.maxItemCount = 1;
     f.itemRange = ⦥
-- 
2.1.4




More information about the wine-patches mailing list