diff options
Diffstat (limited to 'templates/c/scripts/valgrind_test.sh')
-rwxr-xr-x | templates/c/scripts/valgrind_test.sh | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/templates/c/scripts/valgrind_test.sh b/templates/c/scripts/valgrind_test.sh new file mode 100755 index 0000000..4d0d964 --- /dev/null +++ b/templates/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" |