You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by he...@apache.org on 2021/04/12 07:43:14 UTC
svn commit: r1888649 [1/4] - in /spamassassin/trunk: ./ t/ t/data/
Author: hege
Date: Mon Apr 12 07:43:12 2021
New Revision: 1888649
URL: http://svn.apache.org/viewvc?rev=1888649&view=rev
Log:
Major test cleanups. Parallel testing supported (HARNESS_OPTIONS=j8 make test), configuration t/testrules.yml.
Added:
spamassassin/trunk/t/askdns.t (with props)
spamassassin/trunk/t/basic_lint_net.t (with props)
spamassassin/trunk/t/testrules.yml
Removed:
spamassassin/trunk/t/zz_cleanup.t
Modified:
spamassassin/trunk/MANIFEST
spamassassin/trunk/t/SATest.pm
spamassassin/trunk/t/all_modules.t
spamassassin/trunk/t/authres.t
spamassassin/trunk/t/autolearn.t
spamassassin/trunk/t/autolearn_force.t
spamassassin/trunk/t/autolearn_force_fail.t
spamassassin/trunk/t/basic_lint.t
spamassassin/trunk/t/basic_lint_without_sandbox.t
spamassassin/trunk/t/basic_meta.t
spamassassin/trunk/t/basic_meta2.t
spamassassin/trunk/t/basic_obj_api.t
spamassassin/trunk/t/bayesbdb.t
spamassassin/trunk/t/bayesdbm.t
spamassassin/trunk/t/bayesdbm_flock.t
spamassassin/trunk/t/bayessdbm.t
spamassassin/trunk/t/bayessdbm_seen_delete.t
spamassassin/trunk/t/bayessql.t
spamassassin/trunk/t/blacklist_autolearn.t
spamassassin/trunk/t/blocklist_autolearn.t
spamassassin/trunk/t/body_mod.t
spamassassin/trunk/t/body_str.t
spamassassin/trunk/t/check_implemented.t
spamassassin/trunk/t/cidrs.t
spamassassin/trunk/t/config_errs.t
spamassassin/trunk/t/config_tree_recurse.t
spamassassin/trunk/t/cross_user_config_leak.t (contents, props changed)
spamassassin/trunk/t/data/01_test_rules.cf
spamassassin/trunk/t/data/01_test_rules.pre
spamassassin/trunk/t/date.t
spamassassin/trunk/t/db_awl_path.t
spamassassin/trunk/t/db_awl_perms.t
spamassassin/trunk/t/db_based_whitelist.t
spamassassin/trunk/t/db_based_whitelist_ips.t
spamassassin/trunk/t/dcc.t
spamassassin/trunk/t/debug.t
spamassassin/trunk/t/desc_wrap.t
spamassassin/trunk/t/dkim.t
spamassassin/trunk/t/dnsbl.t
spamassassin/trunk/t/dnsbl_subtests.t
spamassassin/trunk/t/duplicates.t
spamassassin/trunk/t/esp.t
spamassassin/trunk/t/extracttext.t
spamassassin/trunk/t/freemail.t
spamassassin/trunk/t/freemail_welcome_block.t
spamassassin/trunk/t/get_all_headers.t
spamassassin/trunk/t/get_headers.t
spamassassin/trunk/t/gtube.t
spamassassin/trunk/t/header_utf8.t
spamassassin/trunk/t/html_colors.t
spamassassin/trunk/t/html_obfu.t
spamassassin/trunk/t/html_utf8.t
spamassassin/trunk/t/idn_dots.t
spamassassin/trunk/t/if_can.t (contents, props changed)
spamassassin/trunk/t/ifversion.t
spamassassin/trunk/t/ip_addrs.t
spamassassin/trunk/t/lang_lint.t
spamassassin/trunk/t/lang_pl_tests.t
spamassassin/trunk/t/line_endings.t
spamassassin/trunk/t/lint_nocreate_prefs.t
spamassassin/trunk/t/local_tests_only.t (props changed)
spamassassin/trunk/t/make_install.t (contents, props changed)
spamassassin/trunk/t/mass_check.t
spamassassin/trunk/t/memory_cycles.t
spamassassin/trunk/t/metadata.t
spamassassin/trunk/t/mimeheader.t
spamassassin/trunk/t/mimeparse.t
spamassassin/trunk/t/missing_hb_separator.t
spamassassin/trunk/t/mkrules.t
spamassassin/trunk/t/mkrules_else.t
spamassassin/trunk/t/nonspam.t
spamassassin/trunk/t/olevbmacro.t
spamassassin/trunk/t/originating_ip_hdr.t (props changed)
spamassassin/trunk/t/phishing.t
spamassassin/trunk/t/plugin.t
spamassassin/trunk/t/plugin_file.t
spamassassin/trunk/t/plugin_priorities.t
spamassassin/trunk/t/prefs_include.t
spamassassin/trunk/t/priorities.t (contents, props changed)
spamassassin/trunk/t/pyzor.t
spamassassin/trunk/t/razor2.t
spamassassin/trunk/t/rcvd_parser.t
spamassassin/trunk/t/re_base_extraction.t
spamassassin/trunk/t/recreate.t
spamassassin/trunk/t/recursion.t
spamassassin/trunk/t/regexp_valid.t
spamassassin/trunk/t/relative_scores.t
spamassassin/trunk/t/relaycountry.t (contents, props changed)
spamassassin/trunk/t/report_safe.t
spamassassin/trunk/t/reportheader.t
spamassassin/trunk/t/reportheader_8bit.t
spamassassin/trunk/t/reuse.t (contents, props changed)
spamassassin/trunk/t/root_spamd.t (contents, props changed)
spamassassin/trunk/t/root_spamd_tell.t (contents, props changed)
spamassassin/trunk/t/root_spamd_tell_paranoid.t (contents, props changed)
spamassassin/trunk/t/root_spamd_tell_x.t (contents, props changed)
spamassassin/trunk/t/root_spamd_tell_x_paranoid.t (contents, props changed)
spamassassin/trunk/t/root_spamd_u.t
spamassassin/trunk/t/root_spamd_u_dcc.t
spamassassin/trunk/t/root_spamd_virtual.t
spamassassin/trunk/t/root_spamd_x.t (contents, props changed)
spamassassin/trunk/t/root_spamd_x_paranoid.t (contents, props changed)
spamassassin/trunk/t/root_spamd_x_u.t
spamassassin/trunk/t/rule_multiple.t
spamassassin/trunk/t/rule_names.t
spamassassin/trunk/t/rule_tests.t
spamassassin/trunk/t/rule_types.t
spamassassin/trunk/t/sa_awl.t
spamassassin/trunk/t/sa_check_spamd.t
spamassassin/trunk/t/sa_compile.t (contents, props changed)
spamassassin/trunk/t/sha1.t
spamassassin/trunk/t/shortcircuit.t (contents, props changed)
spamassassin/trunk/t/shortcircuit_before_dns.t (props changed)
spamassassin/trunk/t/spam.t
spamassassin/trunk/t/spamc.t
spamassassin/trunk/t/spamc_H.t
spamassassin/trunk/t/spamc_bug6176.t
spamassassin/trunk/t/spamc_cf.t
spamassassin/trunk/t/spamc_headers.t
spamassassin/trunk/t/spamc_l.t
spamassassin/trunk/t/spamc_optC.t
spamassassin/trunk/t/spamc_optL.t
spamassassin/trunk/t/spamc_x_E_R.t
spamassassin/trunk/t/spamc_x_e.t
spamassassin/trunk/t/spamc_y.t
spamassassin/trunk/t/spamc_z.t (contents, props changed)
spamassassin/trunk/t/spamd.t
spamassassin/trunk/t/spamd_allow_user_rules.t
spamassassin/trunk/t/spamd_client.t
spamassassin/trunk/t/spamd_hup.t
spamassassin/trunk/t/spamd_kill_restart.t
spamassassin/trunk/t/spamd_kill_restart_rr.t
spamassassin/trunk/t/spamd_ldap.t
spamassassin/trunk/t/spamd_maxchildren.t
spamassassin/trunk/t/spamd_maxsize.t
spamassassin/trunk/t/spamd_parallel.t
spamassassin/trunk/t/spamd_plugin.t
spamassassin/trunk/t/spamd_port.t
spamassassin/trunk/t/spamd_prefork_stress.t
spamassassin/trunk/t/spamd_prefork_stress_2.t
spamassassin/trunk/t/spamd_prefork_stress_3.t
spamassassin/trunk/t/spamd_prefork_stress_4.t
spamassassin/trunk/t/spamd_protocol_10.t
spamassassin/trunk/t/spamd_report.t
spamassassin/trunk/t/spamd_report_ifspam.t
spamassassin/trunk/t/spamd_sql_prefs.t
spamassassin/trunk/t/spamd_ssl.t
spamassassin/trunk/t/spamd_ssl_accept_fail.t
spamassassin/trunk/t/spamd_stop.t
spamassassin/trunk/t/spamd_symbols.t
spamassassin/trunk/t/spamd_syslog.t
spamassassin/trunk/t/spamd_unix.t
spamassassin/trunk/t/spamd_user_rules_leak.t
spamassassin/trunk/t/spamd_utf8.t
spamassassin/trunk/t/spamd_welcomelist_leak.t
spamassassin/trunk/t/spamd_whitelist_leak.t
spamassassin/trunk/t/spf_welcome_block.t
spamassassin/trunk/t/sql_based_whitelist.t
spamassassin/trunk/t/stop_always_matching_regexps.t (contents, props changed)
spamassassin/trunk/t/strip2.t
spamassassin/trunk/t/strip_no_subject.t
spamassassin/trunk/t/stripmarkup.t
spamassassin/trunk/t/tainted_msg.t
spamassassin/trunk/t/text_bad_ctype.t
spamassassin/trunk/t/timeout.t
spamassassin/trunk/t/trust_path.t
spamassassin/trunk/t/uri.t
spamassassin/trunk/t/uri_html.t
spamassassin/trunk/t/uri_list.t (contents, props changed)
spamassassin/trunk/t/uri_saferedirect.t
spamassassin/trunk/t/uri_text.t
spamassassin/trunk/t/uribl_all_types.t (contents, props changed)
spamassassin/trunk/t/uribl_domains_only.t (contents, props changed)
spamassassin/trunk/t/uribl_ips_only.t (contents, props changed)
spamassassin/trunk/t/urilocalbl.t (contents, props changed)
spamassassin/trunk/t/utf8.t
spamassassin/trunk/t/util_wrap.t
spamassassin/trunk/t/welcomelist_from.t (contents, props changed)
spamassassin/trunk/t/welcomelist_to.t (contents, props changed)
spamassassin/trunk/t/whitelist_addrs.t
spamassassin/trunk/t/whitelist_from.t
spamassassin/trunk/t/whitelist_subject.t
spamassassin/trunk/t/whitelist_to.t
Modified: spamassassin/trunk/MANIFEST
URL: http://svn.apache.org/viewvc/spamassassin/trunk/MANIFEST?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/MANIFEST (original)
+++ spamassassin/trunk/MANIFEST Mon Apr 12 07:43:12 2021
@@ -233,16 +233,16 @@ sql/txrep_mysql.sql
sql/txrep_pg.sql
sql/txrep_sqlite.sql
t/README
-t/esp.t
-t/uri_saferedirect.t
t/SATest.pl
t/SATest.pm
t/all_modules.t
+t/askdns.t
t/authres.t
t/autolearn.t
t/autolearn_force.t
t/autolearn_force_fail.t
t/basic_lint.t
+t/basic_lint_net.t
t/basic_lint_without_sandbox.t
t/basic_meta.t
t/basic_meta2.t
@@ -265,7 +265,6 @@ t/config_text.t
t/config_tree_recurse.t
t/cpp_comments_in_spamc.t
t/cross_user_config_leak.t
-t/olevbmacro.t
t/data/01_test_rules.cf
t/data/01_test_rules.pre
t/data/Dumpheaders.pm
@@ -313,21 +312,17 @@ t/data/dkim/test-pass-20.msg
t/data/dkim/test-pass-21.msg
t/data/dkim/test-pass-22.msg
t/data/dkim/test-pass-23.msg
-t/data/spam/esp/mailchimp.eml
-t/data/spam/esp/mailchimp.txt
-t/data/spam/esp/sendgrid_id.eml
-t/data/spam/esp/sendgrid_id.txt
t/data/etc/hello.txt
t/data/etc/testhost.cert
t/data/etc/testhost.key
-t/data/geodb/create_GeoIPCity.README
-t/data/geodb/create_GeoIPISP.README
-t/data/geodb/create_ipcc.sh
t/data/geodb/GeoIP2-City.mmdb
t/data/geodb/GeoIP2-Country.mmdb
t/data/geodb/GeoIP2-ISP.mmdb
t/data/geodb/GeoIPCity.dat
t/data/geodb/GeoIPISP.dat
+t/data/geodb/create_GeoIPCity.README
+t/data/geodb/create_GeoIPISP.README
+t/data/geodb/create_ipcc.sh
t/data/geodb/ipcc.db
t/data/mime-subject.txt
t/data/nice/001
@@ -381,6 +376,8 @@ t/data/nice/spf5-received-spf-crlf
t/data/nice/spf6-received-spf-crlf2
t/data/nice/unicode1
t/data/nice/unicode2
+t/data/phishing/openphish-feed.txt
+t/data/phishing/phishtank-feed.csv
t/data/reporterplugin.pm
t/data/spam/001
t/data/spam/002
@@ -409,6 +406,14 @@ t/data/spam/base64.txt
t/data/spam/bsmtp
t/data/spam/bsmtpnull
t/data/spam/dnsbl.eml
+t/data/spam/dnsbl_domsonly.eml
+t/data/spam/dnsbl_ipsonly.eml
+t/data/spam/esp/mailchimp.eml
+t/data/spam/esp/mailchimp.txt
+t/data/spam/esp/sendgrid_id.eml
+t/data/spam/esp/sendgrid_id.txt
+t/data/spam/extracttext/gtube_jpg.eml
+t/data/spam/extracttext/gtube_pdf.eml
t/data/spam/gtube.eml
t/data/spam/gtubedcc.eml
t/data/spam/gtubedcc_crlf.eml
@@ -419,13 +424,15 @@ t/data/spam/olevbmacro/malicemacro.eml
t/data/spam/olevbmacro/nomacro.eml
t/data/spam/olevbmacro/renamedmacro.eml
t/data/spam/olevbmacro/zippwmacro.eml
+t/data/spam/phishing_openphish.eml
+t/data/spam/phishing_phishtank.eml
t/data/spam/pyzor
t/data/spam/razor2
t/data/spam/relayUS.eml
-t/data/spam/urilocalbl_net.eml
t/data/spam/spf1
t/data/spam/spf2
t/data/spam/spf3
+t/data/spam/urilocalbl_net.eml
t/data/spamc_blank.cf
t/data/taintcheckplugin.pm
t/data/testplugin.pm
@@ -456,13 +463,6 @@ t/data/whitelists/ryanairmail.com
t/data/whitelists/sf.net
t/data/whitelists/winxpnews.com
t/data/whitelists/yahoo-inc.com
-t/data/phishing/openphish-feed.txt
-t/data/phishing/phishtank-feed.csv
-t/data/spam/phishing_openphish.eml
-t/data/spam/phishing_phishtank.eml
-t/welcomelist_to.t
-t/welcomelist_from.t
-t/phishing.t
t/date.t
t/db_awl_path.t
t/db_awl_perms.t
@@ -474,8 +474,12 @@ t/desc_wrap.t
t/dkim.t
t/dnsbl.t
t/dnsbl_sc_meta.t
+t/dnsbl_subtests.t
t/duplicates.t
+t/esp.t
+t/extracttext.t
t/freemail.t
+t/freemail_welcome_block.t
t/get_all_headers.t
t/get_headers.t
t/gtube.t
@@ -500,7 +504,9 @@ t/missing_hb_separator.t
t/mkrules.t
t/mkrules_else.t
t/nonspam.t
+t/olevbmacro.t
t/originating_ip_hdr.t
+t/phishing.t
t/plugin.t
t/plugin_file.t
t/plugin_priorities.t
@@ -514,8 +520,8 @@ t/recips.t
t/recreate.t
t/recursion.t
t/regexp_valid.t
-t/relaycountry.t
t/relative_scores.t
+t/relaycountry.t
t/report_safe.t
t/reportheader.t
t/reportheader_8bit.t
@@ -537,8 +543,6 @@ t/rule_types.t
t/sa_awl.t
t/sa_check_spamd.t
t/sa_compile.t
-t/freemail_welcome_block.t
-t/spf_welcome_block.t
t/sha1.t
t/shortcircuit.t
t/shortcircuit_before_dns.t
@@ -547,6 +551,7 @@ t/spamc.t
t/spamc_B.t
t/spamc_E.t
t/spamc_H.t
+t/spamc_bug6176.t
t/spamc_c.t
t/spamc_c_stdout_closed.t
t/spamc_cf.t
@@ -587,9 +592,10 @@ t/spamd_unix.t
t/spamd_unix_and_tcp.t
t/spamd_user_rules_leak.t
t/spamd_utf8.t
-t/spamd_whitelist_leak.t
t/spamd_welcomelist_leak.t
+t/spamd_whitelist_leak.t
t/spf.t
+t/spf_welcome_block.t
t/sql_based_whitelist.t
t/stop_always_matching_regexps.t
t/strip2.t
@@ -597,29 +603,28 @@ t/strip_no_subject.t
t/stripmarkup.t
t/tainted_msg.t
t/test_dir
+t/testrules.yml
t/text_bad_ctype.t
t/timeout.t
t/trust_path.t
t/uri.t
t/uri_html.t
t/uri_list.t
+t/uri_saferedirect.t
t/uri_text.t
t/uribl.t
+t/uribl_all_types.t
+t/uribl_domains_only.t
+t/uribl_ips_only.t
t/urilocalbl.t
t/utf8.t
t/util_wrap.t
+t/welcomelist_from.t
+t/welcomelist_to.t
t/whitelist_addrs.t
t/whitelist_from.t
t/whitelist_subject.t
t/whitelist_to.t
-t/zz_cleanup.t
-t/spamc_bug6176.t
-t/data/spam/dnsbl_domsonly.eml
-t/uribl_domains_only.t
-t/data/spam/dnsbl_ipsonly.eml
-t/uribl_all_types.t
-t/uribl_ips_only.t
-t/dnsbl_subtests.t
powered_by/128-powered-by-spamassassin.png
powered_by/256-powered-by-spamassassin.png
powered_by/512-powered-by-spamassassin.png
Modified: spamassassin/trunk/t/SATest.pm
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/SATest.pm?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/SATest.pm (original)
+++ spamassassin/trunk/t/SATest.pm Mon Apr 12 07:43:12 2021
@@ -12,6 +12,7 @@ use File::Basename;
use File::Copy;
use File::Path;
use File::Spec;
+use File::Temp qw(tempdir);
use Test::Builder ();
use Test::More ();
@@ -21,7 +22,9 @@ use POSIX qw(WIFEXITED WIFSIGNALED WIFST
use vars qw($RUNNING_ON_WINDOWS $SSL_AVAILABLE
$SKIP_SPAMD_TESTS $SKIP_SPAMC_TESTS $NO_SPAMC_EXE
$SKIP_SETUID_NOBODY_TESTS $SKIP_DNSBL_TESTS
- $have_inet4 $have_inet6 $spamdhost $spamdport);
+ $have_inet4 $have_inet6 $spamdhost $spamdport
+ $workdir $siterules $localrules $userrules $userstate
+ $keep_workdir $mainpid);
BEGIN {
require Exporter;
@@ -72,6 +75,7 @@ BEGIN {
#
sub sa_t_init {
my $tname = shift;
+ $mainpid = $$;
if ($config{PERL_PATH}) {
$perl_path = $config{PERL_PATH};
@@ -124,8 +128,6 @@ sub sa_t_init {
}
$spamdhost = $ENV{'SPAMD_HOST'};
$spamdhost ||= $spamdlocalhost;
- $spamdport = $ENV{'SPAMD_PORT'};
- $spamdport ||= probably_unused_spamd_port();
# optimisation -- don't setup spamd test parameters unless we're
# not skipping all spamd tests and this particular test is called
@@ -133,27 +135,66 @@ sub sa_t_init {
# We still run spamc tests when there is an external SPAMD_HOST, but don't have to set up the spamd parameters for it
if ($SKIP_SPAMD_TESTS or ($tname !~ /spam[cd]/)) {
$NO_SPAMD_REQUIRED = 1;
+ } else {
+ $spamdport = $ENV{'SPAMD_PORT'};
+ $spamdport ||= probably_unused_spamd_port();
}
- $spamd_cf_args = "-C log/test_rules_copy";
- $spamd_localrules_args = " --siteconfigpath log/localrules.tmp";
- $scr_localrules_args = " --siteconfigpath log/localrules.tmp";
- $salearn_localrules_args = " --siteconfigpath log/localrules.tmp";
-
- $scr_cf_args = "-C log/test_rules_copy";
- $scr_pref_args = "-p log/test_default.cf";
- $salearn_cf_args = "-C log/test_rules_copy";
- $salearn_pref_args = "-p log/test_default.cf";
+ (-f "t/test_dir") && chdir("t"); # run from ..
+ -f "test_dir" or die "FATAL: not in test directory?\n";
+
+ unless (-d "log") {
+ mkdir ("log", 0755) or die ("Error creating log dir: $!");
+ }
+ chmod (0755, "log"); # set in case log already exists with wrong permissions
+
+ if (!$RUNNING_ON_WINDOWS) {
+ untaint_system("chacl -B log 2>/dev/null || setfacl -b log 2>/dev/null"); # remove acls that confuse test
+ }
+
+ # clean old workdir if sa_t_init called multiple times
+ if (defined $workdir) {
+ if (!$keep_workdir) {
+ rmtree($workdir);
+ }
+ }
+
+ # individual work directory to make parallel tests possible
+ $workdir = tempdir("$tname.XXXXXX", DIR => "log");
+ die "FATAL: failed to create workdir: $!" unless -d $workdir;
+ $keep_workdir = 0;
+ # $siterules contains all stock *.pre files
+ $siterules = "$workdir/siterules";
+ # $localrules contains all stock *.cf files
+ $localrules = "$workdir/localrules";
+ # $userrules contains user rules
+ $userrules = "$workdir/user.cf";
+ # user_state directory
+ $userstate = "$workdir/user_state";
+
+ mkdir($siterules) or die "FATAL: failed to create $siterules\n";
+ mkdir($localrules) or die "FATAL: failed to create $localrules\n";
+ open(OUT, ">$userrules") or die "FATAL: failed to create $userrules\n";
+ close(OUT);
+ mkdir($userstate) or die "FATAL: failed to create $userstate\n";
+
+ $spamd_cf_args = "-C $localrules";
+ $spamd_localrules_args = " --siteconfigpath $siterules";
+ $scr_localrules_args = " --siteconfigpath $siterules";
+ $salearn_localrules_args = " --siteconfigpath $siterules";
+
+ $scr_cf_args = "-C $localrules";
+ $scr_pref_args = "-p $userrules";
+ $salearn_cf_args = "-C $localrules";
+ $salearn_pref_args = "-p $userrules";
$scr_test_args = "";
$salearn_test_args = "";
- $set_test_prefs = 0;
+ $set_user_prefs = 0;
$default_cf_lines = "
- bayes_path ./log/user_state/bayes
- auto_whitelist_path ./log/user_state/auto-whitelist
+ bayes_path ./$userstate/bayes
+ auto_whitelist_path ./$userstate/auto-whitelist
";
- (-f "t/test_dir") && chdir("t"); # run from ..
-
read_config();
# if running as root, ensure "nobody" can write to it too
@@ -179,66 +220,34 @@ sub sa_t_init {
(untaint_cmd("$spamc -V") =~ /with SSL support/) &&
(untaint_cmd("$spamd --version") =~ /with SSL support/));
}
- # do not remove prior test results!
- # rmtree ("log");
-
- unless (-d "log") {
- mkdir ("log", 0755) or die ("Error creating log dir: $!");
- }
- chmod (0755, "log"); # set in case log already exists with wrong permissions
- if (!$RUNNING_ON_WINDOWS) {
- untaint_system("chacl -B log 2>/dev/null || setfacl -b log 2>/dev/null"); # remove acls that confuse test
- }
-
- rmtree ("log/user_state");
- rmtree ("log/outputdir.tmp");
-
- rmtree ("log/test_rules_copy");
- mkdir ("log/test_rules_copy", 0755);
-
- for $tainted (<../rules/*.cf>, <../rules/*.pm>, <../rules/*.pre>, <../rules/languages>) {
+ for $tainted (<../rules/*.pm>, <../rules/*.pre>, <../rules/languages>) {
$tainted =~ /(.*)/;
my $file = $1;
$base = basename $file;
- copy ($file, "log/test_rules_copy/$base")
- or warn "cannot copy $file to log/test_rules_copy/$base: $!";
+ copy ($file, "$siterules/$base")
+ or warn "cannot copy $file to $siterules/$base: $!";
}
- copy ("data/01_test_rules.pre", "log/test_rules_copy/01_test_rules.pre")
- or warn "cannot copy data/01_test_rules.cf to log/test_rules_copy/01_test_rules.pre: $!";
- copy ("data/01_test_rules.cf", "log/test_rules_copy/01_test_rules.cf")
- or warn "cannot copy data/01_test_rules.cf to log/test_rules_copy/01_test_rules.cf: $!";
-
- rmtree ("log/localrules.tmp");
- mkdir ("log/localrules.tmp", 0755);
-
- for $tainted (<../rules/*.pm>, <../rules/*.pre>, <../rules/languages>) {
+ for $tainted (<../rules/*.cf>) {
$tainted =~ /(.*)/;
my $file = $1;
$base = basename $file;
- copy ($file, "log/localrules.tmp/$base")
- or warn "cannot copy $file to log/localrules.tmp/$base: $!";
+ copy ($file, "$localrules/$base")
+ or warn "cannot copy $file to $localrules/$base: $!";
}
- copy ("../rules/user_prefs.template", "log/test_rules_copy/99_test_default.cf")
- or die "user prefs copy failed: $!";
+ copy ("data/01_test_rules.pre", "$localrules/01_test_rules.pre")
+ or warn "cannot copy data/01_test_rules.cf to $localrules/01_test_rules.pre: $!";
+ copy ("data/01_test_rules.cf", "$localrules/01_test_rules.cf")
+ or warn "cannot copy data/01_test_rules.cf to $localrules/01_test_rules.cf: $!";
- open (PREFS, ">>log/test_rules_copy/99_test_default.cf")
- or die "cannot append to log/test_rules_copy/99_test_default.cf: $!";
+ open (PREFS, ">>$localrules/99_test_default.cf")
+ or die "cannot append to $localrules/99_test_default.cf: $!";
print PREFS $default_cf_lines
- or die "error writing to log/test_rules_copy/99_test_default.cf: $!";
- close PREFS
- or die "error closing log/test_rules_copy/99_test_default.cf: $!";
-
- # create an empty .prefs file
- open (PREFS, ">>log/test_default.cf")
- or die "cannot append to log/test_default.cf: $!";
+ or die "error writing to $localrules/99_test_default.cf: $!";
close PREFS
- or die "error closing log/test_default.cf: $!";
-
- mkdir("log/user_state",$tmp_dir_mode);
- chmod ($tmp_dir_mode, "log/user_state"); # unaffected by umask
+ or die "error closing $localrules/99_test_default.cf: $!";
$home = $ENV{'HOME'};
$home ||= $ENV{'WINDIR'} if (defined $ENV{'WINDIR'});
@@ -250,7 +259,7 @@ sub sa_t_init {
$spamd_run_as_user = ($RUNNING_ON_WINDOWS || ($> == 0)) ? "nobody" : (getpwuid($>))[0] ;
}
-# a port number between 32768 and 65535; used to allow multiple test
+# a port number between 40000 and 65520; used to allow multiple test
# suite runs on the same machine simultaneously
sub probably_unused_spamd_port {
return 0 if $NO_SPAMD_REQUIRED;
@@ -263,11 +272,9 @@ sub probably_unused_spamd_port {
@nstat = grep(/^\s*tcp/i, <NSTAT>);
close(NSTAT);
}
- my $delta = ($$ % 32768) || int(rand(32768));
- for (1..10) {
- $port = 32768 + $delta;
+ for (1..20) {
+ $port = 40000 + int(rand(65500-40000));
last unless (getservbyport($port, "tcp") || grep(/[:.]$port\s/, @nstat));
- $delta = int(rand(32768));
}
return $port;
}
@@ -291,31 +298,35 @@ sub sa_t_finish {
sub tstfile {
my $file = shift;
- open (OUT, ">log/mail.txt") or die;
+ open (OUT, ">$workdir/mail.txt") or die;
print OUT $file; close OUT;
}
-sub tstlocalrules {
+sub tstprefs {
my $lines = shift;
- $set_local_rules = 1;
+ open (OUT, ">$localrules/99_test_prefs.cf") or die;
+ print OUT $lines; close OUT;
+}
+
+sub tstlocalrules {
+ my $lines = shift;
- open (OUT, ">log/localrules.tmp/00test.cf") or die;
+ open (OUT, ">$localrules/99_test_rules.cf") or die;
print OUT $lines; close OUT;
}
-sub tstprefs {
+sub tstuserprefs {
my $lines = shift;
- $set_test_prefs = 1;
+ $set_user_prefs = 1;
# TODO: should we use -p, or modify the test_rules_copy/99_test_default.cf?
# for now, I'm taking the -p route, since we have to be able to test
# the operation of user-prefs in general, itself.
- open (OUT, ">log/tst.cf") or die;
+ open (OUT, ">$userrules") or die;
print OUT $lines; close OUT;
- $scr_pref_args = "-p log/tst.cf";
}
# creates a .pre file in the localrules dir to be parsed alongside init.pre
@@ -324,7 +335,7 @@ sub tstprefs {
sub tstpre {
my $lines = shift;
- open (OUT, ">log/localrules.tmp/zz_tst.pre") or die;
+ open (OUT, ">$siterules/zz_test.pre") or die;
print OUT $lines; close OUT;
}
@@ -355,14 +366,14 @@ sub sarun {
my $scrargs = "$scr $args";
$scrargs =~ s!/!\\!g if ($^O =~ /^MS(DOS|Win)/i);
print ("\t$scrargs\n");
- (-d "log/d.$testname") or mkdir ("log/d.$testname", 0755);
+ (-d "$workdir/d.$testname") or mkdir ("$workdir/d.$testname", 0755);
my $test_number = test_number();
-
- untaint_system("$scrargs > log/d.$testname/$test_number $post_redir");
+#print STDERR "RUN: $scrargs\n";
+ untaint_system("$scrargs > $workdir/d.$testname/$test_number $post_redir");
$sa_exitcode = ($?>>8);
if ($sa_exitcode != 0) { return undef; }
- &checkfile ("d.$testname/$test_number", $read_sub) if (defined $read_sub);
+ &checkfile ("$workdir/d.$testname/$test_number", $read_sub) if (defined $read_sub);
1;
}
@@ -392,14 +403,14 @@ sub salearnrun {
my $salearnargs = "$salearn $args";
$salearnargs =~ s!/!\\!g if ($^O =~ /^MS(DOS|Win)/i);
print ("\t$salearnargs\n");
- (-d "log/d.$testname") or mkdir ("log/d.$testname", 0755);
+ (-d "$workdir/d.$testname") or mkdir ("$workdir/d.$testname", 0755);
my $test_number = test_number();
- untaint_system("$salearnargs > log/d.$testname/$test_number");
+ untaint_system("$salearnargs > $workdir/d.$testname/$test_number");
$salearn_exitcode = ($?>>8);
if ($salearn_exitcode != 0) { return undef; }
- &checkfile ("d.$testname/$test_number", $read_sub) if (defined $read_sub);
+ &checkfile ("$workdir/d.$testname/$test_number", $read_sub) if (defined $read_sub);
1;
}
@@ -451,14 +462,14 @@ sub spamcrun {
$spamcargs =~ s!/!\\!g if ($^O =~ /^MS(DOS|Win)/i);
print ("\t$spamcargs\n");
- (-d "log/d.$testname") or mkdir ("log/d.$testname", 0755);
+ (-d "$workdir/d.$testname") or mkdir ("$workdir/d.$testname", 0755);
my $test_number = test_number();
if ($capture_stderr) {
- untaint_system ("$spamcargs > log/d.$testname/out.$test_number 2>&1");
+ untaint_system ("$spamcargs > $workdir/d.$testname/out.$test_number 2>&1");
} else {
- untaint_system ("$spamcargs > log/d.$testname/out.$test_number");
+ untaint_system ("$spamcargs > $workdir/d.$testname/out.$test_number");
}
$sa_exitcode = ($?>>8);
@@ -468,7 +479,7 @@ sub spamcrun {
%found = ();
%found_anti = ();
- &checkfile ("d.$testname/out.$test_number", $read_sub) if (defined $read_sub);
+ &checkfile ("$workdir/d.$testname/out.$test_number", $read_sub) if (defined $read_sub);
if ($expect_failure) {
($sa_exitcode != 0);
@@ -497,10 +508,10 @@ sub spamcrun_background {
$spamcargs =~ s!/!\\!g if ($^O =~ /^MS(DOS|Win)/i);
print ("\t$spamcargs &\n");
- (-d "log/d.$testname") or mkdir ("log/d.$testname", 0755);
+ (-d "$workdir/d.$testname") or mkdir ("$workdir/d.$testname", 0755);
my $test_number = test_number();
- untaint_system ("$spamcargs > log/d.$testname/bg.$test_number &") and return 0;
+ untaint_system ("$spamcargs > $workdir/d.$testname/bg.$test_number &") and return 0;
1;
}
@@ -518,9 +529,9 @@ sub sdrun {
}
sub recreate_outputdir_tmp {
- rmtree ("log/outputdir.tmp"); # some tests use this
- mkdir ("log/outputdir.tmp", $tmp_dir_mode);
- chmod ($tmp_dir_mode, "log/outputdir.tmp"); # unaffected by umask
+ rmtree ("$workdir/outputdir.tmp"); # some tests use this
+ mkdir ("$workdir/outputdir.tmp", $tmp_dir_mode);
+ chmod ($tmp_dir_mode, "$workdir/outputdir.tmp"); # unaffected by umask
}
# out: $spamd_stderr
@@ -571,13 +582,13 @@ sub start_spamd {
warn "oops! SATest.pm: a test prefs file was created, but spamd isn't reading it\n";
}
- (-d "log/d.$testname") or mkdir ("log/d.$testname", 0755);
+ (-d "$workdir/d.$testname") or mkdir ("$workdir/d.$testname", 0755);
my $test_number = test_number();
- my $spamd_stdout = "log/d.$testname/spamd.out.$test_number";
- $spamd_stderr = "log/d.$testname/spamd.err.$test_number"; # global
- my $spamd_stdlog = "log/d.$testname/spamd.log.$test_number";
- my $spamd_pidfile = "log/spamd.pid";
+ my $spamd_stdout = "$workdir/d.$testname/spamd.out.$test_number";
+ $spamd_stderr = "$workdir/d.$testname/spamd.err.$test_number"; # global
+ my $spamd_stdlog = "$workdir/d.$testname/spamd.log.$test_number";
+ my $spamd_pidfile = "$workdir/spamd.pid";
my $spamd_forker = $ENV{'SPAMD_FORKER'} ?
$ENV{'SPAMD_FORKER'} :
$RUNNING_ON_WINDOWS ?
@@ -599,7 +610,7 @@ sub start_spamd {
# DEBUG instrumentation to trace spamd processes. See bug 5731 for history
# if (-f "/home/jm/capture_spamd_straces") {
- # $spamd_cmd = "strace -ttt -fo log/d.$testname/spamd.strace.$test_number $spamd_cmd";
+ # $spamd_cmd = "strace -ttt -fo $workdir/d.$testname/spamd.strace.$test_number $spamd_cmd";
# }
unlink ($spamd_stdout, $spamd_stderr, $spamd_stdlog, $spamd_pidfile);
@@ -688,10 +699,10 @@ sub create_saobj {
# YUCK, these file/dir names should be some sort of variable, at
# least we keep their definition in the same file for the moment.
- my %setup_args = ( rules_filename => 'log/test_rules_copy',
- site_rules_filename => 'log/localrules.tmp',
- userprefs_filename => 'log/test_default.cf',
- userstate_dir => 'log/user_state',
+ my %setup_args = ( rules_filename => $localrules,
+ site_rules_filename => $siterules,
+ userprefs_filename => $userrules,
+ userstate_dir => $userstate,
local_tests_only => 1,
# debug => 'all',
);
@@ -727,15 +738,11 @@ sub checkfile {
my $read_sub = shift;
# print "Checking $filename\n";
- if (!open (IN, "< log/$filename")) {
- # could be it already contains the "log/" prefix?
- if (!open (IN, "< $filename")) {
- warn "cannot open log/$filename or $filename"; return undef;
- } else {
- push @files_checked, "$filename";
- }
+ if (!open (IN, "< $filename")) {
+ warn "cannot open $filename";
+ return undef;
} else {
- push @files_checked, "log/$filename";
+ push @files_checked, "$filename";
}
&$read_sub();
close IN;
@@ -808,6 +815,7 @@ sub ok_all_patterns {
} else {
warn "\tNot found: $type = $pat at $file line $line.\n";
if (!$dont_ok) {
+ $keep_workdir = 1;
ok (0); # keep the right # of tests
}
$wasfailure++;
@@ -830,6 +838,7 @@ sub ok_all_patterns {
if ($wasfailure) {
warn "Output can be examined in: ".
join(' ', @files_checked)."\n" if @files_checked;
+ $keep_workdir = 1;
return 0;
} else {
return 1;
@@ -940,7 +949,7 @@ sub conf_bool {
sub mk_safe_tmpdir {
return $safe_tmpdir if defined($safe_tmpdir);
- my $dir = File::Spec->tmpdir() || 'log';
+ my $dir = $workdir || File::Spec->tmpdir();
# be a little paranoid, since we're using a public tmp dir and
# are exposed to race conditions
@@ -1157,4 +1166,11 @@ sub untaint_cmd {
}
}
+END {
+ # Cleanup workdir (but not if inside forked process)
+ if (defined $workdir && !$keep_workdir && $$ == $mainpid) {
+ rmtree($workdir);
+ }
+}
+
1;
Modified: spamassassin/trunk/t/all_modules.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/all_modules.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/all_modules.t (original)
+++ spamassassin/trunk/t/all_modules.t Mon Apr 12 07:43:12 2021
@@ -1,12 +1,10 @@
#!/usr/bin/perl -T
-use lib '.';
-use lib 't';
-use SATest;
-sa_t_init("all_modules");
+use lib '.'; use lib 't';
+use SATest; sa_t_init("all_modules");
use Test::More;
-plan tests => 5;
+plan tests => 6;
# ---------------------------------------------------------------------------
@@ -17,59 +15,65 @@ if (eval { require BSD::Resource; }) {
}
tstpre ("
-loadplugin Mail::SpamAssassin::Plugin::RelayCountry
-loadplugin Mail::SpamAssassin::Plugin::URIDNSBL
-loadplugin Mail::SpamAssassin::Plugin::SPF
-loadplugin Mail::SpamAssassin::Plugin::DCC
-loadplugin Mail::SpamAssassin::Plugin::Pyzor
-loadplugin Mail::SpamAssassin::Plugin::Razor2
-loadplugin Mail::SpamAssassin::Plugin::SpamCop
-loadplugin Mail::SpamAssassin::Plugin::AntiVirus
-loadplugin Mail::SpamAssassin::Plugin::AWL
-loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
-# TODO fix finding languages file..
-#loadplugin Mail::SpamAssassin::Plugin::TextCat
-loadplugin Mail::SpamAssassin::Plugin::AccessDB
-loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
-loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
-loadplugin Mail::SpamAssassin::Plugin::ReplaceTags
-loadplugin Mail::SpamAssassin::Plugin::DKIM
-loadplugin Mail::SpamAssassin::Plugin::Check
-loadplugin Mail::SpamAssassin::Plugin::HTTPSMismatch
-loadplugin Mail::SpamAssassin::Plugin::URIDetail
-loadplugin Mail::SpamAssassin::Plugin::Shortcircuit
-loadplugin Mail::SpamAssassin::Plugin::Bayes
-loadplugin Mail::SpamAssassin::Plugin::BodyEval
-loadplugin Mail::SpamAssassin::Plugin::DNSEval
-loadplugin Mail::SpamAssassin::Plugin::HTMLEval
-loadplugin Mail::SpamAssassin::Plugin::HeaderEval
-loadplugin Mail::SpamAssassin::Plugin::MIMEEval
-loadplugin Mail::SpamAssassin::Plugin::RelayEval
-loadplugin Mail::SpamAssassin::Plugin::URIEval
-loadplugin Mail::SpamAssassin::Plugin::WLBLEval
-loadplugin Mail::SpamAssassin::Plugin::VBounce
-loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody
-loadplugin Mail::SpamAssassin::Plugin::ASN
-loadplugin Mail::SpamAssassin::Plugin::ImageInfo
-loadplugin Mail::SpamAssassin::Plugin::PhishTag
-loadplugin Mail::SpamAssassin::Plugin::FreeMail
-loadplugin Mail::SpamAssassin::Plugin::AskDNS
-loadplugin Mail::SpamAssassin::Plugin::TxRep
-loadplugin Mail::SpamAssassin::Plugin::URILocalBL
-loadplugin Mail::SpamAssassin::Plugin::PDFInfo
-loadplugin Mail::SpamAssassin::Plugin::HashBL
-loadplugin Mail::SpamAssassin::Plugin::FromNameSpoof
-loadplugin Mail::SpamAssassin::Plugin::Phishing
-loadplugin Mail::SpamAssassin::Plugin::AuthRes
-loadplugin Mail::SpamAssassin::Plugin::ExtractText
-$plugins
+ loadplugin Mail::SpamAssassin::Plugin::RelayCountry
+ loadplugin Mail::SpamAssassin::Plugin::URIDNSBL
+ loadplugin Mail::SpamAssassin::Plugin::SPF
+ loadplugin Mail::SpamAssassin::Plugin::DCC
+ loadplugin Mail::SpamAssassin::Plugin::Pyzor
+ loadplugin Mail::SpamAssassin::Plugin::Razor2
+ loadplugin Mail::SpamAssassin::Plugin::SpamCop
+ loadplugin Mail::SpamAssassin::Plugin::AntiVirus
+ loadplugin Mail::SpamAssassin::Plugin::AWL
+ loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
+ loadplugin Mail::SpamAssassin::Plugin::TextCat
+ loadplugin Mail::SpamAssassin::Plugin::AccessDB
+ loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
+ loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
+ loadplugin Mail::SpamAssassin::Plugin::ReplaceTags
+ loadplugin Mail::SpamAssassin::Plugin::DKIM
+ loadplugin Mail::SpamAssassin::Plugin::Check
+ loadplugin Mail::SpamAssassin::Plugin::HTTPSMismatch
+ loadplugin Mail::SpamAssassin::Plugin::URIDetail
+ loadplugin Mail::SpamAssassin::Plugin::Shortcircuit
+ loadplugin Mail::SpamAssassin::Plugin::Bayes
+ loadplugin Mail::SpamAssassin::Plugin::BodyEval
+ loadplugin Mail::SpamAssassin::Plugin::DNSEval
+ loadplugin Mail::SpamAssassin::Plugin::HTMLEval
+ loadplugin Mail::SpamAssassin::Plugin::HeaderEval
+ loadplugin Mail::SpamAssassin::Plugin::MIMEEval
+ loadplugin Mail::SpamAssassin::Plugin::RelayEval
+ loadplugin Mail::SpamAssassin::Plugin::URIEval
+ loadplugin Mail::SpamAssassin::Plugin::WLBLEval
+ loadplugin Mail::SpamAssassin::Plugin::VBounce
+ loadplugin Mail::SpamAssassin::Plugin::Rule2XSBody
+ loadplugin Mail::SpamAssassin::Plugin::ASN
+ loadplugin Mail::SpamAssassin::Plugin::ImageInfo
+ loadplugin Mail::SpamAssassin::Plugin::PhishTag
+ loadplugin Mail::SpamAssassin::Plugin::FreeMail
+ loadplugin Mail::SpamAssassin::Plugin::AskDNS
+ loadplugin Mail::SpamAssassin::Plugin::TxRep
+ loadplugin Mail::SpamAssassin::Plugin::URILocalBL
+ loadplugin Mail::SpamAssassin::Plugin::PDFInfo
+ loadplugin Mail::SpamAssassin::Plugin::HashBL
+ loadplugin Mail::SpamAssassin::Plugin::FromNameSpoof
+ loadplugin Mail::SpamAssassin::Plugin::Phishing
+ loadplugin Mail::SpamAssassin::Plugin::AuthRes
+ loadplugin Mail::SpamAssassin::Plugin::Esp
+ loadplugin Mail::SpamAssassin::Plugin::ExtractText
+ $plugins
");
tstprefs("
-use_razor2 1
-use_dcc 1
-use_pyzor 1
-use_bayes 1
+ use_bayes 1
+ spf_timeout 2
+ use_razor2 1
+ razor_timeout 2
+ razor_fork 1
+ use_dcc 1
+ dcc_timeout 2
+ use_pyzor 1
+ pyzor_timeout 2
+ pyzor_fork 1
");
%patterns = (
@@ -81,6 +85,7 @@ use_bayes 1
q{ Syntax error }, 'syntax',
q{ Use of uninitialized }, 'uninitialized',
q{ warn: }, 'warn',
+ q{ SpamAssassin failed to parse line }, 'parse',
);
if (conf_bool('run_net_tests')) {
Added: spamassassin/trunk/t/askdns.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/askdns.t?rev=1888649&view=auto
==============================================================================
--- spamassassin/trunk/t/askdns.t (added)
+++ spamassassin/trunk/t/askdns.t Mon Apr 12 07:43:12 2021
@@ -0,0 +1,57 @@
+#!/usr/bin/perl -T
+
+use lib '.'; use lib 't';
+use SATest; sa_t_init("askdns");
+
+use constant HAS_DKIM_VERIFIER => eval {
+ require Mail::DKIM::Verifier;
+ version->parse(Mail::DKIM::Verifier->VERSION) >= version->parse(0.31);
+};
+
+use Test::More;
+plan skip_all => "Net tests disabled" unless conf_bool('run_net_tests');
+plan skip_all => "Can't use Net::DNS Safely" unless can_use_net_dns_safely();
+
+my $tests = 4;
+$tests += 3 if (HAS_DKIM_VERIFIER);
+
+plan tests => $tests;
+
+# ---------------------------------------------------------------------------
+
+#
+# some DKIM stuff
+#
+
+if (HAS_DKIM_VERIFIER) {
+ tstlocalrules(q{
+ askdns ASKDNS_DKIM_AUTHORDOMAIN _AUTHORDOMAIN_.askdnstest.spamassassin.org. A /^127\.0\.0\.8$/
+ askdns ASKDNS_DKIM_DKIMDOMAIN _DKIMDOMAIN_.askdnstest.spamassassin.org. A /^127\.0\.0\.8$/
+ # Bug 7897 - test that meta rules depending on net rules hit
+ meta ASKDNS_META_AUTHORDOMAIN ASKDNS_DKIM_AUTHORDOMAIN
+ });
+ %patterns = (
+ q{ ASKDNS_DKIM_AUTHORDOMAIN } => 'ASKDNS_DKIM_AUTHORDOMAIN',
+ q{ ASKDNS_DKIM_DKIMDOMAIN } => 'ASKDNS_DKIM_DKIMDOMAIN',
+ q{ ASKDNS_META_AUTHORDOMAIN } => 'ASKDNS_META_AUTHORDOMAIN',
+ );
+ ok sarun ("-t < data/dkim/test-pass-01.msg 2>&1", \&patterns_run_cb);
+ ok_all_patterns();
+ clear_pattern_counters();
+}
+
+#
+# TXT
+#
+
+tstlocalrules(q{
+ askdns ASKDNS_TXT_SPF spamassassin.org TXT /^v=spf1 -all$/
+});
+%patterns = (
+ q{ ASKDNS_TXT_SPF } => 'ASKDNS_TXT_SPF',
+ '[spamassassin.org TXT:v=spf1 -all]' => 'ASKDNS_TXT_SPF_LOG',
+);
+ok sarun ("-t -D < data/nice/001 2>&1", \&patterns_run_cb);
+ok_all_patterns();
+clear_pattern_counters();
+
Propchange: spamassassin/trunk/t/askdns.t
------------------------------------------------------------------------------
svn:executable = *
Modified: spamassassin/trunk/t/authres.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/authres.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/authres.t (original)
+++ spamassassin/trunk/t/authres.t Mon Apr 12 07:43:12 2021
@@ -1,9 +1,7 @@
#!/usr/bin/perl -T
-use lib '.';
-use lib 't';
-use SATest;
-sa_t_init("authres");
+use lib '.'; use lib 't';
+use SATest; sa_t_init("authres");
use Test::More;
plan tests => 44;
@@ -17,11 +15,11 @@ loadplugin Mail::SpamAssassin::Plugin::A
## with internal networks
tstprefs("
-clear_internal_networks
-clear_trusted_networks
-internal_networks 212.17.35.15
-trusted_networks 212.17.35.15
-trusted_networks 141.154.95.22
+ clear_internal_networks
+ clear_trusted_networks
+ internal_networks 212.17.35.15
+ trusted_networks 212.17.35.15
+ trusted_networks 141.154.95.22
");
%patterns = (
@@ -48,13 +46,13 @@ ok_all_patterns();
## with trusted networks included
tstprefs("
-clear_internal_networks
-clear_trusted_networks
-internal_networks 212.17.35.15
-trusted_networks 212.17.35.15
-trusted_networks 141.154.95.22
+ clear_internal_networks
+ clear_trusted_networks
+ internal_networks 212.17.35.15
+ trusted_networks 212.17.35.15
+ trusted_networks 141.154.95.22
-authres_networks trusted
+ authres_networks trusted
");
%patterns = (
@@ -81,14 +79,14 @@ ok_all_patterns();
## with all networks (test ignore also)
tstprefs("
-clear_internal_networks
-clear_trusted_networks
-internal_networks 212.17.35.15
-trusted_networks 212.17.35.15
-trusted_networks 141.154.95.22
+ clear_internal_networks
+ clear_trusted_networks
+ internal_networks 212.17.35.15
+ trusted_networks 212.17.35.15
+ trusted_networks 141.154.95.22
-authres_networks all
-authres_ignored_authserv authrestest3int authrestest4int
+ authres_networks all
+ authres_ignored_authserv authrestest3int authrestest4int
");
%patterns = (
@@ -115,14 +113,14 @@ ok_all_patterns();
## with all networks (test trusted also)
tstprefs("
-clear_internal_networks
-clear_trusted_networks
-internal_networks 212.17.35.15
-trusted_networks 212.17.35.15
-trusted_networks 141.154.95.22
+ clear_internal_networks
+ clear_trusted_networks
+ internal_networks 212.17.35.15
+ trusted_networks 212.17.35.15
+ trusted_networks 141.154.95.22
-authres_networks all
-authres_trusted_authserv authrestest6int
+ authres_networks all
+ authres_trusted_authserv authrestest6int
");
%patterns = (
Modified: spamassassin/trunk/t/autolearn.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/autolearn.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/autolearn.t (original)
+++ spamassassin/trunk/t/autolearn.t Mon Apr 12 07:43:12 2021
@@ -13,15 +13,13 @@ plan tests => 2;
# ---------------------------------------------------------------------------
%patterns = (
-
-q{ autolearn=spam } => 'autolearned as spam'
-
+ q{ autolearn=spam } => 'autolearned as spam'
);
%anti_patterns = (
);
-tstprefs ('
+tstprefs ("
body AUTOLEARNTEST_BODY /EVOLUTION PREVIEW RELEASE/
score AUTOLEARNTEST_BODY 1.5
@@ -45,7 +43,8 @@ use_bayes 1
bayes_auto_learn 1
bayes_auto_learn_threshold_spam 6.0
-');
+");
ok (sarun ("-L -t < data/nice/001", \&patterns_run_cb));
ok_all_patterns();
+
Modified: spamassassin/trunk/t/autolearn_force.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/autolearn_force.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/autolearn_force.t (original)
+++ spamassassin/trunk/t/autolearn_force.t Mon Apr 12 07:43:12 2021
@@ -13,15 +13,13 @@ plan tests => 2;
# ---------------------------------------------------------------------------
%patterns = (
-
-q{ autolearn=spam autolearn_force=yes } => 'autolearned as spam with autolearn_force'
-
+ q{ autolearn=spam autolearn_force=yes } => 'autolearned as spam with autolearn_force'
);
%anti_patterns = (
);
-tstprefs ('
+tstprefs ("
body AUTOLEARNTEST_BODY /EVOLUTION PREVIEW RELEASE/
score AUTOLEARNTEST_BODY 7.0
@@ -31,7 +29,8 @@ use_bayes 1
bayes_auto_learn 1
bayes_auto_learn_threshold_spam 6.0
-');
+");
ok (sarun ("-L -t < data/nice/001", \&patterns_run_cb));
ok_all_patterns();
+
Modified: spamassassin/trunk/t/autolearn_force_fail.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/autolearn_force_fail.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/autolearn_force_fail.t (original)
+++ spamassassin/trunk/t/autolearn_force_fail.t Mon Apr 12 07:43:12 2021
@@ -13,14 +13,14 @@ plan tests => 3;
# ---------------------------------------------------------------------------
%patterns = (
-q{ autolearn=no } => 'autolearn no',
+ q{ autolearn=no } => 'autolearn no',
);
%anti_patterns = (
-q{ autolearn=spam } => 'autolearned as spam',
+ q{ autolearn=spam } => 'autolearned as spam',
);
-tstprefs ('
+tstprefs ("
header AUTOLEARNTEST_FROM_HEADER From =~ /@/
score AUTOLEARNTEST_FROM_HEADER 13.0
@@ -30,7 +30,7 @@ use_bayes 1
bayes_auto_learn 1
bayes_auto_learn_threshold_spam 12.0
-');
+");
ok (sarun ("-L -t < data/nice/001", \&patterns_run_cb));
ok_all_patterns();
Modified: spamassassin/trunk/t/basic_lint.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/basic_lint.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/basic_lint.t (original)
+++ spamassassin/trunk/t/basic_lint.t Mon Apr 12 07:43:12 2021
@@ -7,9 +7,7 @@ use Test::More tests => 1;
# ---------------------------------------------------------------------------
%patterns = (
-
-q{ }, 'anything',
-
+ q{ }, 'anything',
);
# override locale for this test!
@@ -17,3 +15,4 @@ $ENV{'LANGUAGE'} = $ENV{'LC_ALL'} = 'C';
sarun ("-L --lint", \&patterns_run_cb);
ok_all_patterns();
+
Added: spamassassin/trunk/t/basic_lint_net.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/basic_lint_net.t?rev=1888649&view=auto
==============================================================================
--- spamassassin/trunk/t/basic_lint_net.t (added)
+++ spamassassin/trunk/t/basic_lint_net.t Mon Apr 12 07:43:12 2021
@@ -0,0 +1,22 @@
+#!/usr/bin/perl -T
+
+use lib '.'; use lib 't';
+use SATest; sa_t_init("basic_lint_net");
+use Test::More;
+
+plan skip_all => "Net tests disabled" unless conf_bool('run_net_tests');
+
+plan tests => 1;
+
+# ---------------------------------------------------------------------------
+
+%patterns = (
+ q{ }, 'anything',
+);
+
+# override locale for this test!
+$ENV{'LANGUAGE'} = $ENV{'LC_ALL'} = 'C';
+
+sarun ("--lint", \&patterns_run_cb);
+ok_all_patterns();
+
Propchange: spamassassin/trunk/t/basic_lint_net.t
------------------------------------------------------------------------------
svn:executable = *
Modified: spamassassin/trunk/t/basic_lint_without_sandbox.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/basic_lint_without_sandbox.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/basic_lint_without_sandbox.t (original)
+++ spamassassin/trunk/t/basic_lint_without_sandbox.t Mon Apr 12 07:43:12 2021
@@ -9,16 +9,14 @@ use Test::More tests => 3;
# ---------------------------------------------------------------------------
%patterns = (
-
-q{ }, 'anything',
-
+ q{ }, 'anything',
);
# override locale for this test!
$ENV{'LANGUAGE'} = $ENV{'LC_ALL'} = 'C';
-my $scoresfile = "log/test_rules_copy/50_scores.cf";
-my $sandboxfile = "log/test_rules_copy/70_sandbox.cf";
+my $scoresfile = "$localrules/50_scores.cf";
+my $sandboxfile = "$localrules/70_sandbox.cf";
# when running from the built tarball or make disttest, we will not have a full
# rules dir -- therefore no 70_sandbox.cf. We will also have no 50_scores.cf,
@@ -32,3 +30,4 @@ SKIP: {
sarun ("-L --lint", \&patterns_run_cb);
ok_all_patterns();
+
Modified: spamassassin/trunk/t/basic_meta.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/basic_meta.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/basic_meta.t (original)
+++ spamassassin/trunk/t/basic_meta.t Mon Apr 12 07:43:12 2021
@@ -1,23 +1,8 @@
#!/usr/bin/perl -w -T
-BEGIN {
- if (-e 't/test_dir') { # if we are running "t/rule_names.t", kluge around ...
- chdir 't';
- }
-
- if (-e 'test_dir') { # running from test directory, not ..
- unshift(@INC, '../blib/lib');
- }
-}
-
-my $prefix = '.';
-if (-e 'test_dir') { # running from test directory, not ..
- $prefix = '..';
-}
-
use strict;
use lib '.'; use lib 't';
-use SATest; sa_t_init("meta");
+use SATest; sa_t_init("basic_meta");
use Mail::SpamAssassin;
@@ -37,18 +22,18 @@ my $meta_dependency_disabled = 0;
my $meta_dependency_nonexistent = 0;
for (my $scoreset = 0; $scoreset < 4; $scoreset++) {
- my $output = "log/rules-$scoreset.pl";
+ my $output = "$workdir/rules-$scoreset.pl";
unlink $output || die;
%rules = ();
%scores = ();
- if (untaint_system("$perl_path $prefix/build/parse-rules-for-masses -o $output -d \"$prefix/rules\" -s $scoreset -x")) {
+ if (untaint_system("$perl_path ../build/parse-rules-for-masses -o $output -d \"../rules\" -s $scoreset -x")) {
warn "parse-rules-for-masses failed!";
}
eval {
- require "log/rules-$scoreset.pl";
+ require "$workdir/rules-$scoreset.pl";
};
if ($@) {
- warn "log/rules-$scoreset.pl is unparseable: $@";
+ warn "$workdir/rules-$scoreset.pl is unparseable: $@";
warn "giving up on test.";
ok(1);
ok(1);
Modified: spamassassin/trunk/t/basic_meta2.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/basic_meta2.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/basic_meta2.t (original)
+++ spamassassin/trunk/t/basic_meta2.t Mon Apr 12 07:43:12 2021
@@ -2,8 +2,7 @@
use lib '.';
use lib 't';
-use SATest;
-sa_t_init("meta2");
+use SATest; sa_t_init("basic_meta2");
use Test::More;
plan tests => 5;
@@ -25,7 +24,7 @@ plan tests => 5;
);
-tstprefs (qq{
+tstlocalrules (qq{
body __FOO_1 /a/
body __FOO_2 /b/
Modified: spamassassin/trunk/t/basic_obj_api.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/basic_obj_api.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/basic_obj_api.t (original)
+++ spamassassin/trunk/t/basic_obj_api.t Mon Apr 12 07:43:12 2021
@@ -1,21 +1,5 @@
#!/usr/bin/perl -T
-BEGIN {
- if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ...
- chdir 't';
- }
-
- if (-e 'test_dir') { # running from test directory, not ..
- unshift(@INC, '../blib/lib');
- unshift(@INC, '../lib');
- }
-}
-
-my $prefix = '.';
-if (-e 'test_dir') { # running from test directory, not ..
- $prefix = '..';
-}
-
use lib '.'; use lib 't';
use SATest; sa_t_init("basic_obj_api");
use Test::More tests => 4;
Modified: spamassassin/trunk/t/bayesbdb.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/bayesbdb.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/bayesbdb.t (original)
+++ spamassassin/trunk/t/bayesbdb.t Mon Apr 12 07:43:12 2021
@@ -2,20 +2,11 @@
use Data::Dumper;
use lib '.'; use lib 't';
-use SATest; sa_t_init("bayes");
+use SATest; sa_t_init("bayesbdb");
use constant HAS_BDB => eval { require BerkeleyDB };
use Test::More;
-BEGIN {
- if (-e 't/test_dir') {
- chdir 't';
- }
-
- if (-e 'test_dir') {
- unshift(@INC, '../blib/lib');
- }
-}
plan skip_all => "Long running tests disabled" unless conf_bool('run_long_tests');
plan skip_all => "BerkeleyDB is unavailable" unless HAS_BDB;
@@ -28,8 +19,8 @@ plan skip_all => "BerkeleyDB is unavaila
plan tests => 42;
-tstlocalrules ("
- bayes_store_module Mail::SpamAssassin::BayesStore::BDB
+tstprefs ("
+ bayes_store_module Mail::SpamAssassin::BayesStore::BDB
");
use Mail::SpamAssassin;
@@ -151,13 +142,13 @@ getimpl->{store}->untie_db();
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init('bayesbdb'); # this wipes out what is there and begins anew
# make sure we learn to a journal
-tstlocalrules ("
-bayes_store_module Mail::SpamAssassin::BayesStore::BDB
-bayes_min_spam_num 10
-bayes_min_ham_num 10
+tstprefs ("
+ bayes_store_module Mail::SpamAssassin::BayesStore::BDB
+ bayes_min_spam_num 10
+ bayes_min_ham_num 10
");
# we get to bastardize the existing pattern matching code here. It lets us provide
@@ -238,9 +229,9 @@ ok($score =~ /\d/ && $score <= 1.0 && $s
ok(getimpl->{store}->clear_database());
-ok(!-e 'log/user_state/bayes/vars.db');
-ok(!-e 'log/user_state/bayes/seen.db');
-ok(!-e 'log/user_state/bayes/toks.db');
+ok(!-e "$userstate/bayes/vars.db");
+ok(!-e "$userstate/bayes/seen.db");
+ok(!-e "$userstate/bayes/toks.db");
sub check_examined {
local ($_);
Modified: spamassassin/trunk/t/bayesdbm.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/bayesdbm.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/bayesdbm.t (original)
+++ spamassassin/trunk/t/bayesdbm.t Mon Apr 12 07:43:12 2021
@@ -2,27 +2,18 @@
use Data::Dumper;
use lib '.'; use lib 't';
-use SATest; sa_t_init("bayes");
+use SATest; sa_t_init("bayesdbm");
use constant HAS_DB_FILE => eval { require DB_File };
use Test::More;
-BEGIN {
- if (-e 't/test_dir') {
- chdir 't';
- }
-
- if (-e 'test_dir') {
- unshift(@INC, '../blib/lib');
- }
-}
plan skip_all => "Long running tests disabled" unless conf_bool('run_long_tests');
plan skip_all => "DB_File is unavailable" unless HAS_DB_FILE;
plan tests => 48;
-tstlocalrules ("
- bayes_learn_to_journal 0
+tstprefs ("
+ bayes_learn_to_journal 0
");
use Mail::SpamAssassin;
@@ -144,40 +135,40 @@ getimpl->{store}->untie_db();
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init('bayesdbm'); # this wipes out what is there and begins anew
# make sure we learn to a journal
-tstlocalrules ("
- bayes_learn_to_journal 1
+tstprefs ("
+ bayes_learn_to_journal 1
");
$sa = create_saobj();
$sa->init();
-ok(!-e 'log/user_state/bayes_journal');
+ok(!-e "$userstate/bayes_journal");
ok($sa->{bayes_scanner}->learn(1, $mail));
-ok(-e 'log/user_state/bayes_journal');
+ok(-e "$userstate/bayes_journal");
$sa->{bayes_scanner}->sync(1); # always returns 0, so no need to check return
-ok(!-e 'log/user_state/bayes_journal');
+ok(!-e "$userstate/bayes_journal");
-ok(-e 'log/user_state/bayes_seen');
+ok(-e "$userstate/bayes_seen");
-ok(-e 'log/user_state/bayes_toks');
+ok(-e "$userstate/bayes_toks");
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init('bayesdbm'); # this wipes out what is there and begins anew
# make sure we learn to a journal
-tstlocalrules ("
-bayes_learn_to_journal 0
-bayes_min_spam_num 10
-bayes_min_ham_num 10
+tstprefs ("
+ bayes_learn_to_journal 0
+ bayes_min_spam_num 10
+ bayes_min_ham_num 10
");
# we get to bastardize the existing pattern matching code here. It lets us provide
@@ -258,9 +249,9 @@ ok($score =~ /\d/ && $score <= 1.0 && $s
ok(getimpl->{store}->clear_database());
-ok(!-e 'log/user_state/bayes_journal');
-ok(!-e 'log/user_state/bayes_seen');
-ok(!-e 'log/user_state/bayes_toks');
+ok(!-e "$userstate/bayes_journal");
+ok(!-e "$userstate/bayes_seen");
+ok(!-e "$userstate/bayes_toks");
sub check_examined {
local ($_);
Modified: spamassassin/trunk/t/bayesdbm_flock.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/bayesdbm_flock.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/bayesdbm_flock.t (original)
+++ spamassassin/trunk/t/bayesdbm_flock.t Mon Apr 12 07:43:12 2021
@@ -7,24 +7,15 @@ use SATest; sa_t_init("bayesdbm_flock");
use constant HAS_DB_FILE => eval { require DB_File };
use Test::More;
-BEGIN {
- if (-e 't/test_dir') {
- chdir 't';
- }
-
- if (-e 'test_dir') {
- unshift(@INC, '../blib/lib');
- }
-}
plan skip_all => "Long running tests disabled" unless conf_bool('run_long_tests');
plan skip_all => "Tests don't work on windows" if $RUNNING_ON_WINDOWS;
plan skip_all => "DB_File is unavailable" unless HAS_DB_FILE;
plan tests => 48;
-tstlocalrules ("
- bayes_learn_to_journal 0
- lock_method flock
+tstprefs ("
+ bayes_learn_to_journal 0
+ lock_method flock
");
use Mail::SpamAssassin;
@@ -152,42 +143,42 @@ alarm(0);
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init('bayesdbm_flock'); # this wipes out what is there and begins anew
# make sure we learn to a journal
-tstlocalrules ("
- bayes_learn_to_journal 1
+tstprefs ("
+ bayes_learn_to_journal 1
");
$sa = create_saobj();
$sa->init();
-ok(!-e 'log/user_state/bayes_journal');
+ok(!-e "$userstate/bayes_journal");
ok($sa->{bayes_scanner}->learn(1, $mail));
-ok(-e 'log/user_state/bayes_journal');
+ok(-e "$userstate/bayes_journal");
$sa->{bayes_scanner}->sync(1); # always returns 0, so no need to check return
-ok(!-e 'log/user_state/bayes_journal');
+ok(!-e "$userstate/bayes_journal");
-ok(-e 'log/user_state/bayes_seen');
+ok(-e "$userstate/bayes_seen");
-ok(-e 'log/user_state/bayes_toks');
+ok(-e "$userstate/bayes_toks");
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init('bayesdbm_flock'); # this wipes out what is there and begins anew
alarm(0); # cancel timer - make sure that alarm is off
# make sure we learn to a journal
-tstlocalrules ("
-bayes_learn_to_journal 0
-bayes_min_spam_num 10
-bayes_min_ham_num 10
+tstprefs ("
+ bayes_learn_to_journal 0
+ bayes_min_spam_num 10
+ bayes_min_ham_num 10
");
# we get to bastardize the existing pattern matching code here. It lets us provide
@@ -268,9 +259,9 @@ ok($score =~ /\d/ && $score <= 1.0 && $s
ok(getimpl->{store}->clear_database());
-ok(!-e 'log/user_state/bayes_journal');
-ok(!-e 'log/user_state/bayes_seen');
-ok(!-e 'log/user_state/bayes_toks');
+ok(!-e "$userstate/bayes_journal");
+ok(!-e "$userstate/bayes_seen");
+ok(!-e "$userstate/bayes_toks");
sub check_examined {
local ($_);
Modified: spamassassin/trunk/t/bayessdbm.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/bayessdbm.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/bayessdbm.t (original)
+++ spamassassin/trunk/t/bayessdbm.t Mon Apr 12 07:43:12 2021
@@ -2,28 +2,19 @@
use Data::Dumper;
use lib '.'; use lib 't';
-use SATest; sa_t_init("bayes");
+use SATest; sa_t_init("bayessdbm");
use constant HAS_SDBM_FILE => eval { require SDBM_File };
use Test::More;
-BEGIN {
- if (-e 't/test_dir') {
- chdir 't';
- }
-
- if (-e 'test_dir') {
- unshift(@INC, '../blib/lib');
- }
-}
plan skip_all => "Long running tests disabled" unless conf_bool('run_long_tests');
plan skip_all => "No SDBM_File" unless HAS_SDBM_FILE;
plan tests => 52;
-tstlocalrules ("
- bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
- bayes_learn_to_journal 0
+tstprefs ("
+ bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
+ bayes_learn_to_journal 0
");
use Mail::SpamAssassin;
@@ -145,44 +136,44 @@ getimpl->{store}->untie_db();
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init('bayessdbm'); # this wipes out what is there and begins anew
# make sure we learn to a journal
-tstlocalrules ("
- bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
- bayes_learn_to_journal 1
+tstprefs ("
+ bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
+ bayes_learn_to_journal 1
");
$sa = create_saobj();
$sa->init();
-ok(!-e 'log/user_state/bayes_journal');
+ok(!-e "$userstate/bayes_journal");
ok($sa->{bayes_scanner}->learn(1, $mail));
-ok(-e 'log/user_state/bayes_journal');
+ok(-e "$userstate/bayes_journal");
$sa->{bayes_scanner}->sync(1); # always returns 0, so no need to check return
-ok(!-e 'log/user_state/bayes_journal');
+ok(!-e "$userstate/bayes_journal");
-ok(-e 'log/user_state/bayes_seen.pag');
-ok(-e 'log/user_state/bayes_seen.dir');
+ok(-e "$userstate/bayes_seen.pag");
+ok(-e "$userstate/bayes_seen.dir");
-ok(-e 'log/user_state/bayes_toks.pag');
-ok(-e 'log/user_state/bayes_toks.dir');
+ok(-e "$userstate/bayes_toks.pag");
+ok(-e "$userstate/bayes_toks.dir");
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init('bayessdbm'); # this wipes out what is there and begins anew
# make sure we learn to a journal
-tstlocalrules ("
- bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
-bayes_learn_to_journal 0
-bayes_min_spam_num 10
-bayes_min_ham_num 10
+tstprefs ("
+ bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
+ bayes_learn_to_journal 0
+ bayes_min_spam_num 10
+ bayes_min_ham_num 10
");
# we get to bastardize the existing pattern matching code here. It lets us provide
@@ -263,11 +254,11 @@ ok($score =~ /\d/ && $score <= 1.0 && $s
ok(getimpl->{store}->clear_database());
-ok(!-e 'log/user_state/bayes_journal');
-ok(!-e 'log/user_state/bayes_seen.pag');
-ok(!-e 'log/user_state/bayes_seen.dir');
-ok(!-e 'log/user_state/bayes_toks.pag');
-ok(!-e 'log/user_state/bayes_toks.dir');
+ok(!-e "$userstate/bayes_journal");
+ok(!-e "$userstate/bayes_seen.pag");
+ok(!-e "$userstate/bayes_seen.dir");
+ok(!-e "$userstate/bayes_toks.pag");
+ok(!-e "$userstate/bayes_toks.dir");
sub check_examined {
local ($_);
Modified: spamassassin/trunk/t/bayessdbm_seen_delete.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/bayessdbm_seen_delete.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/bayessdbm_seen_delete.t (original)
+++ spamassassin/trunk/t/bayessdbm_seen_delete.t Mon Apr 12 07:43:12 2021
@@ -11,19 +11,9 @@ plan skip_all => "Long running tests dis
plan skip_all => "No SDBM_File" unless HAS_SDBM_FILE;
plan tests => 54;
-BEGIN {
- if (-e 't/test_dir') {
- chdir 't';
- }
-
- if (-e 'test_dir') {
- unshift(@INC, '../blib/lib');
- }
-}
-
-tstlocalrules ("
- bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
- bayes_learn_to_journal 0
+tstprefs ("
+ bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
+ bayes_learn_to_journal 0
");
use Mail::SpamAssassin;
@@ -145,44 +135,44 @@ getimpl->{store}->untie_db();
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init('bayessdbm_seen_delete'); # this wipes out what is there and begins anew
# make sure we learn to a journal
-tstlocalrules ("
- bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
- bayes_learn_to_journal 1
+tstprefs ("
+ bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
+ bayes_learn_to_journal 1
");
$sa = create_saobj();
$sa->init();
-ok(!-e 'log/user_state/bayes_journal');
+ok(!-e "$userstate/bayes_journal");
ok($sa->{bayes_scanner}->learn(1, $mail));
-ok(-e 'log/user_state/bayes_journal');
+ok(-e "$userstate/bayes_journal");
$sa->{bayes_scanner}->sync(1); # always returns 0, so no need to check return
-ok(!-e 'log/user_state/bayes_journal');
+ok(!-e "$userstate/bayes_journal");
-ok(-e 'log/user_state/bayes_seen.pag');
-ok(-e 'log/user_state/bayes_seen.dir');
+ok(-e "$userstate/bayes_seen.pag");
+ok(-e "$userstate/bayes_seen.dir");
-ok(-e 'log/user_state/bayes_toks.pag');
-ok(-e 'log/user_state/bayes_toks.dir');
+ok(-e "$userstate/bayes_toks.pag");
+ok(-e "$userstate/bayes_toks.dir");
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init('bayessdbm_seen_delete'); # this wipes out what is there and begins anew
# make sure we learn to a journal
-tstlocalrules ("
- bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
-bayes_learn_to_journal 0
-bayes_min_spam_num 10
-bayes_min_ham_num 10
+tstprefs ("
+ bayes_store_module Mail::SpamAssassin::BayesStore::SDBM
+ bayes_learn_to_journal 0
+ bayes_min_spam_num 10
+ bayes_min_ham_num 10
");
# we get to bastardize the existing pattern matching code here. It lets us provide
@@ -204,9 +194,9 @@ ok_all_patterns();
# now delete the journal and bayes_seen -- should still be possible
# for Bayes to continue...
-unlink 'log/user_state/bayes_journal';
-ok(unlink 'log/user_state/bayes_seen.pag');
-ok(unlink 'log/user_state/bayes_seen.dir');
+unlink "$userstate/bayes_journal";
+ok(unlink "$userstate/bayes_seen.pag");
+ok(unlink "$userstate/bayes_seen.dir");
use constant SCAN_USING_PERL_CODE_TEST => 1;
@@ -267,11 +257,11 @@ ok($score =~ /\d/ && $score <= 1.0 && $s
ok(getimpl->{store}->clear_database());
-ok(!-e 'log/user_state/bayes_journal');
-ok(!-e 'log/user_state/bayes_seen.pag');
-ok(!-e 'log/user_state/bayes_seen.dir');
-ok(!-e 'log/user_state/bayes_toks.pag');
-ok(!-e 'log/user_state/bayes_toks.dir');
+ok(!-e "$userstate/bayes_journal");
+ok(!-e "$userstate/bayes_seen.pag");
+ok(!-e "$userstate/bayes_seen.dir");
+ok(!-e "$userstate/bayes_toks.pag");
+ok(!-e "$userstate/bayes_toks.dir");
sub check_examined {
local ($_);
Modified: spamassassin/trunk/t/bayessql.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/bayessql.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/bayessql.t (original)
+++ spamassassin/trunk/t/bayessql.t Mon Apr 12 07:43:12 2021
@@ -1,7 +1,7 @@
#!/usr/bin/perl -T
use lib '.'; use lib 't';
-use SATest;
+use SATest; sa_t_init("bayessql");
use constant HAS_DBI => eval { require DBI; }; # for our cleanup stuff
@@ -10,16 +10,6 @@ plan skip_all => "Bayes SQL tests are di
plan skip_all => "DBI is unavailable on this system" unless HAS_DBI;
plan tests => 53;
-BEGIN {
- if (-e 't/test_dir') {
- chdir 't';
- }
-
- if (-e 'test_dir') {
- unshift(@INC, '../blib/lib');
- }
-}
-
diag "Note: Failure may be due to an incorrect config.";
my $dbdsn = conf('bayes_sql_dsn');
@@ -40,13 +30,11 @@ foreach my $setting (qw(
my $testuser = 'tstusr.'.$$.'.'.time();
-sa_t_init("bayes");
-
-tstlocalrules ("
-$dbconfig
-bayes_sql_override_username $testuser
-loadplugin validuserplugin ../../data/validuserplugin.pm
-bayes_sql_username_authorized 1
+tstprefs ("
+ $dbconfig
+ bayes_sql_override_username $testuser
+ loadplugin validuserplugin ../../../data/validuserplugin.pm
+ bayes_sql_username_authorized 1
");
use Mail::SpamAssassin;
@@ -79,13 +67,13 @@ $sa->finish_learner();
undef $sa;
-sa_t_init("bayes");
+sa_t_init("bayessql");
-tstlocalrules ("
-$dbconfig
-bayes_sql_override_username iwillfail
-loadplugin validuserplugin ../../data/validuserplugin.pm
-bayes_sql_username_authorized 1
+tstprefs ("
+ $dbconfig
+ bayes_sql_override_username iwillfail
+ loadplugin validuserplugin ../../data/validuserplugin.pm
+ bayes_sql_username_authorized 1
");
$sa = create_saobj();
@@ -102,11 +90,11 @@ $sa->finish_learner();
undef $sa;
-sa_t_init("bayes");
+sa_t_init("bayessql");
-tstlocalrules ("
-$dbconfig
-bayes_sql_override_username $testuser
+tstprefs ("
+ $dbconfig
+ bayes_sql_override_username $testuser
");
$sa = create_saobj();
@@ -241,14 +229,14 @@ $sa->finish_learner();
undef $sa;
-sa_t_init('bayes'); # this wipes out what is there and begins anew
+sa_t_init("bayessql"); # this wipes out what is there and begins anew
# make sure we learn to a journal
-tstlocalrules ("
-$dbconfig
-bayes_min_spam_num 10
-bayes_min_ham_num 10
-bayes_sql_override_username $testuser
+tstprefs ("
+ $dbconfig
+ bayes_min_spam_num 10
+ bayes_min_ham_num 10
+ bayes_sql_override_username $testuser
");
# we get to bastardize the existing pattern matching code here. It lets us provide
Modified: spamassassin/trunk/t/blacklist_autolearn.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/blacklist_autolearn.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/blacklist_autolearn.t (original)
+++ spamassassin/trunk/t/blacklist_autolearn.t Mon Apr 12 07:43:12 2021
@@ -7,21 +7,17 @@ use Test::More tests => 3;
# ---------------------------------------------------------------------------
%patterns = (
-
-q{ USER_IN_BLACKLIST }, 'blacklisted',
-
-
+ q{ USER_IN_BLACKLIST }, 'blacklisted',
);
%anti_patterns = (
-q{ autolearn=ham } => 'autolearned as ham'
+ q{ autolearn=ham } => 'autolearned as ham'
);
tstprefs ('
-
-blacklist_from *@ximian.com
-
+ blacklist_from *@ximian.com
');
ok (sarun ("-L -t < data/nice/001", \&patterns_run_cb));
ok_all_patterns();
+
Modified: spamassassin/trunk/t/blocklist_autolearn.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/blocklist_autolearn.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/blocklist_autolearn.t (original)
+++ spamassassin/trunk/t/blocklist_autolearn.t Mon Apr 12 07:43:12 2021
@@ -7,21 +7,17 @@ use Test::More tests => 3;
# ---------------------------------------------------------------------------
%patterns = (
-
-q{ USER_IN_BLOCKLIST }, 'blocklisted',
-
-
+ q{ USER_IN_BLOCKLIST }, 'blocklisted',
);
%anti_patterns = (
-q{ autolearn=ham } => 'autolearned as ham'
+ q{ autolearn=ham } => 'autolearned as ham'
);
tstprefs ('
-
-blacklist_from *@ximian.com
-
+ blacklist_from *@ximian.com
');
ok (sarun ("-L -t < data/nice/001", \&patterns_run_cb));
ok_all_patterns();
+
Modified: spamassassin/trunk/t/body_mod.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/body_mod.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/body_mod.t (original)
+++ spamassassin/trunk/t/body_mod.t Mon Apr 12 07:43:12 2021
@@ -1,20 +1,5 @@
#!/usr/bin/perl -w -T
-BEGIN {
- if (-e 't/test_dir') { # if we are running "t/body_mod.t", kluge around ...
- chdir 't';
- }
-
- if (-e 'test_dir') { # running from test directory, not ..
- unshift(@INC, '../blib/lib');
- }
-}
-
-my $prefix = '.';
-if (-e 'test_dir') { # running from test directory, not ..
- $prefix = '..';
-}
-
use strict;
use lib '.'; use lib 't';
use SATest; sa_t_init("body_mod");
Modified: spamassassin/trunk/t/body_str.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/body_str.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/body_str.t (original)
+++ spamassassin/trunk/t/body_str.t Mon Apr 12 07:43:12 2021
@@ -2,21 +2,6 @@
# test URIs with UTF8 IDNA-equivalent dots between domains instead of ordinary '.'
-BEGIN {
- if (-e 't/test_dir') { # if we are running "t/rule_names.t", kluge around ...
- chdir 't';
- }
-
- if (-e 'test_dir') { # running from test directory, not ..
- unshift(@INC, '../blib/lib');
- }
-}
-
-my $prefix = '.';
-if (-e 'test_dir') { # running from test directory, not ..
- $prefix = '..';
-}
-
use strict;
use lib '.'; use lib 't';
use SATest; sa_t_init("body_str.t");
Modified: spamassassin/trunk/t/check_implemented.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/check_implemented.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/check_implemented.t (original)
+++ spamassassin/trunk/t/check_implemented.t Mon Apr 12 07:43:12 2021
@@ -1,24 +1,5 @@
#!/usr/bin/perl -T
-# detect use of dollar-ampersand somewhere in the perl interpreter;
-# once it is used once, it slows down every regexp match thereafter.
-
-BEGIN {
- if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ...
- chdir 't';
- }
-
- if (-e 'test_dir') { # running from test directory, not ..
- unshift(@INC, '../blib/lib');
- unshift(@INC, '../lib');
- }
-}
-
-my $prefix = '.';
-if (-e 'test_dir') { # running from test directory, not ..
- $prefix = '..';
-}
-
use lib '.'; use lib 't';
use SATest; sa_t_init("check_implemented");
@@ -33,14 +14,14 @@ require Mail::SpamAssassin;
# kill all 'loadplugin' lines
foreach my $file
- (<log/localrules.tmp/*.pre>, <log/test_rules_copy/*.pre>) #*/
+ (<$localrules/*.pre>, <$siterules/*.pre>) #*/
{
$file = main::untaint_var($file);
rename $file, "$file.bak" or die "rename $file failed";
open IN, "<$file.bak" or die "cannot read $file.bak";
open OUT, ">$file" or die "cannot write $file";
while (<IN>) {
- s/^loadplugin/###loadplugin/g;
+ s/^\s*loadplugin/###loadplugin/g;
print OUT;
}
close IN;
Modified: spamassassin/trunk/t/cidrs.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/cidrs.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/cidrs.t (original)
+++ spamassassin/trunk/t/cidrs.t Mon Apr 12 07:43:12 2021
@@ -1,19 +1,7 @@
#!/usr/bin/perl -T
-BEGIN {
- if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ...
- chdir 't';
- }
-
- if (-e 'test_dir') { # running from test directory, not ..
- unshift(@INC, '../blib/lib');
- }
-}
-
-my $prefix = '.';
-if (-e 'test_dir') { # running from test directory, not ..
- $prefix = '..';
-}
+use lib '.'; use lib 't';
+use SATest; sa_t_init("cidrs");
use strict;
@@ -23,7 +11,7 @@ use Mail::SpamAssassin;
use Mail::SpamAssassin::NetSet;
my $sa = Mail::SpamAssassin->new({
- rules_filename => "$prefix/rules",
+ rules_filename => $localrules,
});
sub tryone ($@) {
Modified: spamassassin/trunk/t/config_errs.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/config_errs.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/config_errs.t (original)
+++ spamassassin/trunk/t/config_errs.t Mon Apr 12 07:43:12 2021
@@ -22,21 +22,6 @@ $/ox;
# ---------------------------------------------------------------------------
-BEGIN {
- if (-e 't/test_dir') { # if we are running "t/rule_names.t", kluge around ...
- chdir 't';
- }
-
- if (-e 'test_dir') { # running from test directory, not ..
- unshift(@INC, '../blib/lib');
- }
-}
-
-my $prefix = '.';
-if (-e 'test_dir') { # running from test directory, not ..
- $prefix = '..';
-}
-
use strict;
use lib '.'; use lib 't';
use SATest; sa_t_init("config_errs");
Modified: spamassassin/trunk/t/config_tree_recurse.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/config_tree_recurse.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/config_tree_recurse.t (original)
+++ spamassassin/trunk/t/config_tree_recurse.t Mon Apr 12 07:43:12 2021
@@ -5,24 +5,8 @@
delete @ENV{'PATH', 'IFS', 'CDPATH', 'ENV', 'BASH_ENV'};
$ENV{PATH}='/bin:/usr/bin:/usr/local/bin';
-BEGIN {
- if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ...
- chdir 't';
- }
-
- if (-e 'test_dir') { # running from test directory, not ..
- unshift(@INC, '../blib/lib');
- unshift(@INC, '../lib');
- }
-}
-
-my $prefix = '.';
-if (-e 'test_dir') { # running from test directory, not ..
- $prefix = '..';
-}
-
use lib '.'; use lib 't';
-use SATest; sa_t_init("basic_obj_api");
+use SATest; sa_t_init("config_tree_recurse.t");
use Test::More tests => 4;
# ---------------------------------------------------------------------------
Modified: spamassassin/trunk/t/cross_user_config_leak.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/cross_user_config_leak.t?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/cross_user_config_leak.t (original)
+++ spamassassin/trunk/t/cross_user_config_leak.t Mon Apr 12 07:43:12 2021
@@ -1,21 +1,5 @@
#!/usr/bin/perl -T
-BEGIN {
- if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ...
- chdir 't';
- }
-
- if (-e 'test_dir') { # running from test directory, not ..
- unshift(@INC, '../blib/lib');
- unshift(@INC, '../lib');
- }
-}
-
-my $prefix = '.';
-if (-e 'test_dir') { # running from test directory, not ..
- $prefix = '..';
-}
-
use lib '.'; use lib 't';
use SATest; sa_t_init("cross_user_config_leak");
use Test::More tests => 6;
@@ -43,6 +27,9 @@ use warnings;
require Mail::SpamAssassin;
my $sa = create_saobj({
+ rules_filename => $localrules,
+ site_rules_filename => $siterules,
+ userprefs_filename => $userrules,
require_rules => 1,
local_tests_only => 1,
dont_copy_prefs => 1,
@@ -77,11 +64,11 @@ my %expected_val;
my %ignored_command;
foreach my $k (@ignored_commands) { $ignored_command{$k}++; }
-print "Reading log/user_prefs1\n";
-$sa->read_scoreonly_config("log/user_prefs1");
+print "Reading $workdir/user_prefs1\n";
+$sa->read_scoreonly_config("$workdir/user_prefs1");
set_all_confs($sa->{conf});
-$sa->signal_user_changed( { username => "user1", user_dir => "log/user1" });
+$sa->signal_user_changed( { username => "user1", user_dir => "$workdir/user1" });
ok validate_all_confs($sa->{conf}, 1, 'after first user config read');
print "Restoring config from backup\n";
@@ -89,9 +76,9 @@ $sa->copy_config(\%conf_backup, undef) o
ok validate_all_confs($sa->{conf}, 0, 'after restoring from backup');
-print "Reading log/user_prefs2\n";
-$sa->read_scoreonly_config("log/user_prefs2");
-$sa->signal_user_changed( { username => "user2", user_dir => "log/user2" });
+print "Reading $workdir/user_prefs2\n";
+$sa->read_scoreonly_config("$workdir/user_prefs2");
+$sa->signal_user_changed( { username => "user2", user_dir => "$workdir/user2" });
ok validate_all_confs($sa->{conf}, 0, 'after second user config read');
print "Restoring config from backup, second time\n";
@@ -205,6 +192,9 @@ sub validate_all_confs {
# if the default value is undef, it's a permitted value, obvs
next if ($settings_should_exist && !defined $cmd->{default});
+ # ignore use_dcc etc changed default from data/01_test_rules.cf
+ next if $k =~ /^use_(?:dcc|razor2|pyzor)$/;
+
$setting_details = "key='$k' when=$stage";
if (!defined $cmd->{type}) {
# warn "undef config type for $k"; # already done this
@@ -261,10 +251,12 @@ sub assert_validation {
" wanted=".(defined $expected_val ? "'$expected_val'" : "(none)").
" $setting_details";
$validation_passed = 0;
+ $keep_workdir = 1;
}
if (!$settings_should_exist && defined($val) && "".$val eq "".$expected_val) {
warn "found=".(defined $val ? "'$val'" : "(none)")." wanted=(none)".
" $setting_details";
$validation_passed = 0;
+ $keep_workdir = 1;
}
}
Propchange: spamassassin/trunk/t/cross_user_config_leak.t
------------------------------------------------------------------------------
svn:executable = *
Modified: spamassassin/trunk/t/data/01_test_rules.cf
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/data/01_test_rules.cf?rev=1888649&r1=1888648&r2=1888649&view=diff
==============================================================================
--- spamassassin/trunk/t/data/01_test_rules.cf (original)
+++ spamassassin/trunk/t/data/01_test_rules.cf Mon Apr 12 07:43:12 2021
@@ -18,55 +18,16 @@
# limitations under the License.
# </...@LICENSE>
-# copied from 10_default_prefs.cf
-clear_report_template
-report Spam detection software, running on the system "_HOSTNAME_", has
-report identified this incoming email as possible spam. The original message
-report has been attached to this so you can view it (if it isn't spam) or label
-report similar future email. If you have any questions, see
-report _CONTACTADDRESS_ for details.
-report
-report Content preview: _PREVIEW_
-report
-report Content analysis details: (_SCORE_ points, _REQD_ required)
-report
-report " pts rule name description"
-report ---- ---------------------- --------------------------------------------------
-report _SUMMARY_
-
-report_contact @@CONTACT_ADDRESS@@
-
-clear_unsafe_report_template
-unsafe_report The original message was not completely plain text, and may be unsafe to
-unsafe_report open with some email clients; in particular, it may contain a virus,
-unsafe_report or confirm that your address can receive spam. If you wish to view
-unsafe_report it, it may be safer to save it to a file and open it with an editor.
-
-clear_headers
-add_header all Checker-Version SpamAssassin _VERSION_ (_SUBVERSION_) on _HOSTNAME_
-add_header spam Flag _YESNOCAPS_
-add_header all Level _STARS(*)_
-add_header all Status "_YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_"
-
-clear_originating_ip_headers
-originating_ip_headers X-Yahoo-Post-IP X-Originating-IP X-Apparently-From
-originating_ip_headers X-SenderIP
-
-required_score 5
-ok_locales all
-ifplugin Mail::SpamAssassin::Plugin::TextCat
-ok_languages all
-endif # Mail::SpamAssassin::Plugin::TextCat
-
-ifplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
-bayes_auto_learn_threshold_nonspam 0.1
-bayes_auto_learn_threshold_spam 12.0
-endif # Mail::SpamAssassin::Plugin::AutoLearnThreshold
-
-bayes_auto_learn 1
-
-report_safe 1
-
+# Disable dcc/razor/pyzor by default
+ifplugin Mail::SpamAssassin::Plugin::DCC
+use_dcc 0
+endif
+ifplugin Mail::SpamAssassin::Plugin::Razor2
+use_razor2 0
+endif
+ifplugin Mail::SpamAssassin::Plugin::Pyzor
+use_pyzor 0
+endif
header TEST_NOREALNAME From =~ /^["\s]*\<?\S+\@\S+\>?\s*$/
describe TEST_NOREALNAME From: does not include a real name
@@ -118,38 +79,6 @@ describe GTUBE Generic Test fo
score GTUBE 1000
tflags GTUBE userconf noautolearn
-body BAYES_99 eval:check_bayes('0.99', '1.00')
-tflags BAYES_99 learn
-describe BAYES_99 Bayes spam probability is 99 to 100%
-score BAYES_99 0 0 3.5 3.5
-
-ifplugin Mail::SpamAssassin::Plugin::WLBLEval
-#header USER_IN_WHITELIST eval:check_from_in_whitelist()
-#tflags USER_IN_WHITELIST userconf nice noautolearn
-#score USER_IN_WHITELIST -100.000
-#header USER_IN_DEF_WHITELIST eval:check_from_in_default_whitelist()
-#tflags USER_IN_DEF_WHITELIST userconf nice noautolearn
-#score USER_IN_DEF_WHITELIST -15.000
-#header USER_IN_WHITELIST_TO eval:check_to_in_whitelist()
-#tflags USER_IN_WHITELIST_TO userconf nice noautolearn
-#score USER_IN_WHITELIST_TO -6.000
-#header USER_IN_BLACKLIST eval:check_from_in_blacklist()
-#tflags USER_IN_BLACKLIST userconf noautolearn
-#score USER_IN_BLACKLIST 100.000
-#header USER_IN_BLACKLIST_TO eval:check_to_in_blacklist()
-#tflags USER_IN_BLACKLIST_TO userconf noautolearn
-#score USER_IN_BLACKLIST_TO 10.000
-endif # Mail::SpamAssassin::Plugin::WLBLEval
-
-ifplugin Mail::SpamAssassin::Plugin::WhiteListSubject
-header SUBJECT_IN_WHITELIST eval:check_subject_in_whitelist()
-tflags SUBJECT_IN_WHITELIST userconf nice noautolearn
-header SUBJECT_IN_BLACKLIST eval:check_subject_in_blacklist()
-tflags SUBJECT_IN_BLACKLIST userconf noautolearn
-score SUBJECT_IN_BLACKLIST 100
-score SUBJECT_IN_WHITELIST -100
-endif # Mail::SpamAssassin::Plugin::WhiteListSubject
-
header __HAS_MSGID MESSAGEID =~ /\S/
header __SANE_MSGID MESSAGEID =~ /^<[^<>\\ \t\n\r\x0b\x80-\xff]+\@[^<>\\ \t\n\r\x0b\x80-\xff]+>\s*$/m
header __MSGID_COMMENT MESSAGEID =~ /\(.*\)/m
@@ -164,36 +93,6 @@ header INVALID_DATE Date !~
describe INVALID_DATE Invalid Date: header (not RFC 2822)
score INVALID_DATE 2.303 1.651 1.329 1.245
-ifplugin Mail::SpamAssassin::Plugin::SPF
-header SPF_PASS eval:check_for_spf_pass()
-header SPF_NEUTRAL eval:check_for_spf_neutral()
-header SPF_FAIL eval:check_for_spf_fail()
-header SPF_SOFTFAIL eval:check_for_spf_softfail()
-header SPF_HELO_PASS eval:check_for_spf_helo_pass()
-header SPF_HELO_NEUTRAL eval:check_for_spf_helo_neutral()
-header SPF_HELO_FAIL eval:check_for_spf_helo_fail()
-header SPF_HELO_SOFTFAIL eval:check_for_spf_helo_softfail()
-tflags SPF_PASS nice userconf net
-tflags SPF_HELO_PASS nice userconf net
-tflags SPF_NEUTRAL net
-tflags SPF_FAIL net
-tflags SPF_SOFTFAIL net
-tflags SPF_HELO_NEUTRAL net
-tflags SPF_HELO_FAIL net
-tflags SPF_HELO_SOFTFAIL net
-header USER_IN_SPF_WHITELIST eval:check_for_spf_whitelist_from()
-tflags USER_IN_SPF_WHITELIST userconf nice noautolearn
-header USER_IN_DEF_SPF_WL eval:check_for_def_spf_whitelist_from()
-tflags USER_IN_DEF_SPF_WL userconf nice noautolearn
-endif # Mail::SpamAssassin::Plugin::SPF
-
-ifplugin Mail::SpamAssassin::Plugin::AWL
-header AWL eval:check_from_in_auto_whitelist()
-describe AWL From: address is in the auto white-list
-tflags AWL userconf noautolearn
-priority AWL 1000
-endif # Mail::SpamAssassin::Plugin::AWL
-
redirector_pattern /^http:\/\/chkpt\.zdnet\.com\/chkpt\/\w+\/(.*)$/i
redirector_pattern /^http:\/\/www(?:\d+)?\.nate\.com\/r\/\w+\/(.*)$/i
redirector_pattern /^http:\/\/.+\.gov\/(?:.*\/)?externalLink\.jhtml\?.*url=(.*?)(?:&.*)?$/i
@@ -202,23 +101,7 @@ redirector_pattern /^http:\/\/(?:.*
redirector_pattern m'^http.*?/redirect\.php\?.*(?<=[?&])goto=(.*?)(?:$|[&\#])'i
redirector_pattern m'^https?:/*(?:[^/]+\.)?emf\d\.com/r\.cfm.*?&r=(.*)'i
-ifplugin Mail::SpamAssassin::Plugin::DCC
-full DCC_CHECK eval:check_dcc()
-describe DCC_CHECK Detected as bulk mail by DCC (dcc-servers.net)
-tflags DCC_CHECK net
-reuse DCC_CHECK
-endif
-
ifplugin Mail::SpamAssassin::Plugin::DKIM
-full DKIM_SIGNED eval:check_dkim_signed()
-full DKIM_VALID eval:check_dkim_valid()
-full DKIM_VALID_AU eval:check_dkim_valid_author_sig()
-header DKIM_ADSP_NXDOMAIN eval:check_dkim_adsp('N')
-header DKIM_ADSP_DISCARD eval:check_dkim_adsp('D')
-header DKIM_ADSP_ALL eval:check_dkim_adsp('A')
-header DKIM_ADSP_CUSTOM_LOW eval:check_dkim_adsp('1')
-header DKIM_ADSP_CUSTOM_MED eval:check_dkim_adsp('2')
-header DKIM_ADSP_CUSTOM_HIGH eval:check_dkim_adsp('3')
adsp_override sa-test-nxd.spamassassin.org nxdomain
adsp_override sa-test-unk.spamassassin.org unknown
adsp_override sa-test-all.spamassassin.org all
@@ -226,17 +109,3 @@ adsp_override sa-test-dis.spamassassin.o
adsp_override sa-test-di2.spamassassin.org
endif
-ifplugin Mail::SpamAssassin::Plugin::Shortcircuit
-header SHORTCIRCUIT eval:check_shortcircuit()
-describe SHORTCIRCUIT Not all rules were run, due to a shortcircuited rule
-tflags SHORTCIRCUIT userconf noautolearn
-endif
-
-
-ifplugin Mail::SpamAssassin::Plugin::Razor2
-
-full RAZOR2_CHECK eval:check_razor2()
-describe RAZOR2_CHECK Listed in Razor2 (http://razor.sf.net/)
-tflags RAZOR2_CHECK net
-
-endif