Rob Shearman : rpcrt4: Add tests for a complex array of pointers.

Alexandre Julliard julliard at winehq.org
Fri Mar 19 11:16:42 CDT 2010


Module: wine
Branch: master
Commit: f6c4c49f86866cb7c15edb43af7203fca32850de
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f6c4c49f86866cb7c15edb43af7203fca32850de

Author: Rob Shearman <robertshearman at gmail.com>
Date:   Fri Mar 19 14:50:15 2010 +0000

rpcrt4: Add tests for a complex array of pointers.

---

 dlls/rpcrt4/tests/server.c   |   19 +++++++++++++++++++
 dlls/rpcrt4/tests/server.idl |    3 +++
 2 files changed, 22 insertions(+), 0 deletions(-)

diff --git a/dlls/rpcrt4/tests/server.c b/dlls/rpcrt4/tests/server.c
index 693fe69..e792170 100644
--- a/dlls/rpcrt4/tests/server.c
+++ b/dlls/rpcrt4/tests/server.c
@@ -283,6 +283,15 @@ s_sum_var_array(int x[20], int n)
 }
 
 int
+s_sum_complex_array(int n, refpint_t pi[])
+{
+  int total = 0;
+  for (; n > 0; n--)
+    total += *pi[n - 1];
+  return total;
+}
+
+int
 s_dot_two_vectors(vector_t vs[2])
 {
   return vs[0].x * vs[1].x + vs[0].y * vs[1].y + vs[0].z * vs[1].z;
@@ -1213,6 +1222,7 @@ array_tests(void)
   int *pi;
   pints_t api[5];
   numbers_struct_t *ns;
+  refpint_t rpi[5];
 
   if (!old_windows_version)
   {
@@ -1317,6 +1327,15 @@ array_tests(void)
       HeapFree(GetProcessHeap(), 0, ns);
   }
   HeapFree(GetProcessHeap(), 0, pi);
+
+  pi = HeapAlloc(GetProcessHeap(), 0, 5 * sizeof(*pi));
+  pi[0] = 3;  rpi[0] = &pi[0];
+  pi[1] = 5;  rpi[1] = &pi[1];
+  pi[2] = -2; rpi[2] = &pi[2];
+  pi[3] = -1; rpi[3] = &pi[3];
+  pi[4] = -4; rpi[4] = &pi[4];
+  ok(sum_complex_array(5, rpi) == 1, "RPC sum_complex_array\n");
+  HeapFree(GetProcessHeap(), 0, pi);
 }
 
 void
diff --git a/dlls/rpcrt4/tests/server.idl b/dlls/rpcrt4/tests/server.idl
index 29b90b5..6899675 100644
--- a/dlls/rpcrt4/tests/server.idl
+++ b/dlls/rpcrt4/tests/server.idl
@@ -120,6 +120,8 @@ cpp_quote("#endif")
     } u;
   } test_list_t;
 
+  typedef [ref] int *refpint_t;
+
   int test_list_length(test_list_t *ls);
   int sum_fixed_int_3d(int m[2][3][4]);
   int sum_conf_array([size_is(n)] int x[], int n);
@@ -154,6 +156,7 @@ cpp_quote("#endif")
   int sum_cs(cs_t *cs);
   int sum_cps(cps_t *cps);
   int sum_cpsc(cpsc_t *cpsc);
+  int sum_complex_array(int n, refpint_t pi[n]);
 
   typedef [wire_marshal(int)] void *puint_t;
   int square_puint(puint_t p);




More information about the wine-cvs mailing list