diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7b89364a..bc0d3cc9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 2.8) project(vitastor) include(GNUInstallDirs) +include(CTest) set(WITH_QEMU false CACHE BOOL "Build QEMU driver inside Vitastor source tree") set(WITH_FIO true CACHE BOOL "Build FIO driver") @@ -55,6 +56,14 @@ if (ISAL_LIBRARIES) add_definitions(-DWITH_ISAL) endif (ISAL_LIBRARIES) +add_custom_target(build_tests) +add_custom_target(test + COMMAND + echo leak:tcmalloc > ${CMAKE_CURRENT_BINARY_DIR}/lsan-suppress.txt && + env LSAN_OPTIONS=suppressions=${CMAKE_CURRENT_BINARY_DIR}/lsan-suppress.txt ${CMAKE_CTEST_COMMAND} +) +add_dependencies(test build_tests) + include_directories( ../ /usr/include/jerasure @@ -234,14 +243,17 @@ add_executable(osd_test osd_test.cpp rw_blocking.cpp addr_util.cpp) target_link_libraries(osd_test tcmalloc_minimal) # osd_rmw_test -# FIXME: Move to tests -add_executable(osd_rmw_test osd_rmw_test.cpp allocator.cpp) +add_executable(osd_rmw_test EXCLUDE_FROM_ALL osd_rmw_test.cpp allocator.cpp) target_link_libraries(osd_rmw_test Jerasure ${ISAL_LIBRARIES} tcmalloc_minimal) +add_dependencies(build_tests osd_rmw_test) +add_test(NAME osd_rmw_test COMMAND osd_rmw_test) if (ISAL_LIBRARIES) - add_executable(osd_rmw_test_je osd_rmw_test.cpp allocator.cpp) + add_executable(osd_rmw_test_je EXCLUDE_FROM_ALL osd_rmw_test.cpp allocator.cpp) target_compile_definitions(osd_rmw_test_je PUBLIC -DNO_ISAL) target_link_libraries(osd_rmw_test_je Jerasure tcmalloc_minimal) + add_dependencies(build_tests osd_rmw_test_je) + add_test(NAME osd_rmw_test_jerasure COMMAND osd_rmw_test_je) endif (ISAL_LIBRARIES) # stub_uring_osd @@ -256,11 +268,15 @@ target_link_libraries(stub_uring_osd ) # osd_peering_pg_test -add_executable(osd_peering_pg_test osd_peering_pg_test.cpp osd_peering_pg.cpp) +add_executable(osd_peering_pg_test EXCLUDE_FROM_ALL osd_peering_pg_test.cpp osd_peering_pg.cpp) target_link_libraries(osd_peering_pg_test tcmalloc_minimal) +add_dependencies(build_tests osd_peering_pg_test) +add_test(NAME osd_peering_pg_test COMMAND osd_peering_pg_test) # test_allocator -add_executable(test_allocator test_allocator.cpp allocator.cpp) +add_executable(test_allocator EXCLUDE_FROM_ALL test_allocator.cpp allocator.cpp) +add_dependencies(build_tests test_allocator) +add_test(NAME test_allocator COMMAND test_allocator) # test_cas add_executable(test_cas @@ -280,12 +296,15 @@ target_link_libraries(test_crc32 # test_cluster_client add_executable(test_cluster_client + EXCLUDE_FROM_ALL test_cluster_client.cpp pg_states.cpp osd_ops.cpp cluster_client.cpp cluster_client_list.cpp msgr_op.cpp mock/messenger.cpp msgr_stop.cpp etcd_state_client.cpp timerfd_manager.cpp ../json11/json11.cpp ) target_compile_definitions(test_cluster_client PUBLIC -D__MOCK__) target_include_directories(test_cluster_client PUBLIC ${CMAKE_SOURCE_DIR}/src/mock) +add_dependencies(build_tests test_cluster_client) +add_test(NAME test_cluster_client COMMAND test_cluster_client) ## test_blockstore, test_shit #add_executable(test_blockstore test_blockstore.cpp) diff --git a/src/osd_peering_pg_test.cpp b/src/osd_peering_pg_test.cpp index 07fc6c06..8baba3b2 100644 --- a/src/osd_peering_pg_test.cpp +++ b/src/osd_peering_pg_test.cpp @@ -54,5 +54,6 @@ int main(int argc, char *argv[]) { printf("dev: state=%lx\n", it.second.state); } + delete pg.peering_state; return 0; } diff --git a/src/osd_rmw_test.cpp b/src/osd_rmw_test.cpp index bc0b0043..4cc57bf8 100644 --- a/src/osd_rmw_test.cpp +++ b/src/osd_rmw_test.cpp @@ -881,7 +881,7 @@ void test15() // Done free(rmw_buf); free(write_buf); - use_ec(3, 2, false); + use_ec(4, 2, false); } /*** @@ -984,5 +984,5 @@ void test16() // Done free(rmw_buf); free(write_buf); - use_ec(3, 2, false); + use_ec(4, 2, false); }