diff --git a/Bench.cpp b/Bench.cpp index 65da971..220268d 100644 --- a/Bench.cpp +++ b/Bench.cpp @@ -7,7 +7,6 @@ void showMemory(const ConflictSet &cs); #endif -#define ANKERL_NANOBENCH_IMPLEMENT #include "third_party/nanobench.h" constexpr int kNumKeys = 1000000; diff --git a/CMakeLists.txt b/CMakeLists.txt index 03670de..9734709 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,6 +138,8 @@ include(CTest) # disable tests if this is being used through e.g. FetchContent if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING) + add_library(nanobench ${CMAKE_CURRENT_SOURCE_DIR}/nanobench.cpp) + set(TEST_FLAGS -Wall -Wextra -Wunreachable-code -Wpedantic -UNDEBUG) # corpus tests, which are tests curated by libfuzzer. The goal is to get broad @@ -185,6 +187,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING) target_include_directories(conflict_set_main PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) target_compile_definitions(conflict_set_main PRIVATE ENABLE_MAIN) + target_link_libraries(conflict_set_main PRIVATE nanobench) if(NOT APPLE) # libfuzzer target, to generate/manage corpus @@ -330,7 +333,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING) # bench add_executable(conflict_set_bench Bench.cpp) - target_link_libraries(conflict_set_bench PRIVATE ${PROJECT_NAME}) + target_link_libraries(conflict_set_bench PRIVATE ${PROJECT_NAME} nanobench) set_target_properties(conflict_set_bench PROPERTIES SKIP_BUILD_RPATH ON) add_executable(real_data_bench RealDataBench.cpp) target_link_libraries(real_data_bench PRIVATE ${PROJECT_NAME}) @@ -347,6 +350,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR AND BUILD_TESTING) set_target_properties(server_bench PROPERTIES SKIP_BUILD_RPATH ON) add_executable(interleaving_test InterleavingTest.cpp) + target_link_libraries(interleaving_test PRIVATE nanobench) endif() # packaging diff --git a/ConflictSet.cpp b/ConflictSet.cpp index 53ac960..495da63 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -3923,7 +3923,6 @@ struct __attribute__((visibility("default"))) PeakPrinter { #ifdef ENABLE_MAIN -#define ANKERL_NANOBENCH_IMPLEMENT #include "third_party/nanobench.h" template void benchRezero() { diff --git a/InterleavingTest.cpp b/InterleavingTest.cpp index cfd4d27..2acf76a 100644 --- a/InterleavingTest.cpp +++ b/InterleavingTest.cpp @@ -4,7 +4,6 @@ #include #endif -#define ANKERL_NANOBENCH_IMPLEMENT #include "third_party/nanobench.h" struct Job { diff --git a/nanobench.cpp b/nanobench.cpp new file mode 100644 index 0000000..3280148 --- /dev/null +++ b/nanobench.cpp @@ -0,0 +1,2 @@ +#define ANKERL_NANOBENCH_IMPLEMENT +#include "third_party/nanobench.h"