unit_tests/check_clamscan.sh
133dd2e9
 #!/bin/sh 
c82d362e
 CLAMSCAN_WRAPPER=${CLAMSCAN_WRAPPER-}
b6927a7c
 die() {
 	rm -rf test-db
 	exit $1;
 }
133dd2e9
 
 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
 }
 
232c4b70
 mkdir test-db
 cat <<EOF >test-db/test.hdb
 aa15bcf478d165efd2065190eb473bcb:544:ClamAV-Test-File
 EOF
82ff41a9
 rm -f clamscan.log
c82d362e
 ../libtool --mode=execute $CLAMSCAN_WRAPPER ../clamscan/clamscan --quiet -dtest-db/test.hdb ../test/clam* --log=clamscan.log
232c4b70
 if test $? != 1; then
 	echo "Error running clamscan: $?" >&2;
 	grep OK clamscan.log >&2;
b6927a7c
 	die 1;
232c4b70
 fi
53ffc6c7
 NFILES=`ls -1 ../test/clam* | wc -l`
073a33e1
 NINFECTED=`grep "Infected files" clamscan.log | cut -f2 -d: |sed -e 's/ //g'`
 if test "$NFILES" -ne "0$NINFECTED"; then
53ffc6c7
 	grep OK clamscan.log >&2;
133dd2e9
 	scan_failed clamscan.log
53ffc6c7
 fi
ff9845c0
 
 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
d6d8d450
 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;
ff9845c0
 fi
b6927a7c
 die 0;