Skip to content

Commit 45ae7d7

Browse files
[valgrind] run tooling through CMake support (#232)
1 parent 3f6fd84 commit 45ae7d7

File tree

3 files changed

+21
-37
lines changed

3 files changed

+21
-37
lines changed

.github/workflows/memory_valgrind.yml

+5-37
Original file line numberDiff line numberDiff line change
@@ -12,39 +12,10 @@ jobs:
1212
steps:
1313
- name: Checkout
1414
uses: actions/checkout@v3.1.0
15-
- name: Update
16-
run: sudo apt update
1715
- name: Install
16+
# Workaround to wg21 CMake installation issues.
1817
run: |
19-
sudo apt install gcc-12 g++-12 valgrind
20-
( cd /tmp
21-
git clone --depth 1 https://gitlab.com/libeigen/eigen.git
22-
mkdir eigen/build
23-
( cd eigen/build
24-
cmake ..
25-
cmake --build . --parallel
26-
sudo cmake --install . ) )
27-
( cd /tmp
28-
git clone --depth 1 https://github.com/fmtlib/fmt.git
29-
mkdir fmt/build
30-
( cd fmt/build
31-
cmake ..
32-
cmake --build . --parallel
33-
sudo cmake --install . ) )
34-
( cd /tmp
35-
git clone --depth 1 https://github.com/kokkos/mdspan.git
36-
mkdir mdspan/build
37-
( cd mdspan/build
38-
cmake ..
39-
cmake --build . --parallel
40-
sudo cmake --install . ) )
41-
( cd /tmp
42-
git clone --depth 1 https://github.com/kokkos/stdBLAS.git
43-
mkdir stdBLAS/build
44-
( cd stdBLAS/build
45-
cmake ..
46-
cmake --build . --parallel
47-
sudo cmake --install . ) )
18+
sudo apt install valgrind
4819
( cd /tmp
4920
git clone --depth 1 https://github.com/BobSteagall/wg21.git
5021
mkdir wg21/build
@@ -53,9 +24,6 @@ jobs:
5324
sudo cmake --install . ) )
5425
- name: Build
5526
run: |
56-
gcc-12 \
57-
sample/*.cpp test/*.cpp source/*.cpp \
58-
-Iinclude -I/usr/local/include/eigen3 -Isupport \
59-
-g -O0 -std=c++23 -lstdc++ -lm -lfmt
60-
- name: Test
61-
run: valgrind --verbose ./a.out
27+
cmake -B "build" .
28+
cmake --build "build" --parallel 4
29+
ctest --test-dir "build" --tests-regex "kalman_valgrind" --output-on-failure --parallel 4

sample/CMakeLists.txt

+8
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ foreach(SAMPLE "kf_1x1x0_building_height.cpp" "kf_1x1x0_liquid_temperature.cpp"
4242
add_executable(kalman_sample_${NAME}_driver ${SAMPLE})
4343
target_link_libraries(kalman_sample_${NAME}_driver PRIVATE kalman main)
4444
add_test(kalman_sample_${NAME} kalman_sample_${NAME}_driver)
45+
add_test(
46+
NAME kalman_valgrind_${NAME}
47+
COMMAND valgrind --error-exitcode=1 --leak-check=full --track-origins=yes
48+
$<TARGET_FILE:kalman_sample_${NAME}_driver>)
4549
endforeach()
4650

4751
foreach(SAMPLE_EIGEN
@@ -52,4 +56,8 @@ foreach(SAMPLE_EIGEN
5256
target_link_libraries(kalman_sample_eigen_${NAME}_driver PRIVATE Eigen3::Eigen
5357
kalman main)
5458
add_test(kalman_sample_eigen_${NAME} kalman_sample_eigen_${NAME}_driver)
59+
add_test(
60+
NAME kalman_valgrind_eigen_${NAME}
61+
COMMAND valgrind --error-exitcode=1 --leak-check=full --track-origins=yes
62+
$<TARGET_FILE:kalman_sample_eigen_${NAME}_driver>)
5563
endforeach()

test/CMakeLists.txt

+8
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ foreach(TEST "f.cpp" "format.cpp" "h.cpp" "initialization.cpp")
4141
add_executable(kalman_test_${NAME}_driver ${TEST})
4242
target_link_libraries(kalman_test_${NAME}_driver PRIVATE kalman main)
4343
add_test(kalman_test_${NAME} kalman_test_${NAME}_driver)
44+
add_test(
45+
NAME kalman_valgrind_${NAME}
46+
COMMAND valgrind --error-exitcode=1 --leak-check=full --track-origins=yes
47+
$<TARGET_FILE:kalman_test_${NAME}_driver>)
4448
endforeach()
4549

4650
foreach(TEST_EIGEN "eigen_f.cpp" "eigen_h.cpp" "eigen_initialization.cpp")
@@ -49,4 +53,8 @@ foreach(TEST_EIGEN "eigen_f.cpp" "eigen_h.cpp" "eigen_initialization.cpp")
4953
target_link_libraries(kalman_test_eigen_${NAME}_driver PRIVATE Eigen3::Eigen
5054
kalman main)
5155
add_test(kalman_test_eigen_${NAME} kalman_test_eigen_${NAME}_driver)
56+
add_test(
57+
NAME kalman_valgrind_eigen_${NAME}
58+
COMMAND valgrind --error-exitcode=1 --leak-check=full --track-origins=yes
59+
$<TARGET_FILE:kalman_test_eigen_${NAME}_driver>)
5260
endforeach()

0 commit comments

Comments
 (0)