#!/usr/bin/perl use lib '.'; use lib 't'; use SATest; sa_t_init("spamc_optL"); use constant HAS_SDBM_FILE => eval { require SDBM_File; }; use Test; plan tests => (!HAS_SDBM_FILE || $SKIP_SPAMC_TESTS ? 0 : 16); exit if (!HAS_SDBM_FILE || $SKIP_SPAMC_TESTS); # --------------------------------------------------------------------------- tstlocalrules (" bayes_store_module Mail::SpamAssassin::BayesStore::SDBM "); start_spamd("-L --allow-tell"); %patterns = ( 'Message successfully un/learned' => 'learned spam' ); ok (spamcrun ("-L spam < data/spam/001", \&patterns_run_cb)); ok_all_patterns(); %patterns = ( 'Message was already un/learned' => 'already learned spam' ); ok (spamcrun ("-L spam < data/spam/001", \&patterns_run_cb)); ok_all_patterns(); %patterns = ( '1 0 non-token data: nspam' => 'spam in database' ); ok(salearnrun("--dump magic", \&patterns_run_cb)); ok_all_patterns(); %patterns = ( 'Message successfully un/learned' => 'forget spam' ); ok (spamcrun ("-L forget < data/spam/001", \&patterns_run_cb)); ok_all_patterns(); %patterns = ( 'Message successfully un/learned' => 'learned ham' ); ok (spamcrun ("-L ham < data/nice/001", \&patterns_run_cb)); ok_all_patterns(); %patterns = ( 'Message was already un/learned' => 'already learned ham' ); ok (spamcrun ("-L ham < data/nice/001", \&patterns_run_cb)); ok_all_patterns(); %patterns = ( '1 0 non-token data: nham' => 'ham in database' ); ok(salearnrun("--dump magic", \&patterns_run_cb)); ok_all_patterns(); %patterns = ( 'Message successfully un/learned' => 'learned ham' ); ok (spamcrun ("-L forget < data/nice/001", \&patterns_run_cb)); ok_all_patterns(); stop_spamd();