diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c3167c..c72c860 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,6 +150,13 @@ target_link_libraries(client ${_PROTOBUF_LIBPROTOBUF}) target_include_directories(client PUBLIC ${utils_srcs}) +# check for BENCHMARK +if(BENCHMARK_MACRO) +target_compile_definitions(shard_master PUBLIC BENCHMARK) +target_compile_definitions(volume_server PUBLIC BENCHMARK) +target_compile_definitions(client PUBLIC BENCHMARK) +endif(BENCHMARK_MACRO) + # tests if(BUILD_TESTS) file(GLOB TEST_SOURCES tests/*/*.cc) diff --git a/build.sh b/build.sh index 6676440..8ca0c10 100644 --- a/build.sh +++ b/build.sh @@ -13,6 +13,12 @@ if [[ $* == *T* ]]; then echo "* Build tests detected..." BUILD_TESTS="ON" fi +## flag "B" provided -> build with preprocessor macro BENCHMARK +BENCHMARK_MACRO="OFF" +if [[ $* == *B* ]]; then + echo "* BENCHMARK_MACRO detected..." + BENCHMARK_MACRO="ON" +fi echo "-------------" # Create build directory @@ -20,7 +26,7 @@ mkdir -p cmake/build pushd cmake/build # build -cmake -DCMAKE_PREFIX_PATH=$HOME/src/builds/gRPC -DLEVELDB_PREFIX=$HOME/src/builds/leveldb -DBUILD_TESTS=$BUILD_TESTS ../.. +cmake -DCMAKE_PREFIX_PATH=$HOME/src/builds/gRPC -DLEVELDB_PREFIX=$HOME/src/builds/leveldb -DBUILD_TESTS=$BUILD_TESTS -DBENCHMARK_MACRO=$BENCHMARK_MACRO ../.. make popd diff --git a/client/client.cc b/client/client.cc index 896a2e0..b75650f 100644 --- a/client/client.cc +++ b/client/client.cc @@ -200,8 +200,10 @@ int main(int argc, char* argv[]) { std::string shard_master_addr = (argc > 1) ? argv[1] : SHARD_MASTER_ADDR; Client client(grpc::CreateChannel(shard_master_addr, grpc::InsecureChannelCredentials())); - // simple non-exhaustive sanity check - +// simple non-exhaustive sanity check +#if BENCHMARK + std::cout << "* BENCHMARK detected" << std::endl; +#else // key not found std::cout << "Response:-\n" << client.Get("key1") << '\n' @@ -240,5 +242,7 @@ int main(int argc, char* argv[]) { << std::endl; std::cout << std::endl; +#endif + return 0; } diff --git a/server/shard_master/shard_master.h b/server/shard_master/shard_master.h index a4433f3..f58b80f 100644 --- a/server/shard_master/shard_master.h +++ b/server/shard_master/shard_master.h @@ -34,6 +34,10 @@ class ShardMaster final : public ShardMasterService::Service { // config this->config_num = 0; // INITIAL CONFIGURATION IS 0 this->sm_config.clear(); + +#ifdef BENCHMARK + std::cout << "* BENCHMARK detected" << std::endl; +#endif } ~ShardMaster() { delete this->db; } diff --git a/server/volume_server/volume_server.h b/server/volume_server/volume_server.h index 4d5a9ff..69a0d03 100644 --- a/server/volume_server/volume_server.h +++ b/server/volume_server/volume_server.h @@ -68,6 +68,10 @@ class VolumeServer final : public VolumeServerService::Service { std::thread([this]() -> void { this->moveKeys(); }).detach(); + +#ifdef BENCHMARK + std::cout << "* BENCHMARK detected" << std::endl; +#endif } ~VolumeServer() { delete this->db; }