From 99f56c0696b5e2ca9fd1c967d5bbe0b4848c7d69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Thu, 6 Apr 2023 18:02:39 +0200 Subject: tests/gimarshallingtests: Add a test case for zero-terminated GValue arrays Required to test how gjs handles this case. --- tests/gimarshallingtests.c | 22 ++++++++++++++++++++++ tests/gimarshallingtests.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/tests/gimarshallingtests.c b/tests/gimarshallingtests.c index 94ccc0b1..6adc978e 100644 --- a/tests/gimarshallingtests.c +++ b/tests/gimarshallingtests.c @@ -3593,6 +3593,28 @@ gi_marshalling_tests_return_gvalue_flat_array (void) return array; } +/** + * gi_marshalling_tests_return_gvalue_zero_terminated_array: + * + * Returns: (array zero-terminated) (transfer full): a flat GValue array + */ +GValue * +gi_marshalling_tests_return_gvalue_zero_terminated_array (void) +{ + GValue *array = g_new0 (GValue, 4); + + g_value_init (&array[0], G_TYPE_INT); + g_value_set_int (&array[0], 42); + + g_value_init (&array[1], G_TYPE_STRING); + g_value_set_static_string (&array[1], "42"); + + g_value_init (&array[2], G_TYPE_BOOLEAN); + g_value_set_boolean (&array[2], TRUE); + + return array; +} + /** * gi_marshalling_tests_gvalue_round_trip: * @value: The first GValue diff --git a/tests/gimarshallingtests.h b/tests/gimarshallingtests.h index 5d0656d7..28245629 100644 --- a/tests/gimarshallingtests.h +++ b/tests/gimarshallingtests.h @@ -1152,6 +1152,8 @@ void gi_marshalling_tests_gvalue_flat_array (guint n_values, _GI_TEST_EXTERN GValue *gi_marshalling_tests_return_gvalue_flat_array (void); +_GI_TEST_EXTERN +GValue *gi_marshalling_tests_return_gvalue_zero_terminated_array (void); _GI_TEST_EXTERN GValue *gi_marshalling_tests_gvalue_round_trip (GValue *value); -- cgit v1.2.1