xref: /freebsd/crypto/openssh/regress/valgrind-unit.sh (revision 19261079b74319502c6ffa1249920079f0f69a72)
1bc5531deSDag-Erling Smørgrav#!/bin/sh
2bc5531deSDag-Erling Smørgrav
3bc5531deSDag-Erling SmørgravUNIT_BINARY="$1"
4bc5531deSDag-Erling Smørgravshift
5bc5531deSDag-Erling SmørgravUNIT_ARGS="$@"
6bc5531deSDag-Erling Smørgrav
7bc5531deSDag-Erling Smørgravtest "x$OBJ" = "x" && OBJ=$PWD
8bc5531deSDag-Erling Smørgrav
9bc5531deSDag-Erling Smørgrav# This mostly replicates the logic in test-exec.sh for running the
10190cef3dSDag-Erling Smørgrav# regress tests under valgrind, except that we unconditionally enable
11190cef3dSDag-Erling Smørgrav# leak checking because the unit tests should be clean.
12190cef3dSDag-Erling SmørgravVG_LEAK="--leak-check=full"
13bc5531deSDag-Erling SmørgravVG_TEST=`basename $UNIT_BINARY`
14bc5531deSDag-Erling SmørgravVG_LOG="$OBJ/valgrind-out/${VG_TEST}.%p"
15190cef3dSDag-Erling SmørgravVG_OPTS="--track-origins=yes $VG_LEAK --log-file=${VG_LOG}"
16bc5531deSDag-Erling SmørgravVG_OPTS="$VG_OPTS --trace-children=yes"
17bc5531deSDag-Erling SmørgravVG_PATH="valgrind"
18bc5531deSDag-Erling Smørgravif [ "x$VALGRIND_PATH" != "x" ]; then
19bc5531deSDag-Erling Smørgrav	VG_PATH="$VALGRIND_PATH"
20bc5531deSDag-Erling Smørgravfi
21bc5531deSDag-Erling Smørgrav
22*19261079SEd Mastemkdir -p "$OBJ/valgrind-out"
23*19261079SEd Maste
24bc5531deSDag-Erling Smørgravexec $VG_PATH $VG_OPTS $UNIT_BINARY $UNIT_ARGS
25