Skip to content

Commit faed250

Browse files
committed
Move to use generation of flamegraphs as a CLEANUP_FIXTURE
1 parent c9b63ec commit faed250

File tree

1 file changed

+32
-13
lines changed

1 file changed

+32
-13
lines changed

cmake/modules/AddRootBench.cmake

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,29 @@ function(RB_ADD_SETUP_FIXTURE benchmark)
2929
endfunction(RB_ADD_SETUP_FIXTURE)
3030

3131

32+
#----------------------------------------------------------------------------
33+
# function RB_ADD_FLAMEGRAPHCPU_FIXTURE(<benchmark>)
34+
#----------------------------------------------------------------------------
35+
function(RB_ADD_FLAMEGRAPHCPU_FIXTURE benchmark)
36+
cmake_parse_arguments(ARG "" "" "" ${ARGN})
37+
add_test(NAME rootbench-fixture-flamegraphcpu-${benchmark}
38+
COMMAND ${PROJECT_BINARY_DIR}/tools/flamegraph.sh -d ${PROJECT_BINARY_DIR} -b ${CMAKE_CURRENT_BINARY_DIR}/${benchmark} -c)
39+
set_tests_properties(rootbench-fixture-flamegraphcpu-${benchmark} PROPERTIES FIXTURES_CLEANUP flamegraphcpu-${benchmark})
40+
endfunction(RB_ADD_FLAMEGRAPHCPU_FIXTURE)
41+
42+
43+
#----------------------------------------------------------------------------
44+
# function RB_ADD_FLAMEGRAPHMEM_FIXTURE(<benchmark>)
45+
#----------------------------------------------------------------------------
46+
function(RB_ADD_FLAMEGRAPHMEM_FIXTURE benchmark)
47+
cmake_parse_arguments(ARG "" "" "" ${ARGN})
48+
add_test(NAME rootbench-fixture-flamegraphmem-${benchmark}
49+
COMMAND ${PROJECT_BINARY_DIR}/tools/flamegraph.sh -d ${PROJECT_BINARY_DIR} -b ${CMAKE_CURRENT_BINARY_DIR}/${benchmark} -m)
50+
set_tests_properties(rootbench-fixture-flamegraphmem-${benchmark} PROPERTIES FIXTURES_CLEANUP flamegraphmem-${benchmark})
51+
endfunction(RB_ADD_FLAMEGRAPHMEM_FIXTURE)
52+
53+
54+
3255
#----------------------------------------------------------------------------
3356
# function RB_ADD_GBENCHMARK(<benchmark> source1 source2... LIBRARIES libs)
3457
#----------------------------------------------------------------------------
@@ -44,18 +67,6 @@ function(RB_ADD_GBENCHMARK benchmark)
4467
# against. For example, tests in Core should link only against libCore. This could be tricky
4568
# to implement because some ROOT components create more than one library.
4669
target_link_libraries(${benchmark} ${ARG_LIBRARIES} gbenchmark RBSupport)
47-
#ROOT_PATH_TO_STRING(mangled_name ${benchmark} PATH_SEPARATOR_REPLACEMENT "-")
48-
if(ARG_POSTCMD)
49-
set(postcmd POSTCMD ${ARG_POSTCMD})
50-
endif()
51-
if(flamegraphCPU)
52-
set(postcmd ${postcmd} "${PROJECT_SOURCE_DIR}/rootbench-scripts/flamegraph.sh -d ${PROJECT_BINARY_DIR} -b ${CMAKE_CURRENT_BINARY_DIR}/${benchmark} -c")
53-
add_dependencies(${benchmark} flamegraph-download)
54-
endif()
55-
if(flamegraphMem)
56-
set(postcmd ${postcmd} "${PROJECT_SOURCE_DIR}/rootbench-scripts/flamegraph.sh -d ${PROJECT_BINARY_DIR} -b ${CMAKE_CURRENT_BINARY_DIR}/${benchmark} -m")
57-
add_dependencies(${benchmark} flamegraph-download)
58-
endif()
5970
if(${ARG_LABEL} STREQUAL "long")
6071
set(${TIMEOUT_VALUE} 1200)
6172
elseif($ARG_LABEL STREQUAL "short")
@@ -74,13 +85,21 @@ function(RB_ADD_GBENCHMARK benchmark)
7485
RB_ADD_SETUP_FIXTURE(${benchmark} SETUP ${ARG_SETUP})
7586
endif()
7687

88+
# Flamegraphs (both mem and cpu)
89+
if(flamegraphCPU)
90+
RB_ADD_FLAMEGRAPHCPU_FIXTURE(${benchmark})
91+
endif()
92+
if(flamegraphMem)
93+
RB_ADD_FLAMEGRAPHMEM_FIXTURE(${benchmark})
94+
endif()
95+
7796
# Add benchmark as a CTest
7897
add_test(NAME rootbench-${benchmark}
7998
COMMAND ${benchmark} --benchmark_out_format=csv --benchmark_out=rootbench-gbenchmark-${benchmark}.csv --benchmark_color=false)
8099
set_tests_properties(rootbench-${benchmark} PROPERTIES
81100
ENVIRONMENT LD_LIBRARY_PATH=${ROOT_LIBRARY_DIR}:$ENV{LD_LIBRARY_PATH}
82101
TIMEOUT "${TIMEOUT_VALUE}" LABELS "${ARG_LABEL}" RUN_SERIAL TRUE
83-
FIXTURES_REQUIRED "setup-${benchmark};download-${benchmark}-datafiles")
102+
FIXTURES_REQUIRED "setup-${benchmark};download-${benchmark}-datafiles;flamegraphcpu-${benchmark};flamegraphmem-${benchmark}")
84103
endfunction(RB_ADD_GBENCHMARK)
85104

86105

0 commit comments

Comments
 (0)