From d7a6e803984e5508c30aa9e3625c76460beb807b Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Tue, 12 Sep 2023 16:42:13 +0200 Subject: tests: Improve RTEMS_DEFINE_GLOBAL_SYMBOL() tests Use a symbol value relative to an existing symbol address to make the test work on more code models. Update #4953. --- testsuites/sptests/spmisc01/init.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'testsuites/sptests') diff --git a/testsuites/sptests/spmisc01/init.c b/testsuites/sptests/spmisc01/init.c index 62b2f69dbc..8c46245af9 100644 --- a/testsuites/sptests/spmisc01/init.c +++ b/testsuites/sptests/spmisc01/init.c @@ -122,9 +122,14 @@ static int obfuscate_variable(int i) return i; } +static int global_symbol_base; + RTEMS_DECLARE_GLOBAL_SYMBOL(a_global_symbol); -RTEMS_DEFINE_GLOBAL_SYMBOL(a_global_symbol, 0xabc); +RTEMS_DEFINE_GLOBAL_SYMBOL( + a_global_symbol, + RTEMS_SYMBOL_NAME(global_symbol_base) + 0xabc +); RTEMS_STATIC_ASSERT(0 != 1, zero_neq_one); @@ -243,7 +248,9 @@ static void Init(rtems_task_argument arg) unreachable(); rtems_test_assert(printflike_func("%i", 0) == 56); rtems_test_assert(obfuscate_variable(63) == 63); - rtems_test_assert((uintptr_t)a_global_symbol == 0xabc); + rtems_test_assert( + (uintptr_t) a_global_symbol - (uintptr_t) &global_symbol_base == 0xabc + ); rtems_test_assert(RTEMS_ARRAY_SIZE(array) == 3); rtems_test_assert(sizeof(zero_length_array_struct) == 4); container_of(); -- cgit v1.2.3