diff --git a/CMakeLists.txt b/CMakeLists.txt index 440a8bab..a73b2bd6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -712,15 +712,32 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/mimalloc.pc" if (MI_BUILD_TESTS) enable_testing() - foreach(TEST_NAME api api-fill stress) - add_executable(mimalloc-test-${TEST_NAME} test/test-${TEST_NAME}.c) - target_compile_definitions(mimalloc-test-${TEST_NAME} PRIVATE ${mi_defines}) - target_compile_options(mimalloc-test-${TEST_NAME} PRIVATE ${mi_cflags}) - target_include_directories(mimalloc-test-${TEST_NAME} PRIVATE include) - target_link_libraries(mimalloc-test-${TEST_NAME} PRIVATE mimalloc ${mi_libraries}) + # static link tests + if(MI_BUILD_STATIC) + foreach(TEST_NAME api api-fill stress) + add_executable(mimalloc-test-${TEST_NAME} test/test-${TEST_NAME}.c) + target_compile_definitions(mimalloc-test-${TEST_NAME} PRIVATE ${mi_defines}) + target_compile_options(mimalloc-test-${TEST_NAME} PRIVATE ${mi_cflags}) + target_include_directories(mimalloc-test-${TEST_NAME} PRIVATE include) + target_link_libraries(mimalloc-test-${TEST_NAME} PRIVATE mimalloc-static ${mi_libraries}) - add_test(NAME test-${TEST_NAME} COMMAND mimalloc-test-${TEST_NAME}) - endforeach() + add_test(NAME test-${TEST_NAME} COMMAND mimalloc-test-${TEST_NAME}) + endforeach() + endif() + + # dynamic override test + if(MI_BUILD_SHARED AND NOT WIN32) + add_executable(mimalloc-test-stress-dynamic test/test-stress.c) + target_compile_definitions(mimalloc-test-stress-dynamic PRIVATE ${mi_defines} "USE_STD_MALLOC=1") + target_compile_options(mimalloc-test-stress-dynamic PRIVATE ${mi_cflags}) + target_include_directories(mimalloc-test-stress-dynamic PRIVATE include) + if(APPLE) + set(LD_PRELOAD "DYLD_INSERT_LIBRARIES") + else() + set(LD_PRELOAD "LD_PRELOAD") + endif() + add_test(NAME test-stress-dynamic COMMAND ${CMAKE_COMMAND} -E env MIMALLOC_SHOW_STATS=1 ${LD_PRELOAD}=$ $) + endif() endif() # ----------------------------------------------------------------------------- diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5393035e..fc00dc8c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -89,6 +89,11 @@ jobs: CXX: clang++ BuildType: release-clang cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release + Release SIMD Clang: + CC: clang + CXX: clang++ + BuildType: release-simd-clang + cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release -DMI_OPT_SIMD=ON Secure Clang: CC: clang CXX: clang++ @@ -148,6 +153,9 @@ jobs: Release: BuildType: release cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release + Release SIMD: + BuildType: release-simd + cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release -DMI_OPT_SIMD=ON Secure: BuildType: secure cmakeExtraArgs: -DCMAKE_BUILD_TYPE=Release -DMI_SECURE=ON diff --git a/test/test-stress.c b/test/test-stress.c index 303d9f42..6fbd8d0e 100644 --- a/test/test-stress.c +++ b/test/test-stress.c @@ -354,8 +354,8 @@ int main(int argc, char** argv) { mi_debug_show_arenas(); mi_collect(true); #endif -#endif mi_stats_print(NULL); +#endif //bench_end_program(); return 0; }