#!/usr/bin/perl -T
use
SATest; sa_t_init(
"razor2"
);
use
constant
HAS_RAZOR2_IDENT
=>
eval
{ -r
$ENV
{
'HOME'
}.
'/.razor/identity'
; };
plan
skip_all
=>
"Net tests disabled"
unless
conf_bool(
'run_net_tests'
);
plan
skip_all
=>
"Needs Razor2"
unless
HAS_RAZOR2;
plan
skip_all
=>
"Needs Razor2 Identity File Needed. razor-register / razor-admin -register has not been run, or identity file ($ENV{'HOME'}/.razor/identity) is unreadable."
unless
HAS_RAZOR2_IDENT;
plan
tests
=> 8;
diag(
'Note: Failures may not be an SpamAssassin bug, as Razor tests can fail due to problems with the Razor servers.'
);
tstprefs ("
full RAZOR2_CHECK
eval
:check_razor2()
tflags RAZOR2_CHECK net autolearn_body
dns_available
no
use_razor2 1
score RAZOR2_CHECK 3.3
");
%patterns
= (
q{ 3.3 RAZOR2_CHECK }
,
'spam'
,
);
sarun (
"-t < data/spam/razor2"
, \
&patterns_run_cb
);
ok_all_patterns();
sarun (
"--cf='razor_fork 1' -t < data/spam/razor2"
, \
&patterns_run_cb
);
ok_all_patterns();
%patterns
= (
'Connection established'
,
'connection'
,
'razor2: part=0 engine=8 contested=0 confidence=0'
,
'result'
,
);
%anti_patterns
= (
q{ 3.3 RAZOR2_CHECK }
,
'nonspam'
,
);
sarun (
"-D razor2 -t < data/nice/001 2>&1"
, \
&patterns_run_cb
);
ok_all_patterns();
sarun (
"-D razor2 --cf='razor_fork 1' -t < data/nice/001 2>&1"
, \
&patterns_run_cb
);
ok_all_patterns();