From bdb141aeef1639ba78fe9ffc3392dbae69d35623 Mon Sep 17 00:00:00 2001 From: mio Date: Sun, 14 Aug 2022 15:42:37 +0200 Subject: [PATCH] Disable unaligned access test on ppc and aarch64 The memoy read operations on these architectures are inlined e.g. ldur on aarch64 --- CMakeLists.txt | 3 +++ tests/unit/test_x86.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9574be94..62504489 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1412,6 +1412,9 @@ if(UNICORN_BUILD_TESTS) file(APPEND ${CMAKE_BINARY_DIR}/adb.sh "adb shell \"chmod +x /data/local/tmp/build/${TEST_FILE}\"\n") file(APPEND ${CMAKE_BINARY_DIR}/adb.sh "adb shell \'LD_LIBRARY_PATH=/data/local/tmp/build:$LD_LIBRARY_PATH /data/local/tmp/build/${TEST_FILE}\' || exit -1\n") endif() + if (UNICORN_TARGET_ARCH STREQUAL "aarch64" OR UNICORN_TARGET_ARCH STREQUAL "ppc") + target_compile_definitions(${TEST_FILE} PRIVATE TARGET_READ_INLINED) + endif() endforeach() endif() diff --git a/tests/unit/test_x86.c b/tests/unit/test_x86.c index 75fe1a8f..ba37e638 100644 --- a/tests/unit/test_x86.c +++ b/tests/unit/test_x86.c @@ -1126,6 +1126,7 @@ static void test_x86_invalid_vex_l(void) OK(uc_close(uc)); } +#ifndef TARGET_READ_INLINED struct writelog_t { uint32_t addr, size; }; @@ -1188,6 +1189,7 @@ static void test_x86_unaligned_access(void) OK(uc_close(uc)); } +#endif static bool test_x86_lazy_mapping_mem_callback(uc_engine *uc, uc_mem_type type, uint64_t address, int size, int64_t value, void *user_data) @@ -1259,6 +1261,8 @@ TEST_LIST = { {"test_x86_correct_address_in_long_jump_hook", test_x86_correct_address_in_long_jump_hook}, {"test_x86_invalid_vex_l", test_x86_invalid_vex_l}, +#ifndef TARGET_READ_INLINED {"test_x86_unaligned_access", test_x86_unaligned_access}, +#endif {"test_x86_lazy_mapping", test_x86_lazy_mapping}, {NULL, NULL}};