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.
 
 
 
 
 
 
clamav/unit_tests/check_clamscan.sh

66 lines
1.8 KiB

#!/bin/sh
CLAMSCAN_WRAPPER=${CLAMSCAN_WRAPPER-}
die() {
rm -rf test-db
exit $1;
}
scan_failed() {
if test "X$unrar_disabled" = "X1" && test `grep -v '\.rar' $1 | grep OK | wc -l` -eq 0
then
echo "***" >&2;
echo "*** UNRAR is disabled, won't be able to detect unrar files!" >&2;
echo "***" >&2;
else
echo "clamscan did not detect all testfiles correctly!" >&2;
die 2;
fi
}
mkdir test-db
cat <<EOF >test-db/test.hdb
aa15bcf478d165efd2065190eb473bcb:544:ClamAV-Test-File
EOF
rm -f clamscan.log
../libtool --mode=execute $CLAMSCAN_WRAPPER ../clamscan/clamscan --quiet -dtest-db/test.hdb ../test/clam* --log=clamscan.log
if test $? != 1; then
echo "Error running clamscan: $?" >&2;
grep OK clamscan.log >&2;
die 1;
fi
NFILES=`ls -1 ../test/clam* | wc -l`
NINFECTED=`grep "Infected files" clamscan.log | cut -f2 -d: |sed -e 's/ //g'`
if test "$NFILES" -ne "0$NINFECTED"; then
grep OK clamscan.log >&2;
scan_failed clamscan.log
fi
cat <<EOF >test-db/test.pdb
H:example.com
EOF
rm -f clamscan2.log
../clamscan/clamscan -dtest-db $abs_srcdir/input/phish-test-* --log=clamscan2.log --quiet
val=$?
if test $val != 0; then
if test $val = 1; then
echo "clamscan detected a file it shouldn't" >&2
grep FOUND clamscan2.log
die 3;
fi
echo "Error running clamscan: $val" >&2;
die 3;
fi
rm -f clamscan2.log
../clamscan/clamscan --phishing-ssl --phishing-cloak -dtest-db $abs_srcdir/input/phish-test-* --log=clamscan2.log --quiet
val=$?
if test $val != 1; then
echo "Error running clamscan: $val" >&2;
die 3;
fi
grep "phish-test-ssl: Phishing.Heuristics.Email.SSL-Spoof FOUND" clamscan2.log >/dev/null && grep "phish-test-cloak: Phishing.Heuristics.Email.Cloaked.Null FOUND" clamscan2.log >/dev/null
if test $? -ne 0; then
echo "Error on ssl/cloak phishing test" >&2;
die 4;
fi
die 0;