From d78022470cf786cc12baa4ce8ebf668e64314ef1 Mon Sep 17 00:00:00 2001 From: Teon Banek <teon.banek@memgraph.io> Date: Thu, 27 Sep 2018 15:11:50 +0200 Subject: [PATCH] Explicitly list all test files in CMakeLists Reviewers: mferencevic Reviewed By: mferencevic Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1619 --- tests/benchmark/CMakeLists.txt | 78 +++++++++++++++-------- tests/concurrent/CMakeLists.txt | 95 +++++++++++++++++++++------- tests/macro_benchmark/CMakeLists.txt | 50 +++++++-------- tests/property_based/CMakeLists.txt | 28 +++----- tests/stress/CMakeLists.txt | 47 +++++--------- 5 files changed, 170 insertions(+), 128 deletions(-) diff --git a/tests/benchmark/CMakeLists.txt b/tests/benchmark/CMakeLists.txt index 112fb142c..e474ffd7c 100644 --- a/tests/benchmark/CMakeLists.txt +++ b/tests/benchmark/CMakeLists.txt @@ -1,37 +1,61 @@ -include_directories(${BENCHMARK_INCLUDE_DIR}) +set(test_prefix memgraph__benchmark__) -# set current directory name as a test type -get_filename_component(test_type ${CMAKE_CURRENT_SOURCE_DIR} NAME) +add_custom_target(memgraph__benchmark) -# get all cpp abs file names recursively starting from current directory -file(GLOB_RECURSE test_type_cpps *.cpp) -message(STATUS "Available ${test_type} cpp files are: ${test_type_cpps}") +function(add_benchmark test_cpp) + # get exec name (remove extension from the abs path) + get_filename_component(exec_name ${test_cpp} NAME_WE) + set(target_name ${test_prefix}${exec_name}) + add_executable(${target_name} ${test_cpp}) + # OUTPUT_NAME sets the real name of a target when it is built and can be + # used to help create two targets of the same name even though CMake + # requires unique logical target names + set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) + target_link_libraries(${target_name} benchmark) + target_include_directories(${target_name} PRIVATE ${BENCHMARK_INCLUDE_DIR}) + # register test + set(output_path + ${CMAKE_BINARY_DIR}/test_results/benchmark/${target_name}.json) + add_test(${target_name} ${exec_name} + --benchmark_out_format=json --benchmark_out=${output_path}) + add_dependencies(memgraph__benchmark ${target_name}) +endfunction(add_benchmark) -# for each cpp file build binary and register test -foreach(test_cpp ${test_type_cpps}) +add_benchmark(data_structures/concurrent/map_mix_concurrent.cpp) +target_link_libraries(${test_prefix}map_mix_concurrent memgraph_lib kvstore_dummy_lib) - # get exec name (remove extension from the abs path) - get_filename_component(exec_name ${test_cpp} NAME_WE) +add_benchmark(data_structures/concurrent/skiplist_insert.cpp) +target_link_libraries(${test_prefix}skiplist_insert memgraph_lib kvstore_dummy_lib) - set(target_name memgraph__${test_type}__${exec_name}) +add_benchmark(data_structures/concurrent/skiplist_reverse_iteration.cpp) +target_link_libraries(${test_prefix}skiplist_reverse_iteration memgraph_lib kvstore_dummy_lib) - # build exec file - add_executable(${target_name} ${test_cpp}) +add_benchmark(data_structures/concurrent/map_concurrent.cpp) +target_link_libraries(${test_prefix}map_concurrent memgraph_lib kvstore_dummy_lib) - # OUTPUT_NAME sets the real name of a target when it is built and can be - # used to help create two targets of the same name even though CMake - # requires unique logical target names - set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) +add_benchmark(data_structures/ring_buffer.cpp) +target_link_libraries(${test_prefix}ring_buffer memgraph_lib kvstore_dummy_lib) - # Regular link of libraries we depend on. - target_link_libraries(${target_name} benchmark memgraph_lib) - # Link the appropriate kvstore library for required components. - target_link_libraries(${target_name} kvstore_dummy_lib) +add_benchmark(query/eval.cpp) +target_link_libraries(${test_prefix}eval memgraph_lib kvstore_dummy_lib) - # register test - set(output_path - ${CMAKE_BINARY_DIR}/test_results/benchmark/${target_name}.json) - add_test(${target_name} ${exec_name} - --benchmark_out_format=json --benchmark_out=${output_path}) +add_benchmark(query/planner.cpp) +target_link_libraries(${test_prefix}planner memgraph_lib kvstore_dummy_lib) -endforeach() +add_benchmark(query/stripped.cpp) +target_link_libraries(${test_prefix}stripped memgraph_lib kvstore_dummy_lib) + +add_benchmark(edge_storage.cpp) +target_link_libraries(${test_prefix}edge_storage memgraph_lib kvstore_dummy_lib) + +add_benchmark(mvcc.cpp) +target_link_libraries(${test_prefix}mvcc memgraph_lib kvstore_dummy_lib) + +add_benchmark(serialization.cpp) +target_link_libraries(${test_prefix}serialization memgraph_lib kvstore_dummy_lib) + +add_benchmark(tx_engine.cpp) +target_link_libraries(${test_prefix}tx_engine memgraph_lib kvstore_dummy_lib) + +add_benchmark(expansion.cpp) +target_link_libraries(${test_prefix}expansion memgraph_lib kvstore_dummy_lib) diff --git a/tests/concurrent/CMakeLists.txt b/tests/concurrent/CMakeLists.txt index 967328730..ec421afac 100644 --- a/tests/concurrent/CMakeLists.txt +++ b/tests/concurrent/CMakeLists.txt @@ -1,32 +1,81 @@ -# set current directory name as a test type -get_filename_component(test_type ${CMAKE_CURRENT_SOURCE_DIR} NAME) +set(test_prefix memgraph__concurrent__) -# get all cpp abs file names recursively starting from current directory -file(GLOB_RECURSE test_type_cpps *.cpp) -message(STATUS "Available ${test_type} cpp files are: ${test_type_cpps}") +add_custom_target(memgraph__concurrent) -# for each cpp file build binary and register test -foreach(test_cpp ${test_type_cpps}) +function(add_concurrent_test test_cpp) + # get exec name (remove extension from the abs path) + get_filename_component(exec_name ${test_cpp} NAME_WE) + set(target_name ${test_prefix}${exec_name}) + add_executable(${target_name} ${test_cpp}) + # OUTPUT_NAME sets the real name of a target when it is built and can be + # used to help create two targets of the same name even though CMake + # requires unique logical target names + set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) + target_link_libraries(${target_name} gtest gmock gtest_main) + # register test + add_test(${target_name} ${exec_name}) + add_dependencies(memgraph__concurrent ${target_name}) +endfunction(add_concurrent_test) - # get exec name (remove extension from the abs path) - get_filename_component(exec_name ${test_cpp} NAME_WE) +add_concurrent_test(dynamic_bitset_clear_n.cpp) +target_link_libraries(${test_prefix}dynamic_bitset_clear_n memgraph_lib kvstore_dummy_lib) - set(target_name memgraph__${test_type}__${exec_name}) +add_concurrent_test(dynamic_bitset.cpp) +target_link_libraries(${test_prefix}dynamic_bitset memgraph_lib kvstore_dummy_lib) - # build exec file - add_executable(${target_name} ${test_cpp}) +add_concurrent_test(dynamic_bitset_set.cpp) +target_link_libraries(${test_prefix}dynamic_bitset_set memgraph_lib kvstore_dummy_lib) - # OUTPUT_NAME sets the real name of a target when it is built and can be - # used to help create two targets of the same name even though CMake - # requires unique logical target names - set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) +add_concurrent_test(dynamic_bitset_set_n.cpp) +target_link_libraries(${test_prefix}dynamic_bitset_set_n memgraph_lib kvstore_dummy_lib) - # Regular link of libraries we depend on. - target_link_libraries(${target_name} gtest gmock gtest_main memgraph_lib) - # Link the appropriate kvstore library for required components. - target_link_libraries(${target_name} kvstore_dummy_lib) +add_concurrent_test(futex.cpp) +target_link_libraries(${test_prefix}futex memgraph_lib kvstore_dummy_lib) - # register test - add_test(${target_name} ${exec_name}) +add_concurrent_test(network_read_hang.cpp) +target_link_libraries(${test_prefix}network_read_hang memgraph_lib kvstore_dummy_lib) -endforeach() +add_concurrent_test(network_server.cpp) +target_link_libraries(${test_prefix}network_server memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(network_session_leak.cpp) +target_link_libraries(${test_prefix}network_session_leak memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(push_queue.cpp) +target_link_libraries(${test_prefix}push_queue memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_hang.cpp) +target_link_libraries(${test_prefix}sl_hang memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_insert_competetive.cpp) +target_link_libraries(${test_prefix}sl_insert_competetive memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_insert.cpp) +target_link_libraries(${test_prefix}sl_insert memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_map.cpp) +target_link_libraries(${test_prefix}sl_map memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_memory.cpp) +target_link_libraries(${test_prefix}sl_memory memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_memory_leak.cpp) +target_link_libraries(${test_prefix}sl_memory_leak memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_remove_competetive.cpp) +target_link_libraries(${test_prefix}sl_remove_competetive memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_remove_disjoint.cpp) +target_link_libraries(${test_prefix}sl_remove_disjoint memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_remove_joint.cpp) +target_link_libraries(${test_prefix}sl_remove_joint memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_set.cpp) +target_link_libraries(${test_prefix}sl_set memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(sl_simulation.cpp) +target_link_libraries(${test_prefix}sl_simulation memgraph_lib kvstore_dummy_lib) + +add_concurrent_test(spinlock.cpp) +target_link_libraries(${test_prefix}spinlock memgraph_lib kvstore_dummy_lib) diff --git a/tests/macro_benchmark/CMakeLists.txt b/tests/macro_benchmark/CMakeLists.txt index b6c0fb076..94b7c9fc1 100644 --- a/tests/macro_benchmark/CMakeLists.txt +++ b/tests/macro_benchmark/CMakeLists.txt @@ -1,34 +1,30 @@ -# set current directory name as a test type -get_filename_component(test_type ${CMAKE_CURRENT_SOURCE_DIR} NAME) +set(test_prefix memgraph__macro_benchmark__) -# get all cpp abs file names recursively starting from current directory -file(GLOB_RECURSE test_type_cpps *.cpp) -message(STATUS "Available ${test_type} cpp files are: ${test_type_cpps}") +add_custom_target(memgraph__macro_benchmark) -# add target that depends on all other targets -set(all_targets_target memgraph__${test_type}) -add_custom_target(${all_targets_target}) +function(add_macro_benchmark test_cpp) + # get exec name (remove extension from the abs path) + get_filename_component(exec_name ${test_cpp} NAME_WE) + set(target_name ${test_prefix}${exec_name}) + add_executable(${target_name} ${test_cpp}) + # OUTPUT_NAME sets the real name of a target when it is built and can be + # used to help create two targets of the same name even though CMake + # requires unique logical target names + set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) + add_dependencies(memgraph__macro_benchmark ${target_name}) +endfunction(add_macro_benchmark) -# for each cpp file build binary and register test -foreach(test_cpp ${test_type_cpps}) +add_macro_benchmark(clients/pokec_client.cpp) +target_link_libraries(${test_prefix}pokec_client memgraph_lib kvstore_dummy_lib) - # get exec name (remove extension from the abs path) - get_filename_component(exec_name ${test_cpp} NAME_WE) +add_macro_benchmark(clients/graph_500_bfs.cpp) +target_link_libraries(${test_prefix}graph_500_bfs memgraph_lib kvstore_dummy_lib) - set(target_name memgraph__${test_type}__${exec_name}) +add_macro_benchmark(clients/bfs_pokec_client.cpp) +target_link_libraries(${test_prefix}bfs_pokec_client memgraph_lib kvstore_dummy_lib) - # build exec file - add_executable(${target_name} ${test_cpp}) +add_macro_benchmark(clients/query_client.cpp) +target_link_libraries(${test_prefix}query_client memgraph_lib kvstore_dummy_lib) - # OUTPUT_NAME sets the real name of a target when it is built and can be - # used to help create two targets of the same name even though CMake - # requires unique logical target names - set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) - - # link libraries - target_link_libraries(${target_name} memgraph_lib kvstore_dummy_lib) - - # add target to dependencies - add_dependencies(${all_targets_target} ${target_name}) - -endforeach() +add_macro_benchmark(clients/card_fraud_client.cpp) +target_link_libraries(${test_prefix}card_fraud_client memgraph_lib kvstore_dummy_lib) diff --git a/tests/property_based/CMakeLists.txt b/tests/property_based/CMakeLists.txt index 0f18d0f55..3f57e02ac 100644 --- a/tests/property_based/CMakeLists.txt +++ b/tests/property_based/CMakeLists.txt @@ -1,34 +1,22 @@ -# set current directory name as a test type -get_filename_component(test_type ${CMAKE_CURRENT_SOURCE_DIR} NAME) +set(test_prefix memgraph__property_based__) -# get all cpp abs file names recursively starting from current directory -file(GLOB_RECURSE test_type_cpps *.cpp) -message(STATUS "Available ${test_type} cpp files are: ${test_type_cpps}") - -# for each cpp file build binary and register test -foreach(test_cpp ${test_type_cpps}) +add_custom_target(memgraph__property_based) +function(add_property_based_test test_cpp) # get exec name (remove extension from the abs path) get_filename_component(exec_name ${test_cpp} NAME_WE) - - set(target_name memgraph__${test_type}__${exec_name}) - - # build exec file + set(target_name ${test_prefix}${exec_name}) add_executable(${target_name} ${test_cpp}) - # OUTPUT_NAME sets the real name of a target when it is built and can be # used to help create two targets of the same name even though CMake # requires unique logical target names set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) - - # link libraries - target_link_libraries(${target_name} memgraph_lib kvstore_dummy_lib) - # gtest target_link_libraries(${target_name} gtest gtest_main) target_link_libraries(${target_name} rapidcheck rapidcheck_gtest) - - # register test set(output_path ${CMAKE_BINARY_DIR}/test_results/unit/${target_name}.xml) add_test(${target_name} ${exec_name} --gtest_output=xml:${output_path}) + add_dependencies(memgraph__property_based ${target_name}) +endfunction(add_property_based_test) -endforeach() +add_property_based_test(random_graph.cpp) +target_link_libraries(${test_prefix}random_graph memgraph_lib kvstore_dummy_lib) diff --git a/tests/stress/CMakeLists.txt b/tests/stress/CMakeLists.txt index b6c0fb076..e06d15b29 100644 --- a/tests/stress/CMakeLists.txt +++ b/tests/stress/CMakeLists.txt @@ -1,34 +1,19 @@ -# set current directory name as a test type -get_filename_component(test_type ${CMAKE_CURRENT_SOURCE_DIR} NAME) +set(test_prefix memgraph__stress__) -# get all cpp abs file names recursively starting from current directory -file(GLOB_RECURSE test_type_cpps *.cpp) -message(STATUS "Available ${test_type} cpp files are: ${test_type_cpps}") +add_custom_target(memgraph__stress) -# add target that depends on all other targets -set(all_targets_target memgraph__${test_type}) -add_custom_target(${all_targets_target}) +function(add_stress_test test_cpp) + # get exec name (remove extension from the abs path) + get_filename_component(exec_name ${test_cpp} NAME_WE) + set(target_name ${test_prefix}${exec_name}) + add_executable(${target_name} ${test_cpp}) + # OUTPUT_NAME sets the real name of a target when it is built and can be + # used to help create two targets of the same name even though CMake + # requires unique logical target names + set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) + # add target to dependencies + add_dependencies(memgraph__stress ${target_name}) +endfunction(add_stress_test) -# for each cpp file build binary and register test -foreach(test_cpp ${test_type_cpps}) - - # get exec name (remove extension from the abs path) - get_filename_component(exec_name ${test_cpp} NAME_WE) - - set(target_name memgraph__${test_type}__${exec_name}) - - # build exec file - add_executable(${target_name} ${test_cpp}) - - # OUTPUT_NAME sets the real name of a target when it is built and can be - # used to help create two targets of the same name even though CMake - # requires unique logical target names - set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${exec_name}) - - # link libraries - target_link_libraries(${target_name} memgraph_lib kvstore_dummy_lib) - - # add target to dependencies - add_dependencies(${all_targets_target} ${target_name}) - -endforeach() +add_stress_test(long_running.cpp) +target_link_libraries(${test_prefix}long_running memgraph_lib kvstore_dummy_lib)