summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorC. Scott Ananian <cscott@litl.com>2009-05-01 16:32:33 -0400
committerJohan Bilien <jobi@litl.com>2009-05-12 16:05:39 +0100
commit26ea778b1533a8499cfb2e98c25037a107569e14 (patch)
tree1bdbb8eaac929256c4d59dc58167cfcdabe7f0c2
parentd0d0069bbb276f24b119e1ad702219f2f68d0314 (diff)
downloadgobject-introspection-26ea778b1533a8499cfb2e98c25037a107569e14.tar.gz
Everything: more tests for integer array parameters.
-rw-r--r--tests/everything/everything.c87
-rw-r--r--tests/everything/everything.h6
2 files changed, 92 insertions, 1 deletions
diff --git a/tests/everything/everything.c b/tests/everything/everything.c
index feab26c3..d02182d4 100644
--- a/tests/everything/everything.c
+++ b/tests/everything/everything.c
@@ -255,7 +255,7 @@ static const char *test_sequence[] = {"1", "2", "3"};
/**
* test_array_int_in:
- * @n_ints:
+ * @n_ints:
* @ints: (array length=n_ints): List of ints
*/
int
@@ -267,6 +267,64 @@ test_array_int_in (int n_ints, int *ints)
return sum;
}
+/**
+ * test_array_gint8_in:
+ * @n_ints:
+ * @ints: (array length=n_ints): List of ints
+ */
+int
+test_array_gint8_in (int n_ints, gint8 *ints)
+{
+ int i, sum = 0;
+ for (i = 0; i < n_ints; i++)
+ sum += ints[i];
+ return sum;
+}
+
+/**
+ * test_array_gint16_in:
+ * @n_ints:
+ * @ints: (array length=n_ints): List of ints
+ */
+int
+test_array_gint16_in (int n_ints, gint16 *ints)
+{
+ int i, sum = 0;
+ for (i = 0; i < n_ints; i++)
+ sum += ints[i];
+ return sum;
+}
+
+/**
+ * test_array_gint32_in:
+ * @n_ints:
+ * @ints: (array length=n_ints): List of ints
+ */
+gint32
+test_array_gint32_in (int n_ints, gint32 *ints)
+{
+ int i;
+ gint32 sum = 0;
+ for (i = 0; i < n_ints; i++)
+ sum += ints[i];
+ return sum;
+}
+
+/**
+ * test_array_gint64_in:
+ * @n_ints:
+ * @ints: (array length=n_ints): List of ints
+ */
+gint64
+test_array_gint64_in (int n_ints, gint64 *ints)
+{
+ int i;
+ gint64 sum = 0;
+ for (i = 0; i < n_ints; i++)
+ sum += ints[i];
+ return sum;
+}
+
gboolean
test_strv_in (char **arr)
{
@@ -319,6 +377,33 @@ test_strv_out (void)
return ret;
}
+/**
+ * test_array_int_full_out:
+ * @len: length of the returned array.
+ * Returns: (array length=len) (transfer full): a new array of integers.
+ */
+int *
+test_array_int_full_out(int *len) {
+ int *result, i;
+ *len = 5;
+ result = g_malloc0(sizeof(*result) * (*len));
+ for (i=1; i < (*len); i++)
+ result[i] = result[i-1] + 1;
+ return result;
+}
+
+/**
+ * test_array_int_none_out:
+ * @len: length of the returned array.
+ * Returns: (array length=len) (transfer none): a static array of integers.
+ */
+int *
+test_array_int_none_out(int *len) {
+ static int result[5] = { 1, 2, 3, 4, 5 };
+ *len = 5;
+ return result;
+}
+
/* interface */
/************************************************************************/
diff --git a/tests/everything/everything.h b/tests/everything/everything.h
index f2b470d8..023a6513 100644
--- a/tests/everything/everything.h
+++ b/tests/everything/everything.h
@@ -38,8 +38,14 @@ GSList *test_filename_return (void);
/* array */
gboolean test_strv_in (char **arr);
int test_array_int_in (int n_ints, int *ints);
+int test_array_gint8_in (int n_ints, gint8 *ints);
+int test_array_gint16_in (int n_ints, gint16 *ints);
+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);
+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);