about summary refs log tree commit diff stats
path: root/build/c/scripts/valgrind_test.sh
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-06-11 09:48:15 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-06-11 09:48:15 +0200
commit4f2b735472eb921b5edd91c502e0a47d5e4d0cd2 (patch)
tree35aed5a8f6b650431071e7447565ab6795b790a6 /build/c/scripts/valgrind_test.sh
parentfix(cog.toml): Update to the newest state (diff)
downloadflake-templates-4f2b735472eb921b5edd91c502e0a47d5e4d0cd2.tar.gz
flake-templates-4f2b735472eb921b5edd91c502e0a47d5e4d0cd2.zip
chore(build): Update
Diffstat (limited to '')
-rwxr-xr-xbuild/c/scripts/valgrind_test.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/build/c/scripts/valgrind_test.sh b/build/c/scripts/valgrind_test.sh
new file mode 100755
index 0000000..4d0d964
--- /dev/null
+++ b/build/c/scripts/valgrind_test.sh
@@ -0,0 +1,29 @@
+#! /usr/bin/env sh
+
+for arg in "$@"; do
+    case "$arg" in
+    "--help" | "-h")
+        cat <<-EOF
+            valgrind_test.sh [BINARY_NAME] [ARGS_FOR_BINARY..]
+EOF
+        exit 0
+        ;;
+    esac
+done
+
+binary_name="${1-main}"
+[ -n "$1" ] && shift 1
+
+log_file="$(git rev-parse --show-toplevel)/target/valgrind_out.report"
+mkdir --parents "$(dirname "$log_file")"
+
+CFLAGS="-ggdb3" make "$binary_name"
+
+valgrind --leak-check=full \
+    --show-leak-kinds=all \
+    --show-error-list=yes \
+    --track-origins=yes \
+    --log-file="$log_file" \
+    "./target/$binary_name" "$@"
+
+cat "$log_file"