ClamAV is an open source (GPLv2) anti-virus toolkit.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#!/bin/sh
|
|
|
|
VALGRIND=`which ${VALGRIND-valgrind}`
|
|
|
|
VALGRIND_FLAGS="--trace-children=yes --track-fds=yes --leak-check=full --show-reachable=yes --suppressions=$srcdir/valgrind.supp"
|
|
|
|
test -n "$VALGRIND" || { echo "*** valgrind not found, skipping test"; exit 77; }
|
|
|
|
test -x "$VALGRIND" || { echo "*** valgrind not executable, skipping test"; exit 77; }
|
|
|
|
|
|
|
|
echo "Running valgrind"
|
|
|
|
CK_FORK=no ../libtool --mode=execute $VALGRIND $VALGRIND_FLAGS ./check_clamav 2>&1 | cat >valgrind.log
|
|
|
|
if grep "ERROR SUMMARY: 0 errors" valgrind.log >/dev/null; then
|
|
|
|
if grep "no leaks are possible" valgrind.log >/dev/null; then
|
|
|
|
echo "Valgrind tests successful"
|
|
|
|
exit 0;
|
|
|
|
fi
|
|
|
|
echo "*** Valgrind test FAILED, memory LEAKS detected ***"
|
|
|
|
else
|
|
|
|
echo "*** Valgrind test FAILED, memory ERRORS detected ****"
|
|
|
|
fi
|
|
|
|
echo
|
|
|
|
grep "ERROR SUMMARY" valgrind.log
|
|
|
|
echo `grep "Invalid read" valgrind.log| wc -l` "invalid reads"
|
|
|
|
echo `grep "Invalid write" valgrind.log| wc -l` "invalid writes"
|
|
|
|
echo `grep "Invalid free" valgrind.log| wc -l` "invalid frees"
|
|
|
|
echo `grep "uninitialised value" valgrind.log|wc -l` "uses of uninitialized values"
|
|
|
|
grep " lost:" valgrind.log
|
|
|
|
grep "still reachable:" valgrind.log
|
|
|
|
grep "FILE DESCRIPTORS" valgrind.log
|
|
|
|
echo
|
|
|
|
exit 1;
|