mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-11 01:46:17 +00:00
26 lines
825 B
Bash
Executable File
26 lines
825 B
Bash
Executable File
#!/usr/bin/env sh
|
|
|
|
UNIT_TEST=./check_mem_leaks
|
|
VALGRIND_LOG_FILE=${UNIT_TEST}.valgrind
|
|
LEAK_MESSAGE="are definitely lost"
|
|
|
|
# This test runs valgrind against the check_mem_leaks unit test
|
|
# program, looking for memory leaks. If any are found, "exit 1"
|
|
# is invoked, and one must look through the resulting valgrind log
|
|
# file for details on the leak.
|
|
|
|
rm -f ${VALGRIND_LOG_FILE}
|
|
libtool --mode=execute valgrind --leak-check=full ${UNIT_TEST} 2>&1 | tee ${VALGRIND_LOG_FILE}
|
|
|
|
NUM_LEAKS=$(grep "${LEAK_MESSAGE}" ${VALGRIND_LOG_FILE} | wc -l)
|
|
|
|
if test ${NUM_LEAKS} -gt 0; then
|
|
echo "ERROR: ${NUM_LEAKS} memory leaks were detected by valgrind."
|
|
echo " Look through ${VALGRIND_LOG_FILE} for details,"
|
|
echo " searching for \"${LEAK_MESSAGE}\"."
|
|
exit 1
|
|
else
|
|
echo "No memory leaks found"
|
|
exit 0
|
|
fi
|