Commit 9eed22b3 authored by Mart Raudsepp's avatar Mart Raudsepp

tests: Allocate gvariant data from the heap to guarantee alignment

On glib-2-58 branch we don't have !455, thus we need aligned data
for the gvariant tests to not fail on i686.

Fixes #1626
parent 97bcbcb8
...@@ -4770,6 +4770,7 @@ test_stack_dict_init (void) ...@@ -4770,6 +4770,7 @@ test_stack_dict_init (void)
static void static void
test_normal_checking_tuples (void) test_normal_checking_tuples (void)
{ {
gpointer aligned_data;
const guint8 data[] = { const guint8 data[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
'a', '(', 'a', 'o', 'a', 'o', 'a', 'a', 'o', 'a', 'a', 'o', ')' 'a', '(', 'a', 'o', 'a', 'o', 'a', 'a', 'o', 'a', 'a', 'o', ')'
...@@ -4778,13 +4779,15 @@ test_normal_checking_tuples (void) ...@@ -4778,13 +4779,15 @@ test_normal_checking_tuples (void)
GVariant *variant = NULL; GVariant *variant = NULL;
GVariant *normal_variant = NULL; GVariant *normal_variant = NULL;
variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size, aligned_data = g_memdup (data, size); /* guarantee alignment */
variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size,
FALSE, NULL, NULL); FALSE, NULL, NULL);
g_assert_nonnull (variant); g_assert_nonnull (variant);
normal_variant = g_variant_get_normal_form (variant); normal_variant = g_variant_get_normal_form (variant);
g_assert_nonnull (normal_variant); g_assert_nonnull (normal_variant);
g_free (aligned_data);
g_variant_unref (normal_variant); g_variant_unref (normal_variant);
g_variant_unref (variant); g_variant_unref (variant);
} }
...@@ -4896,6 +4899,7 @@ test_recursion_limits_array_in_variant (void) ...@@ -4896,6 +4899,7 @@ test_recursion_limits_array_in_variant (void)
static void static void
test_normal_checking_array_offsets (void) test_normal_checking_array_offsets (void)
{ {
gpointer aligned_data;
const guint8 data[] = { const guint8 data[] = {
0x07, 0xe5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x07, 0xe5, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'g', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'g',
...@@ -4904,13 +4908,15 @@ test_normal_checking_array_offsets (void) ...@@ -4904,13 +4908,15 @@ test_normal_checking_array_offsets (void)
GVariant *variant = NULL; GVariant *variant = NULL;
GVariant *normal_variant = NULL; GVariant *normal_variant = NULL;
variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size, aligned_data = g_memdup (data, size); /* guarantee alignment */
variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size,
FALSE, NULL, NULL); FALSE, NULL, NULL);
g_assert_nonnull (variant); g_assert_nonnull (variant);
normal_variant = g_variant_get_normal_form (variant); normal_variant = g_variant_get_normal_form (variant);
g_assert_nonnull (normal_variant); g_assert_nonnull (normal_variant);
g_free (aligned_data);
g_variant_unref (normal_variant); g_variant_unref (normal_variant);
g_variant_unref (variant); g_variant_unref (variant);
} }
...@@ -4944,6 +4950,7 @@ test_normal_checking_tuple_offsets (void) ...@@ -4944,6 +4950,7 @@ test_normal_checking_tuple_offsets (void)
static void static void
test_normal_checking_empty_object_path (void) test_normal_checking_empty_object_path (void)
{ {
gpointer aligned_data;
const guint8 data[] = { const guint8 data[] = {
0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00,
'(', 'h', '(', 'a', 'i', 'a', 'b', 'i', 'o', ')', ')', '(', 'h', '(', 'a', 'i', 'a', 'b', 'i', 'o', ')', ')',
...@@ -4952,13 +4959,15 @@ test_normal_checking_empty_object_path (void) ...@@ -4952,13 +4959,15 @@ test_normal_checking_empty_object_path (void)
GVariant *variant = NULL; GVariant *variant = NULL;
GVariant *normal_variant = NULL; GVariant *normal_variant = NULL;
variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, data, size, aligned_data = g_memdup (data, size); /* guarantee alignment */
variant = g_variant_new_from_data (G_VARIANT_TYPE_VARIANT, aligned_data, size,
FALSE, NULL, NULL); FALSE, NULL, NULL);
g_assert_nonnull (variant); g_assert_nonnull (variant);
normal_variant = g_variant_get_normal_form (variant); normal_variant = g_variant_get_normal_form (variant);
g_assert_nonnull (normal_variant); g_assert_nonnull (normal_variant);
g_free (aligned_data);
g_variant_unref (normal_variant); g_variant_unref (normal_variant);
g_variant_unref (variant); g_variant_unref (variant);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment