You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spamassassin.apache.org by jm...@apache.org on 2007/12/05 00:54:04 UTC

svn commit: r601155 - in /spamassassin/trunk: MANIFEST t/spamd_user_rules_leak.t

Author: jm
Date: Tue Dec  4 15:54:00 2007
New Revision: 601155

URL: http://svn.apache.org/viewvc?rev=601155&view=rev
Log:
bug 4179: add test case

Added:
    spamassassin/trunk/t/spamd_user_rules_leak.t   (with props)
Modified:
    spamassassin/trunk/MANIFEST

Modified: spamassassin/trunk/MANIFEST
URL: http://svn.apache.org/viewvc/spamassassin/trunk/MANIFEST?rev=601155&r1=601154&r2=601155&view=diff
==============================================================================
--- spamassassin/trunk/MANIFEST (original)
+++ spamassassin/trunk/MANIFEST Tue Dec  4 15:54:00 2007
@@ -511,3 +511,4 @@
 t/root_spamd_u_dcc.t
 t/get_all_headers.t
 t/data/Dumpheaders.pm
+t/spamd_user_rules_leak.t

Added: spamassassin/trunk/t/spamd_user_rules_leak.t
URL: http://svn.apache.org/viewvc/spamassassin/trunk/t/spamd_user_rules_leak.t?rev=601155&view=auto
==============================================================================
--- spamassassin/trunk/t/spamd_user_rules_leak.t (added)
+++ spamassassin/trunk/t/spamd_user_rules_leak.t Tue Dec  4 15:54:00 2007
@@ -0,0 +1,88 @@
+#!/usr/bin/perl
+# bug 4179
+
+use lib '.'; use lib 't';
+use SATest; sa_t_init("spamd_user_rules_leak");
+use Test;
+BEGIN { 
+
+  plan tests => ($SKIP_SPAMD_TESTS ? 0 : 18)
+
+};
+exit if $SKIP_SPAMD_TESTS;
+
+# ---------------------------------------------------------------------------
+# If user A define's a user rule (when allow_user_rules is enabled) it affects
+# user B if they also set a score for that same rule name or create a user rule
+# with the same name.
+
+tstlocalrules ("
+	allow_user_rules 1
+");
+
+rmtree ("log/virtualconfig/testuser1", 0, 1);
+mkpath ("log/virtualconfig/testuser1", 0, 0755);
+rmtree ("log/virtualconfig/testuser2", 0, 1);
+mkpath ("log/virtualconfig/testuser2", 0, 0755);
+open (OUT, ">log/virtualconfig/testuser1/user_prefs");
+print OUT q{
+
+	header MYFOO Content-Transfer-Encoding =~ /quoted-printable/
+        body MYBODY /KIFF/
+        rawbody MYRAWBODY /KIFF/
+        full MYFULL /KIFF/
+	score MYFOO 3
+        score MYBODY 3
+        score MYRAWBODY 3
+        score MYFULL 3
+
+};
+close OUT;
+open (OUT, ">log/virtualconfig/testuser2/user_prefs");
+print OUT q{
+
+        # create a new user rule with same name
+        body MYBODY /kdjfgkfdjgkfdjgdkfg/
+        # or refer to earlier rule with new score
+	score MYFOO 3
+        score MYBODY 3
+        score MYRAWBODY 3
+        score MYFULL 3
+
+};
+close OUT;
+
+%patterns = (
+  q{ 3.0 MYFOO }, 'MYFOO',
+  q{ 3.0 MYBODY }, 'MYBODY',
+  q{ 3.0 MYRAWBODY }, 'MYRAWBODY',
+  q{ 3.0 MYFULL }, 'MYFULL',
+);
+%anti_patterns = (
+  q{  redefined at }, 'redefined_errors_in_spamd_log',
+);
+
+# use -m1 so all scans use the same child
+ok (start_spamd ("--virtual-config-dir=log/virtualconfig/%u -L -u $spamd_run_as_user -m1"));
+ok (spamcrun ("-u testuser1 < data/spam/009", \&patterns_run_cb));
+ok_all_patterns();
+clear_pattern_counters();
+
+%patterns = (
+  q{ does not include a real name }, 'TEST_NOREALNAME',
+);
+%anti_patterns = (
+  q{ 1.0 MYFOO }, 'MYFOO',
+  q{ 1.0 MYBODY }, 'MYBODY',
+  q{ 1.0 MYRAWBODY }, 'MYRAWBODY',
+  q{ 1.0 MYFULL }, 'MYFULL',
+  q{ 3.0 MYFOO }, 'MYFOO',
+  q{ 3.0 MYBODY }, 'MYBODY',
+  q{ 3.0 MYRAWBODY }, 'MYRAWBODY',
+  q{ 3.0 MYFULL }, 'MYFULL',
+);
+ok (spamcrun ("-u testuser2 < data/spam/009", \&patterns_run_cb));
+ok (stop_spamd ());
+checkfile ($spamd_stderr, \&patterns_run_cb);
+ok_all_patterns();
+

Propchange: spamassassin/trunk/t/spamd_user_rules_leak.t
------------------------------------------------------------------------------
    svn:executable = *