#! /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"