43 lines
698 B
Bash
Executable file
43 lines
698 B
Bash
Executable file
#!/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=debug
|
|
PROGRAM="$1"
|
|
MODE_ARG="$2"
|
|
|
|
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
|
|
|
|
if [[ ! -x "$PROGRAM" ]]; then
|
|
echo "[!] Invalid program: \"$PROGRAM\""
|
|
echo "$USAGE"
|
|
exit 1
|
|
fi
|
|
|
|
LD_LIBRARY_PATH=./lib $PROXY "$PROGRAM" $@
|