#!/usr/bin/env bash USAGE='test program [[run]-[valgrind]] ...' if [[ "$1" =~ help ]]; then echo "$USAGE" exit 0 fi # === ARGPARSE MODE= REBUILD=true VALGRIND=false TARGET=all PROGRAM="$1" MODE_ARG="$2" if [[ ! -x "$PROGRAM" ]]; then echo "[!] Invalid program: \"$PROGRAM\"" echo "$USAGE" exit 1 fi if [[ "$MODE_ARG" =~ run.* ]]; then MODE="$MODE_ARG" REBUILD=false fi if [[ "$MODE_ARG" =~ .*valgrind ]]; then MODE="$MODE_ARG" VALGRIND=true PROXY='valgrind -s --leak-check=full --show-leak-kinds=all' TARGET=debug fi if [[ -n "$MODE" ]]; then shift fi # === MAIN if [[ "$REBUILD" == true ]]; then make clean $TARGET fi LD_LIBRARY_PATH=./lib $PROXY "$PROGRAM" $@