3
# Note: When run via "make check", test output files are automatically deleted.
4
# When run from the command line, outputs files are left in directory
5
# systest.YYYYMMDD. This is useful when something is different.
7
# ./inputs - test inputs
8
# ./outputs - known correct outputs
11
# tests - directory containing individual output files
13
NODB=1 . ${srcdir=.}/t.frame
15
[ -d ${TMPDIR}/tests ] && rm -rf ${TMPDIR}/tests
16
mkdir -p ${TMPDIR}/tests
18
CONFIG="${TMPDIR}/test.cf"
20
OPTS="-c ${CONFIG} -y 0"
27
spam_header_name=X-Bogosity
37
[ $a -eq 0 ] && exit 0
38
[ $a -eq 1 ] && exit 0
39
[ $a -eq 2 ] && exit 0
44
# Expected spamicity values (11/17/02 13:13):
46
# 1 g v X-Bogosity: No, spamicity=0.000000
47
# 1 r v X-Bogosity: No, spamicity=0.402296
48
# 2a g vv X-Bogosity: Yes, spamicity=1.000000
49
# 2a r vv X-Bogosity: No, spamicity=0.527095
50
# 2b g vv X-Bogosity: Yes, spamicity=1.000000
51
# 2b g vvv X-Bogosity: Yes, spamicity=1.000000
52
# 2b r vv X-Bogosity: Yes, spamicity=0.540124
53
# 2b r vvv X-Bogosity: Yes, spamicity=0.540124
54
# 3 g vvv X-Bogosity: Yes, spamicity=1.000000
55
# 3 r vvv X-Bogosity: Yes, spamicity=0.540316
59
BOGOFILTER_DIR="${TMPDIR}/words.$alg"
61
rm -rf $BOGOFILTER_DIR
63
$BOGOFILTER $OPTS -s < ${SYSTEST}/inputs/spam.mbx
64
$BOGOFILTER $OPTS -n < ${SYSTEST}/inputs/good.mbx
65
for f in $BOGOFILTER_DIR/*.${DB_EXT} ; do
66
n=`basename $f .${DB_EXT}`
67
$BOGOUTIL -d $BOGOFILTER_DIR/$n.${DB_EXT} > $BOGOFILTER_DIR/$n.txt
69
if [ $verbose -ne 0 ]; then
70
ls -l $BOGOFILTER_DIR/*list.txt
73
# run tests for msg.1.txt, msg.2.txt, and msg.3.txt
75
for tst in 1.1.v 2.2a.vv 2.2a.vvv 3.3.vvv ; do
76
in=`echo $tst | tr "." " " | $AWK '{print $1}'`
77
out=`echo $tst | tr "." " " | $AWK '{print $2}'`
78
ver=`echo $tst | tr "." " " | $AWK '{print $3}'`
79
map_rc $BOGOFILTER $OPTS -$ver 2>/dev/null \
80
< ${SYSTEST}/inputs/msg.$in.txt > ${TMPDIR}/tests-$alg || :
81
sed s/,.version=.*// < ${TMPDIR}/tests-$alg > ${TMPDIR}/tests/msg.$out.$alg.$ver
84
# classify msg.2.txt a second time and rerun tests
85
# (expect different results from first run)
87
$BOGOFILTER $OPTS -s < ${SYSTEST}/inputs/msg.3.txt
88
for tst in 2.2b.vv 2.2b.vvv ; do
89
in=`echo $tst | tr "." " " | $AWK '{print $1}'`
90
out=`echo $tst | tr "." " " | $AWK '{print $2}'`
91
ver=`echo $tst | tr "." " " | $AWK '{print $3}'`
92
map_rc $BOGOFILTER $OPTS -$ver 2>/dev/null \
93
< ${SYSTEST}/inputs/msg.$in.txt > ${TMPDIR}/tests-$alg
94
sed s/,.version=.*// < ${TMPDIR}/tests-$alg > ${TMPDIR}/tests/msg.$out.$alg.$ver
96
if [ $verbose -eq 0 ]; then
97
rm -f ${TMPDIR}/tests-$alg
98
rm -f $BOGOFILTER_DIR/*.${DB_EXT}
103
[ ! -z "$BF_SAVEDIR" ] && . ${srcdir}/../t.save
105
for i in $OUTPUTS/*f.v* ; do
107
if [ $verbose -eq 0 ]; then
108
cmp $i ${TMPDIR}/tests/$j
111
diff $DIFF_BRIEF $i ${TMPDIR}/tests/$j