A few transfer-related tests for "Everything"
authorAndreas Rottmann <a.rottmann@gmx.at>
Fri, 29 May 2009 20:35:07 +0000 (22:35 +0200)
committerAndreas Rottmann <a.rottmann@gmx.at>
Fri, 29 May 2009 20:39:18 +0000 (22:39 +0200)
tests/everything/everything.c
tests/everything/everything.h

index 52dec4b..f2a2e30 100644 (file)
@@ -325,6 +325,10 @@ test_array_gint64_in (int n_ints, gint64 *ints)
   return sum;
 }
 
+/**
+ * test_strv_in:
+ * @arr: (array zero-terminated=1) (transfer none):
+ */
 gboolean
 test_strv_in (char **arr)
 {
@@ -339,6 +343,18 @@ test_strv_in (char **arr)
   return TRUE;
 }
 
+/**
+ * test_strv_in_container:
+ * @arr: (array zero-terminated=1) (transfer container):
+ */
+gboolean
+test_strv_in_container (char **arr)
+{
+  gboolean result = test_strv_in (arr);
+  g_free (arr);
+  return result;
+}
+
 /**
  * test_array_gtype_in:
  * @n_types: 
@@ -377,6 +393,35 @@ test_strv_out (void)
   return ret;
 }
 
+/**
+ * test_strv_outarg:
+ * @retp: (array zero-terminated=1) (out) (transfer container):
+ */
+void
+test_strv_outarg (char ***retp)
+{
+  char **ret = g_new (char *, 4);
+  ret[0] = "1";
+  ret[1] = "2";
+  ret[2] = "3";
+  ret[3] = NULL;
+  *retp = ret;
+}
+
+/**
+ * test_array_int_in_take:
+ * @n_ints:
+ * @ints: (array length=n_ints) (transfer full): List of ints
+ */
+int test_array_int_in_take (int n_ints, int *ints)
+{
+  int i, sum = 0;
+  for (i = 0; i < n_ints; i++)
+    sum += ints[i];
+  g_free (ints);
+  return sum;
+}
+
 /**
  * test_array_int_full_out:
  * @len: length of the returned array.
index 2a7e3cd..a4120dc 100644 (file)
@@ -44,8 +44,15 @@ gint32 test_array_gint32_in (int n_ints, gint32 *ints);
 gint64 test_array_gint64_in (int n_ints, gint64 *ints);
 char *test_array_gtype_in (int n_types, GType *types);
 char **test_strv_out (void);
+void   test_strv_outarg (char ***retp);
+
+/* transfer tests */
+int test_array_int_in_take (int n_ints, int *ints);
+gboolean test_strv_in_container (char **arr);
+
 int *test_array_int_full_out(int *len);
 int *test_array_int_none_out(int *len);
+
 /* interface */
 /* GList */
 G_CONST_RETURN GList *test_glist_nothing_return (void);