From ccb64f301c9d4fda66ee1466a188281fbc5c9d93 Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Tue, 3 Aug 2021 14:35:04 +0100 Subject: [PATCH] tests: Bump alignment for test structures to 64 bytes Our core test structure is 36 bytes wide. Declaring it with a 32-bit alignment should thus stripe it to 64 bytes. For some reason, clang+lld lays them out with a 96-byte stride within the section (does it want an entire 32-bit word when building with ASan?), getting the code wildly confused when it tries to step through the structures. So we could fix all our tests to avoid the fragile section dance, or we could just waste another 4 bytes per test definition by bumping the alignment up to 64 bytes, which seems to do enough to magically accord with what clang+lld+ASan expect. Signed-off-by: Daniel Stone --- tests/ivi-layout-test-plugin.c | 2 +- tests/weston-test-runner.h | 2 +- tools/zunitc/inc/zunitc/zunitc_impl.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/ivi-layout-test-plugin.c b/tests/ivi-layout-test-plugin.c index 196e7f09..75ce1436 100644 --- a/tests/ivi-layout-test-plugin.c +++ b/tests/ivi-layout-test-plugin.c @@ -47,7 +47,7 @@ struct test_context; struct runner_test { const char *name; void (*run)(struct test_context *); -} __attribute__ ((aligned (32))); +} __attribute__ ((aligned (64))); #define RUNNER_TEST(name) \ static void runner_func_##name(struct test_context *); \ diff --git a/tests/weston-test-runner.h b/tests/weston-test-runner.h index 7f736ec9..58d2b7ee 100644 --- a/tests/weston-test-runner.h +++ b/tests/weston-test-runner.h @@ -55,7 +55,7 @@ struct weston_test_entry { const void *table_data; size_t element_size; int n_elements; -} __attribute__ ((aligned (32))); +} __attribute__ ((aligned (64))); #define TEST_BEGIN(name, arg) \ static void name(arg) diff --git a/tools/zunitc/inc/zunitc/zunitc_impl.h b/tools/zunitc/inc/zunitc/zunitc_impl.h index f0533689..0bb5acb4 100644 --- a/tools/zunitc/inc/zunitc/zunitc_impl.h +++ b/tools/zunitc/inc/zunitc/zunitc_impl.h @@ -77,7 +77,7 @@ struct zuc_registration { zucimpl_test_fn fn; /**< function implementing base test. */ zucimpl_test_fn_f fn_f; /**< function implementing test with fixture. */ -} __attribute__ ((aligned (32))); +} __attribute__ ((aligned (64))); int