summaryrefslogtreecommitdiff
path: root/tests/gimarshallingtests.c
diff options
context:
space:
mode:
authorPhilip Chimento <philip.chimento@gmail.com>2016-10-11 23:00:09 -0700
committerPhilip Chimento <philip.chimento@gmail.com>2016-10-13 22:50:57 -0700
commit8bbd0c3849997d41b653e12a292b43ad59c4d9ca (patch)
tree5199f134fae34f9ed15655bac6be2879a18dfebb /tests/gimarshallingtests.c
parentb8d92b0b36b3907ef066e068e33e9309eb0f8ec5 (diff)
downloadgobject-introspection-8bbd0c3849997d41b653e12a292b43ad59c4d9ca.tar.gz
tests: Marshalling tests for new GJS functionality
GJS has gained some support for marshalling arrays of previously unsupported types. These are the marshalling tests that are needed to test that new functionality. https://bugzilla.gnome.org/show_bug.cgi?id=772790
Diffstat (limited to 'tests/gimarshallingtests.c')
-rw-r--r--tests/gimarshallingtests.c128
1 files changed, 128 insertions, 0 deletions
diff --git a/tests/gimarshallingtests.c b/tests/gimarshallingtests.c
index 69311de7..03dc119d 100644
--- a/tests/gimarshallingtests.c
+++ b/tests/gimarshallingtests.c
@@ -1376,6 +1376,66 @@ gi_marshalling_tests_array_uint8_in (const guint8 *chars, gint length)
}
/**
+ * gi_marshalling_tests_array_int64_in:
+ * @ints: (array length=length):
+ * @length:
+ */
+void
+gi_marshalling_tests_array_int64_in (const gint64 *ints, gint length)
+{
+ g_assert_cmpint (length, ==, 4);
+ g_assert_cmpint (ints[0], ==, -1);
+ g_assert_cmpint (ints[1], ==, 0);
+ g_assert_cmpint (ints[2], ==, 1);
+ g_assert_cmpint (ints[3], ==, 2);
+}
+
+/**
+ * gi_marshalling_tests_array_uint64_in:
+ * @ints: (array length=length):
+ * @length:
+ */
+void
+gi_marshalling_tests_array_uint64_in (const guint64 *ints, gint length)
+{
+ g_assert_cmpint (length, ==, 4);
+ g_assert_cmpint (ints[0], ==, -1);
+ g_assert_cmpint (ints[1], ==, 0);
+ g_assert_cmpint (ints[2], ==, 1);
+ g_assert_cmpint (ints[3], ==, 2);
+}
+
+/**
+ * gi_marshalling_tests_array_unichar_in:
+ * @chars: (array length=length):
+ * @length:
+ */
+void
+gi_marshalling_tests_array_unichar_in (const gunichar *chars, gint length)
+{
+ unsigned ix;
+ static const gunichar expected[] = GI_MARSHALLING_TESTS_CONSTANT_UCS4;
+ g_assert_cmpint (length, ==, 12);
+ for (ix = 0; ix < length; ix++)
+ g_assert_cmpuint (chars[ix], ==, expected[ix]);
+}
+
+/**
+ * gi_marshalling_tests_array_bool_in:
+ * @bools: (array length=length):
+ * @length:
+ */
+void
+gi_marshalling_tests_array_bool_in (const gboolean *bools, gint length)
+{
+ g_assert_cmpint (length, ==, 4);
+ g_assert_true (bools[0]);
+ g_assert_false (bools[1]);
+ g_assert_true (bools[2]);
+ g_assert_true (bools[3]);
+}
+
+/**
* gi_marshalling_tests_array_struct_in:
* @structs: (array length=length):
*/
@@ -1522,6 +1582,31 @@ gi_marshalling_tests_array_out_etc (gint first, gint **ints, gint *length, gint
}
/**
+ * gi_marshalling_tests_array_bool_out:
+ * @bools: (out) (array length=length) (transfer none):
+ */
+void
+gi_marshalling_tests_array_bool_out (gboolean **bools, gint *length)
+{
+ static const gboolean values[] = { TRUE, FALSE, TRUE, TRUE };
+
+ *length = 4;
+ *bools = values;
+}
+
+/**
+ * gi_marshalling_tests_array_unichar_out:
+ * @chars: (out) (array length=length) (transfer none):
+ */
+void
+gi_marshalling_tests_array_unichar_out (gunichar **chars, gint *length)
+{
+ static const gunichar values[] = GI_MARSHALLING_TESTS_CONSTANT_UCS4;
+ *length = 12;
+ *chars = values;
+}
+
+/**
* gi_marshalling_tests_array_inout:
* @ints: (inout) (array length=length) (transfer none):
* @length: (inout):
@@ -1629,6 +1714,21 @@ gi_marshalling_tests_array_zero_terminated_return_struct (void)
}
/**
+ * gi_marshalling_tests_array_zero_terminated_return_unichar:
+ *
+ * Returns: (array zero-terminated) (transfer full):
+ */
+gunichar *
+gi_marshalling_tests_array_zero_terminated_return_unichar (void)
+{
+ static const gunichar value[] = GI_MARSHALLING_TESTS_CONSTANT_UCS4;
+ unsigned ix;
+ gunichar *retval = g_new0(gunichar, 13);
+ memcpy (retval, value, 12 * sizeof (gunichar));
+ return retval;
+}
+
+/**
* gi_marshalling_tests_array_zero_terminated_in:
* @utf8s: (array zero-terminated) (transfer none):
*/
@@ -2055,6 +2155,34 @@ gi_marshalling_tests_garray_utf8_full_inout (GArray **array_)
}
/**
+ * gi_marshalling_tests_garray_bool_none_in:
+ * @array_: (element-type gboolean) (transfer none):
+ */
+void
+gi_marshalling_tests_garray_bool_none_in (GArray *array_)
+{
+ g_assert_cmpint (array_->len, ==, 4);
+ g_assert_true (g_array_index (array_, gboolean, 0));
+ g_assert_false (g_array_index (array_, gboolean, 1));
+ g_assert_true (g_array_index (array_, gboolean, 2));
+ g_assert_true (g_array_index (array_, gboolean, 3));
+}
+
+/**
+ * gi_marshalling_tests_garray_unichar_none_in:
+ * @array_: (element-type gunichar) (transfer none):
+ */
+void
+gi_marshalling_tests_garray_unichar_none_in (GArray *array_)
+{
+ unsigned ix;
+ static const gunichar expected[] = GI_MARSHALLING_TESTS_CONSTANT_UCS4;
+ g_assert_cmpint (array_->len, ==, 12);
+ for (ix = 0; ix < array_->len; ix++)
+ g_assert_cmpuint (g_array_index (array_, gunichar, ix), ==, expected[ix]);
+}
+
+/**
* gi_marshalling_tests_gptrarray_utf8_none_return:
*
* Returns: (element-type utf8) (transfer none):