Skip to content

Commit 247552d

Browse files
committed
[tests] simplify test infrastructure
Instead of generating multiple gtest executables, we generate only one test executable, and one output file
1 parent a24e3b1 commit 247552d

File tree

13 files changed

+79
-124
lines changed

13 files changed

+79
-124
lines changed

tests/CMakeLists.txt

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
set(HT_TEST_DIR ${CMAKE_CURRENT_BINARY_DIR})
2+
13
set(GTEST_BIN_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest")
24

35
include(ExternalProject)
@@ -32,19 +34,11 @@ set_target_properties(${GTEST_LIBRARY} PROPERTIES
3234
IMPORTED_LOCATION ${GTEST_LIBRARY_PATH})
3335
add_dependencies(${GTEST_LIBRARY} googletest)
3436

35-
function(DEFINE_HT_TEST)
36-
set(MULTI_PARAM SOURCES LINK_LIBS RUN_PARAMS)
37-
cmake_parse_arguments(ht "" "NAME" "${MULTI_PARAM}" ${ARGN})
38-
set(EXE_NAME hawktracer_test_${ht_NAME})
39-
add_executable(${EXE_NAME} ${ht_SOURCES})
40-
target_link_libraries(${EXE_NAME} ${ht_LINK_LIBS} hawktracer)
41-
target_include_directories(${EXE_NAME} PRIVATE ${GTEST_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR})
42-
if ("${ht_RUN_PARAMS}" STREQUAL "")
43-
add_test(${ht_NAME} ${EXE_NAME})
44-
else()
45-
add_test(${ht_NAME} ${EXE_NAME} COMMAND hawktracer_tests ${ht_RUN_PARAMS})
46-
endif()
47-
endfunction(DEFINE_HT_TEST)
37+
set(HAWKTRACER_GTEST_TEST_LIBS
38+
${GTEST_LIBRARY})
39+
set(HAWKTRACER_GTEST_TEST_SOURCES
40+
main_gtest_tests.cpp
41+
test_path.cpp)
4842

4943
add_subdirectory(lib)
5044

@@ -53,3 +47,8 @@ if(ENABLE_CLIENT)
5347
add_subdirectory(client_utils)
5448
add_subdirectory(client)
5549
endif(ENABLE_CLIENT)
50+
51+
add_executable(hawktracer_gtest_tests ${HAWKTRACER_GTEST_TEST_SOURCES})
52+
target_link_libraries(hawktracer_gtest_tests ${HAWKTRACER_GTEST_TEST_LIBS})
53+
target_include_directories(hawktracer_gtest_tests PRIVATE ${GTEST_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR})
54+
add_test(gtest_tests hawktracer_gtest_tests --gtest_output=xml:hawktracer_gtest_tests.xml)

tests/client/CMakeLists.txt

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1-
set(hawktracer_client_tests
2-
main_tests.cpp
3-
test_call_graph.cpp
4-
test_file_loader.cpp
5-
test_path.cpp)
6-
7-
file(COPY test_multiple_calls.txt
8-
test_3_lvls_stack_simple_calls.txt
9-
DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
1+
set(HAWKTRACER_GTEST_TEST_SOURCES
2+
${CMAKE_CURRENT_SOURCE_DIR}/test_call_graph.cpp
3+
${CMAKE_CURRENT_SOURCE_DIR}/test_file_loader.cpp
4+
5+
${HAWKTRACER_GTEST_TEST_SOURCES}
6+
PARENT_SCOPE)
107

11-
DEFINE_HT_TEST(NAME client
12-
SOURCES ${hawktracer_client_tests}
13-
LINK_LIBS ${GTEST_LIBRARY} hawktracer_client
14-
RUN_PARAMS --gtest_output=xml:hawktracer_client_tests.xml)
8+
set(HAWKTRACER_GTEST_TEST_LIBS
9+
hawktracer_client
10+
${HAWKTRACER_GTEST_TEST_LIBS}
11+
PARENT_SCOPE)
12+
13+
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/test_multiple_calls.txt
14+
${CMAKE_CURRENT_SOURCE_DIR}/test_3_lvls_stack_simple_calls.txt
15+
DESTINATION ${HT_TEST_DIR})

tests/client/test_call_graph.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,7 @@ void init(std::vector<CallGraph::NodeData>& events,
8484
std::string file_name)
8585
{
8686
TestFileLoader file_loader;
87-
if (!file_loader.init(file_name))
88-
{
89-
std::cout << "File not open\n";
90-
return;
91-
}
87+
ASSERT_TRUE(file_loader.init(file_name));
9288
tree = file_loader.get_tree();
9389
events = file_loader.get_events();
9490
}

tests/client_utils/CMakeLists.txt

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
set(hawktracer_client_utils_tests
2-
main_tests.cpp
3-
test_command_line_parser.cpp
4-
test_stream_factory.cpp)
1+
set(HAWKTRACER_GTEST_TEST_SOURCES
2+
${CMAKE_CURRENT_SOURCE_DIR}/test_command_line_parser.cpp
3+
${CMAKE_CURRENT_SOURCE_DIR}/test_stream_factory.cpp
54

6-
DEFINE_HT_TEST(NAME client_utils
7-
SOURCES ${hawktracer_client_utils_tests}
8-
LINK_LIBS ${GTEST_LIBRARY} client_utils
9-
RUN_PARAMS --gtest_output=xml:hawktracer_client_utils_tests.xml)
5+
${HAWKTRACER_GTEST_TEST_SOURCES}
6+
PARENT_SCOPE)
7+
8+
set(HAWKTRACER_GTEST_TEST_LIBS
9+
client_utils
10+
${HAWKTRACER_GTEST_TEST_LIBS}
11+
PARENT_SCOPE)

tests/client_utils/main_tests.cpp

Lines changed: 0 additions & 16 deletions
This file was deleted.

tests/lib/CMakeLists.txt

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
1-
set(hawktracer_gtest_tests_SOURCE
2-
main_gtest_tests.cpp
3-
listeners/test_file_dump_listener.cpp
4-
listeners/test_tcp_listener.cpp
5-
test_alloc.cpp
6-
test_allocator.cpp
7-
test_bag.cpp
8-
test_duration_conversion.cpp
9-
test_feature_cached_string.cpp
10-
test_feature_callstack.cpp
11-
test_common.cpp
12-
test_event.cpp
13-
test_listener_buffer.cpp
14-
test_event_id_provider.cpp
15-
test_global_timeline.cpp
16-
test_registry.cpp
17-
test_stack.cpp
18-
test_task_scheduler.cpp
19-
test_test_events.c
20-
test_thread.cpp
21-
test_timeline.cpp)
1+
set(HAWKTRACER_GTEST_TEST_SOURCES
2+
${CMAKE_CURRENT_SOURCE_DIR}/listeners/test_file_dump_listener.cpp
3+
${CMAKE_CURRENT_SOURCE_DIR}/listeners/test_tcp_listener.cpp
4+
${CMAKE_CURRENT_SOURCE_DIR}/test_alloc.cpp
5+
${CMAKE_CURRENT_SOURCE_DIR}/test_allocator.cpp
6+
${CMAKE_CURRENT_SOURCE_DIR}/test_bag.cpp
7+
${CMAKE_CURRENT_SOURCE_DIR}/test_duration_conversion.cpp
8+
${CMAKE_CURRENT_SOURCE_DIR}/test_feature_cached_string.cpp
9+
${CMAKE_CURRENT_SOURCE_DIR}/test_feature_callstack.cpp
10+
${CMAKE_CURRENT_SOURCE_DIR}/test_common.cpp
11+
${CMAKE_CURRENT_SOURCE_DIR}/test_event.cpp
12+
${CMAKE_CURRENT_SOURCE_DIR}/test_listener_buffer.cpp
13+
${CMAKE_CURRENT_SOURCE_DIR}/test_event_id_provider.cpp
14+
${CMAKE_CURRENT_SOURCE_DIR}/test_global_timeline.cpp
15+
${CMAKE_CURRENT_SOURCE_DIR}/test_registry.cpp
16+
${CMAKE_CURRENT_SOURCE_DIR}/test_stack.cpp
17+
${CMAKE_CURRENT_SOURCE_DIR}/test_task_scheduler.cpp
18+
${CMAKE_CURRENT_SOURCE_DIR}/test_test_events.c
19+
${CMAKE_CURRENT_SOURCE_DIR}/test_thread.cpp
20+
${CMAKE_CURRENT_SOURCE_DIR}/test_timeline.cpp
2221

23-
DEFINE_HT_TEST(NAME gtest SOURCES ${hawktracer_gtest_tests_SOURCE} LINK_LIBS ${GTEST_LIBRARY} RUN_PARAMS --gtest_output=xml:hawktracer_tests.xml)
24-
DEFINE_HT_TEST(NAME destroy_timeline_after_uninit SOURCES main_destroy_timeline_after_uninit.c)
22+
${HAWKTRACER_GTEST_TEST_SOURCES}
23+
PARENT_SCOPE)
24+
25+
add_executable(hawktracer_destroy_timeline_after_uninit_tests main_destroy_timeline_after_uninit.c)
26+
target_link_libraries(hawktracer_destroy_timeline_after_uninit_tests hawktracer)
27+
add_test(destroy_timeline_after_uninit_tests hawktracer_destroy_timeline_after_uninit_tests)

tests/lib/main_gtest_tests.cpp

Lines changed: 0 additions & 16 deletions
This file was deleted.

tests/lib/test_event.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#define _BUFF_TO_TYPE(buffer, type) *(type*)(buffer)
66

7-
TEST(TestEvent, CallstackIntEventSerialize)
7+
TEST(TestParserEvent, CallstackIntEventSerialize)
88
{
99
// Arrange
1010
HT_DECL_EVENT(HT_CallstackIntEvent, event)
@@ -33,7 +33,7 @@ TEST(TestEvent, CallstackIntEventSerialize)
3333
ASSERT_EQ(_BUFF_TO_TYPE(buffer + offset, HT_CallstackEventLabel), event.label);
3434
}
3535

36-
TEST(TestEvent, CallstackStringEventSerialize)
36+
TEST(TestParserEvent, CallstackStringEventSerialize)
3737
{
3838
// Arrange
3939
HT_DECL_EVENT(HT_CallstackStringEvent, event)

tests/parser/CMakeLists.txt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
set(hawktracer_parser_tests
2-
main_tests.cpp
3-
test_endianness_convert.cpp
4-
test_event_klass.cpp
5-
test_event.cpp
6-
test_file_stream.cpp
7-
test_klass_register.cpp)
1+
set(HAWKTRACER_GTEST_TEST_SOURCES
2+
${CMAKE_CURRENT_SOURCE_DIR}/test_endianness_convert.cpp
3+
${CMAKE_CURRENT_SOURCE_DIR}/test_event_klass.cpp
4+
${CMAKE_CURRENT_SOURCE_DIR}/test_event.cpp
5+
${CMAKE_CURRENT_SOURCE_DIR}/test_file_stream.cpp
6+
${CMAKE_CURRENT_SOURCE_DIR}/test_klass_register.cpp
87

9-
DEFINE_HT_TEST(NAME parser
10-
SOURCES ${hawktracer_parser_tests}
11-
LINK_LIBS ${GTEST_LIBRARY} hawktracer_parser
12-
RUN_PARAMS --gtest_output=xml:hawktracer_parser_tests.xml)
8+
${HAWKTRACER_GTEST_TEST_SOURCES}
9+
PARENT_SCOPE)
10+
11+
set(HAWKTRACER_GTEST_TEST_LIBS
12+
hawktracer_parser
13+
${HAWKTRACER_GTEST_TEST_LIBS}
14+
PARENT_SCOPE)

0 commit comments

Comments
 (0)