mirror of
https://bitbucket.org/jsuto/piler.git
synced 2024-11-08 00:21:59 +01:00
added unit test for rules
This commit is contained in:
parent
c691a4e37e
commit
36332b9af4
8358
unit_tests/1.eml
Normal file
8358
unit_tests/1.eml
Normal file
File diff suppressed because it is too large
Load Diff
37
unit_tests/2.eml
Normal file
37
unit_tests/2.eml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
Return-Path: <hwtwi@mcqw.com>
|
||||||
|
X-Original-To: sj@acts.hu
|
||||||
|
X-Envelope-To: sj@acts.hu
|
||||||
|
Received: from mcqw.com (unknown [111.177.117.51])
|
||||||
|
by lithium.acts.hu (Postfix) with ESMTP id 12AC620EBC9
|
||||||
|
for <sj@acts.hu>; Sun, 1 Nov 2015 15:34:10 +0100 (CET)
|
||||||
|
Received: from cloudvm-1e7a8fc ([127.0.0.1]) by localhost via TCP with ESMTPA; Sun, 01 Nov 2015 22:26:34 +0800
|
||||||
|
MIME-Version: 1.0
|
||||||
|
From: "JML lighting" <huixinsoft67@foxmail.com>
|
||||||
|
Sender: "JML lighting" <hwtwi@mcqw.com>
|
||||||
|
To: sj@acts.hu
|
||||||
|
Reply-To: "JML lighting" <huixinsoft67@foxmail.com>
|
||||||
|
Date: 1 Nov 2015 22:26:34 +0800
|
||||||
|
Subject: =?utf-8?B?TmV3IGRlc2lnbiB1bHRyYSBzbGltIGxlZCAgcGFuZWwgbGlnaHQ=?=
|
||||||
|
Content-Type: text/html; charset=utf-8
|
||||||
|
Content-Transfer-Encoding: base64
|
||||||
|
Message-Id: <20151101142653.111156815AF6D@acts.hu>
|
||||||
|
|
||||||
|
|
||||||
|
PGh0bWw+PGJvZHk+PFA+RGVhciBTaXIuPC9QPg0KPFA+SGF2ZSBhIGdvb2QgZGF5ICE8L1A+
|
||||||
|
DQo8UD5XZSBhcmUgYSBUVVYgYW5kIFNHUyBjZXJ0aWZpZWQgbGVkIGxpZ2h0aW5nIG1hbnVm
|
||||||
|
YWN0dXJlci4mbmJzcDsgPC9QPg0KPFA+R2xhZCB0byBzaGFyZSBvdXIgdWx0cmEgc2xpbSAm
|
||||||
|
YW1wOyBzY3Jld2xlc3MgbGVkIHBhbmVsIGxpZ2h0IGFzIGJlbG93PC9QPg0KPFA+Ny41bW0g
|
||||||
|
dWx0cmEgc2xpbSwgbm8gc2NyZXdzIGV4cG9zZWQ8QlI+MTAwbG0vdywgUmEmZ3Q7ODAsPEJS
|
||||||
|
PjEwMC0yNDBWQUMsIDMgeWVhcnMgd2FycmFudHk8L1A+DQo8UD5vdmVyIDEwLDAwMHBjcy9t
|
||||||
|
b250aCBwcm9kdWN0aW9uIGNhcGFjaXR5PEJSPlByb2Zlc3Npb25hbCBsZWQgcGFuZWwgbGln
|
||||||
|
aHQgc3VwcGxpZXIgZm9yIG92ZXIgNSB5ZWFycy48L1A+DQo8UD5RdWFsaXR5IGZpcnN0LCBk
|
||||||
|
ZWxpdmVyeSBpbiB0aW1lLHByb2Zlc3Npb25hbCBzZXJ2aWNlLCBxdWljayByZXNwb25zZS48
|
||||||
|
L1A+DQo8UD48QlI+QmVzdCBSZWdhcmRzPC9QPg0KPFA+Sk1MIGxpZ2h0aW5nIENvLiwgTHRk
|
||||||
|
LjwvUD4NCjxQPjQvRiwgRmVuZ2xpbiBCdWlsZGluZ++8jEppblhpbmcgUm9hZCA1NTEjLCBG
|
||||||
|
dXNoYW4gSW5kdXN0cmlhbCBQYXJrICxMaWFvQnUsIERvbmdHdWFuLCBHdWFuZ0RvbmcsIENo
|
||||||
|
aW5hLiA8QlI+UG9zdCBDb2RlIDogNTIzNDAxPC9QPg0KPFA+VGVsLjorODYtMDc2OS04OTEy
|
||||||
|
OTc5OTxCUj5GYXg6Kzg2LTA3NjktODkxMjk3NTU8L1A+DQo8UD4mbmJzcDs8L1A+PC9ib2R5
|
||||||
|
PjwvaHRtbD4=
|
||||||
|
|
||||||
|
|
||||||
|
|
40
unit_tests/3.eml
Normal file
40
unit_tests/3.eml
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
Return-Path: <dqyzyjy@dsmart.com.tr>
|
||||||
|
X-Original-To: sj@acts.hu
|
||||||
|
X-Envelope-To: sj@acts.hu
|
||||||
|
Received: from dsmart.com.tr (unknown [94.120.132.51])
|
||||||
|
by lithium.acts.hu (Postfix) with ESMTP id A90CC20EBC9
|
||||||
|
for <sj@acts.hu>; Sun, 1 Nov 2015 19:10:09 +0100 (CET)
|
||||||
|
From: Christabel Q. <dqyzyjy@dsmart.com.tr>
|
||||||
|
To: <sj@acts.hu>
|
||||||
|
Subject: You'll never sleep alone!
|
||||||
|
Date: Sun, 1 Nov 2015 20:02:50 +0200
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/html; charset="iso-8859-2"
|
||||||
|
Content-Transfer-Encoding: quoted-printable
|
||||||
|
Message-Id: <20151101180250.C328C6815AF6D@acts.hu>
|
||||||
|
|
||||||
|
|
||||||
|
<p style=3D"color:#5F979A; =
|
||||||
|
font-size:21px">B̎onjo͚ur =
|
||||||
|
lͤovֻely p͠eٍcker =
|
||||||
|
:-}<br/>
|
||||||
|
i don't want a =
|
||||||
|
re̔laٍtionship. =
|
||||||
|
ju͢st want a man =
|
||||||
|
to f$ck me.. i'm =
|
||||||
|
30/f with a roِund =
|
||||||
|
b00֠ty a̚nd soft =
|
||||||
|
t@ts . turn u on? :-S<br/>
|
||||||
|
My uͮserֹnam̲e =
|
||||||
|
is =
|
||||||
|
<b>Cٌhٜri̓stͭab͔&=
|
||||||
|
#101;֬l</b><br/>
|
||||||
|
Mٕy pr٘oٔfile is =
|
||||||
|
hereͭ: <a =
|
||||||
|
href=3D"http://Christabel.=
|
||||||
|
;InstaDateRequest.ru=
|
||||||
|
">http://Christabel.=
|
||||||
|
InstaDateRequest.ru</a><br/>
|
||||||
|
TͣALِK S00N!</p>
|
||||||
|
|
||||||
|
|
67
unit_tests/4.eml
Normal file
67
unit_tests/4.eml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
Return-Path: <dglehwb@njhq.com>
|
||||||
|
X-Original-To: sj@acts.hu
|
||||||
|
X-Envelope-To: sj@acts.hu
|
||||||
|
Received: from njhq.com (unknown [180.97.194.14])
|
||||||
|
by lithium.acts.hu (Postfix) with ESMTP id B0EFB20EBC9
|
||||||
|
for <sj@acts.hu>; Mon, 2 Nov 2015 13:48:44 +0100 (CET)
|
||||||
|
Received: from cho2015073100343 ([127.0.0.1]) by localhost via TCP with ESMTPA; Mon, 02 Nov 2015 20:40:42 +0800
|
||||||
|
MIME-Version: 1.0
|
||||||
|
From: "QH Lighting" <sdf32dfvs@163.com>
|
||||||
|
Sender: "QH Lighting" <dglehwb@njhq.com>
|
||||||
|
To: sj@acts.hu
|
||||||
|
Reply-To: "QH Lighting" <sdf32dfvs@163.com>
|
||||||
|
Date: 2 Nov 2015 20:40:42 +0800
|
||||||
|
Subject: =?utf-8?B?UkU6IDYuNVcgMzYwwrA3MjAgTEVEIEJ1bGI=?=
|
||||||
|
Content-Type: text/html; charset=utf-8
|
||||||
|
Content-Transfer-Encoding: base64
|
||||||
|
Message-Id: <20151102124131.F19436822FDA1@acts.hu>
|
||||||
|
|
||||||
|
|
||||||
|
PGh0bWw+PGJvZHk+PFAgc3R5bGU9IlRFWFQtVFJBTlNGT1JNOiBub25lOyBCQUNLR1JPVU5E
|
||||||
|
LUNPTE9SOiByZ2IoMjU1LDI1NSwyNTUpOyBURVhULUlOREVOVDogMHB4OyBGT05UOiAxMnB0
|
||||||
|
ICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjsgV0hJVEUtU1BBQ0U6IG5vcm1hbDsgTEVUVEVS
|
||||||
|
LVNQQUNJTkc6IG5vcm1hbDsgQ09MT1I6IHJnYigwLDAsMCk7IE1BUkdJTi1MRUZUOiAwY207
|
||||||
|
IE1BUkdJTi1SSUdIVDogMGNtOyBXT1JELVNQQUNJTkc6IDBweDsgLXdlYmtpdC10ZXh0LXN0
|
||||||
|
cm9rZS13aWR0aDogMHB4Ij5IZWxsbyw8P3htbDpuYW1lc3BhY2UgcHJlZml4ID0gbyAvPjxv
|
||||||
|
OnA+PC9vOnA+PC9QPg0KPFAgc3R5bGU9IlRFWFQtVFJBTlNGT1JNOiBub25lOyBCQUNLR1JP
|
||||||
|
VU5ELUNPTE9SOiByZ2IoMjU1LDI1NSwyNTUpOyBURVhULUlOREVOVDogMHB4OyBGT05UOiAx
|
||||||
|
MnB0ICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjsgV0hJVEUtU1BBQ0U6IG5vcm1hbDsgTEVU
|
||||||
|
VEVSLVNQQUNJTkc6IG5vcm1hbDsgQ09MT1I6IHJnYigwLDAsMCk7IE1BUkdJTi1MRUZUOiAw
|
||||||
|
Y207IE1BUkdJTi1SSUdIVDogMGNtOyBXT1JELVNQQUNJTkc6IDBweDsgLXdlYmtpdC10ZXh0
|
||||||
|
LXN0cm9rZS13aWR0aDogMHB4Ij5Ib3BlIGV2ZXJ5dGhpbmcgaXMgZG9pbmcgd2VsbC48bzpw
|
||||||
|
PjwvbzpwPjwvUD4NCjxQIHN0eWxlPSJURVhULVRSQU5TRk9STTogbm9uZTsgQkFDS0dST1VO
|
||||||
|
RC1DT0xPUjogcmdiKDI1NSwyNTUsMjU1KTsgVEVYVC1JTkRFTlQ6IDBweDsgRk9OVDogMTJw
|
||||||
|
dCAnVGltZXMgTmV3IFJvbWFuJywgc2VyaWY7IFdISVRFLVNQQUNFOiBub3JtYWw7IExFVFRF
|
||||||
|
Ui1TUEFDSU5HOiBub3JtYWw7IENPTE9SOiByZ2IoMCwwLDApOyBNQVJHSU4tTEVGVDogMGNt
|
||||||
|
OyBNQVJHSU4tUklHSFQ6IDBjbTsgV09SRC1TUEFDSU5HOiAwcHg7IC13ZWJraXQtdGV4dC1z
|
||||||
|
dHJva2Utd2lkdGg6IDBweCI+SSBsaWtlIHRvIGludHJvZHVjZSBvdXIgaGkgZWZmaWNpZW5j
|
||||||
|
eSZuYnNwOyBwb3B1bGFyIExFRCBCdWxiICZhbXA7IExFRCBlbmVyZ3kgc2F2aW5nIGxhbXAg
|
||||||
|
dG8geW91ICwgcXVhbGl0eSBhbmQgcHJpY2UgaXMgdmVyeSBnb29kICwgdGhlIGNlcnRpZmlj
|
||||||
|
YXRpb24gLCBkYXRhIHNoZWV0IGV0YyBhcmUgYWxsIGF2YWlsYWJsZS48bzpwPjwvbzpwPjwv
|
||||||
|
UD4NCjxQIHN0eWxlPSJURVhULVRSQU5TRk9STTogbm9uZTsgQkFDS0dST1VORC1DT0xPUjog
|
||||||
|
cmdiKDI1NSwyNTUsMjU1KTsgVEVYVC1JTkRFTlQ6IDBweDsgRk9OVDogMTJwdCAnVGltZXMg
|
||||||
|
TmV3IFJvbWFuJywgc2VyaWY7IFdISVRFLVNQQUNFOiBub3JtYWw7IExFVFRFUi1TUEFDSU5H
|
||||||
|
OiBub3JtYWw7IENPTE9SOiByZ2IoMCwwLDApOyBNQVJHSU4tTEVGVDogMGNtOyBNQVJHSU4t
|
||||||
|
UklHSFQ6IDBjbTsgV09SRC1TUEFDSU5HOiAwcHg7IC13ZWJraXQtdGV4dC1zdHJva2Utd2lk
|
||||||
|
dGg6IDBweCI+SWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIG91ciBwcm9kdWN0cywgd2VsY29t
|
||||||
|
ZSB0byBjb250YWN0IG1lLjxvOnA+PC9vOnA+PC9QPg0KPFAgc3R5bGU9IlRFWFQtVFJBTlNG
|
||||||
|
T1JNOiBub25lOyBCQUNLR1JPVU5ELUNPTE9SOiByZ2IoMjU1LDI1NSwyNTUpOyBURVhULUlO
|
||||||
|
REVOVDogMHB4OyBGT05UOiAxMnB0ICdUaW1lcyBOZXcgUm9tYW4nLCBzZXJpZjsgV0hJVEUt
|
||||||
|
U1BBQ0U6IG5vcm1hbDsgTEVUVEVSLVNQQUNJTkc6IG5vcm1hbDsgQ09MT1I6IHJnYigwLDAs
|
||||||
|
MCk7IE1BUkdJTi1MRUZUOiAwY207IE1BUkdJTi1SSUdIVDogMGNtOyBXT1JELVNQQUNJTkc6
|
||||||
|
IDBweDsgLXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMHB4Ij5SZ2RzPG86cD48L286cD48
|
||||||
|
L1A+DQo8UCBzdHlsZT0iVEVYVC1UUkFOU0ZPUk06IG5vbmU7IEJBQ0tHUk9VTkQtQ09MT1I6
|
||||||
|
IHJnYigyNTUsMjU1LDI1NSk7IFRFWFQtSU5ERU5UOiAwcHg7IEZPTlQ6IDEycHQgJ1RpbWVz
|
||||||
|
IE5ldyBSb21hbicsIHNlcmlmOyBXSElURS1TUEFDRTogbm9ybWFsOyBMRVRURVItU1BBQ0lO
|
||||||
|
Rzogbm9ybWFsOyBDT0xPUjogcmdiKDAsMCwwKTsgTUFSR0lOLUxFRlQ6IDBjbTsgTUFSR0lO
|
||||||
|
LVJJR0hUOiAwY207IFdPUkQtU1BBQ0lORzogMHB4OyAtd2Via2l0LXRleHQtc3Ryb2tlLXdp
|
||||||
|
ZHRoOiAwcHgiPk1pY2hlYWw8L1A+DQo8UCBzdHlsZT0iVEVYVC1UUkFOU0ZPUk06IG5vbmU7
|
||||||
|
IEJBQ0tHUk9VTkQtQ09MT1I6IHJnYigyNTUsMjU1LDI1NSk7IFRFWFQtSU5ERU5UOiAwcHg7
|
||||||
|
IEZPTlQ6IDEycHQgJ1RpbWVzIE5ldyBSb21hbicsIHNlcmlmOyBXSElURS1TUEFDRTogbm9y
|
||||||
|
bWFsOyBMRVRURVItU1BBQ0lORzogbm9ybWFsOyBDT0xPUjogcmdiKDAsMCwwKTsgTUFSR0lO
|
||||||
|
LUxFRlQ6IDBjbTsgTUFSR0lOLVJJR0hUOiAwY207IFdPUkQtU1BBQ0lORzogMHB4OyAtd2Vi
|
||||||
|
a2l0LXRleHQtc3Ryb2tlLXdpZHRoOiAwcHgiPlFIIGxpZ2h0aW5nIExURDwvUD48L2JvZHk+
|
||||||
|
PC9odG1sPg==
|
||||||
|
|
||||||
|
|
||||||
|
|
8358
unit_tests/5.eml
Normal file
8358
unit_tests/5.eml
Normal file
File diff suppressed because it is too large
Load Diff
@ -24,11 +24,14 @@ RUNNING_GROUP = `@id_bin@ -gn $(RUNNING_USER)`
|
|||||||
|
|
||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
|
|
||||||
all: check_parser_utils smtp
|
all: check_parser_utils check_rules smtp
|
||||||
|
|
||||||
check_parser_utils: check_parser_utils.c ../src/libpiler.a
|
check_parser_utils: check_parser_utils.c ../src/libpiler.a
|
||||||
$(CC) $(CFLAGS) $(INCDIR) $(DEFS) -o $@ $< -lpiler $(LIBS) $(LIBDIR)
|
$(CC) $(CFLAGS) $(INCDIR) $(DEFS) -o $@ $< -lpiler $(LIBS) $(LIBDIR)
|
||||||
|
|
||||||
|
check_rules: check_rules.c ../src/libpiler.a
|
||||||
|
$(CC) $(CFLAGS) $(INCDIR) $(DEFS) -o $@ $< -lpiler $(LIBS) $(LIBDIR)
|
||||||
|
|
||||||
smtp: smtp.c ../src/libpiler.a
|
smtp: smtp.c ../src/libpiler.a
|
||||||
$(CC) $(CFLAGS) $(INCDIR) $(DEFS) -o $@ $< -lpiler $(LIBS) $(LIBDIR)
|
$(CC) $(CFLAGS) $(INCDIR) $(DEFS) -o $@ $< -lpiler $(LIBS) $(LIBDIR)
|
||||||
|
|
||||||
@ -36,7 +39,7 @@ install:
|
|||||||
@echo
|
@echo
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f check_parser_utils smtp
|
rm -f check_parser_utils check_rules smtp
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f Makefile
|
rm -f Makefile
|
||||||
|
177
unit_tests/check_rules.c
Normal file
177
unit_tests/check_rules.c
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
/*
|
||||||
|
* check_rules.c, SJ
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <locale.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <assert.h>
|
||||||
|
#include "../src/piler.h"
|
||||||
|
|
||||||
|
|
||||||
|
struct rule_test {
|
||||||
|
char filename[SMALLBUFSIZE];
|
||||||
|
char *expected_result;
|
||||||
|
int days;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct rule_query {
|
||||||
|
char query[SMALLBUFSIZE];
|
||||||
|
uint64 id;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct rule_query rules[] = {
|
||||||
|
{"insert into archiving_rule (`from`, `days`) values('hirlevel@jatekokbirodalma.hu', 101)", 0},
|
||||||
|
{"insert into archiving_rule (`to`, `days`) values('xxx@acts.hu', 102)", 0},
|
||||||
|
{"insert into archiving_rule (`to`, `subject`, `days`) values('sj@acts.hu', 'ultra slim', 103)", 0},
|
||||||
|
{"insert into archiving_rule (`body`, `days`) values('quality and price is very good', 104)", 0},
|
||||||
|
{"insert into archiving_rule (`attachment_type`, _attachment_size, attachment_size, `days`) values('image', '>', 2000000, 105)", 0},
|
||||||
|
{"insert into archiving_rule (`attachment_type`, _attachment_size, attachment_size, `days`) values('image', '>', 20000, 106)", 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
static void fill_rule_table(struct __config *cfg){
|
||||||
|
int i;
|
||||||
|
struct session_data sdata;
|
||||||
|
|
||||||
|
if(open_database(&sdata, cfg) == ERR){
|
||||||
|
printf("cannot open database\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("adding testing rules...\n");
|
||||||
|
|
||||||
|
for(i=0; i<sizeof(rules)/sizeof(struct rule_query); i++){
|
||||||
|
p_query(&sdata, rules[i].query, cfg);
|
||||||
|
rules[i].id = mysql_insert_id(&(sdata.mysql));
|
||||||
|
}
|
||||||
|
|
||||||
|
close_database(&sdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void restore_rule_table(struct __config *cfg){
|
||||||
|
int i;
|
||||||
|
char buf[SMALLBUFSIZE];
|
||||||
|
struct session_data sdata;
|
||||||
|
|
||||||
|
if(open_database(&sdata, cfg) == ERR){
|
||||||
|
printf("cannot open database\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("removing testing rules...\n");
|
||||||
|
|
||||||
|
for(i=0; i<sizeof(rules)/sizeof(struct rule_query); i++){
|
||||||
|
snprintf(buf, sizeof(buf)-1, "delete from archiving_rule where id=%llu", rules[i].id);
|
||||||
|
p_query(&sdata, buf, cfg);
|
||||||
|
}
|
||||||
|
|
||||||
|
close_database(&sdata);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
static void test_archiving_rule(struct __config *cfg){
|
||||||
|
int i, j;
|
||||||
|
char *rule;
|
||||||
|
struct session_data sdata;
|
||||||
|
struct parser_state state;
|
||||||
|
struct __data data;
|
||||||
|
struct stat st;
|
||||||
|
struct rule_test rule_test[] = {
|
||||||
|
{"1.eml", "domain=,from=hirlevel@jatekokbirodalma.hu,to=,subject=,body=,size0,att.name=,att.type=,att.size0,spam=-1", 0},
|
||||||
|
{"2.eml", "domain=,from=,to=sj@acts.hu,subject=ultra slim,body=,size0,att.name=,att.type=,att.size0,spam=-1", 0},
|
||||||
|
{"3.eml", NULL, 0},
|
||||||
|
{"4.eml", "domain=,from=,to=,subject=,body=quality and price is very good,size0,att.name=,att.type=,att.size0,spam=-1", 0},
|
||||||
|
{"5.eml", "domain=,from=,to=,subject=,body=,size0,att.name=,att.type=image,att.size>20000,spam=-1", 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
if(open_database(&sdata, cfg) == ERR){
|
||||||
|
printf("cannot open database\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
inithash(data.mydomains);
|
||||||
|
load_mydomains(&sdata, &data, cfg);
|
||||||
|
|
||||||
|
initrules(data.archiving_rules);
|
||||||
|
|
||||||
|
load_rules(&sdata, &data, data.archiving_rules, SQL_ARCHIVING_RULE_TABLE, cfg);
|
||||||
|
|
||||||
|
for(i=0; i<sizeof(rule_test)/sizeof(struct rule_test); i++){
|
||||||
|
|
||||||
|
if(stat(rule_test[i].filename, &st) != 0){
|
||||||
|
fprintf(stderr, "%s is not found, skipping\n", rule_test[i].filename);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
init_session_data(&sdata, cfg);
|
||||||
|
|
||||||
|
sdata.delivered = 0;
|
||||||
|
sdata.tot_len = st.st_size;
|
||||||
|
|
||||||
|
snprintf(sdata.ttmpfile, SMALLBUFSIZE-1, "%s", rule_test[i].filename);
|
||||||
|
snprintf(sdata.filename, SMALLBUFSIZE-1, "%s", rule_test[i].filename);
|
||||||
|
snprintf(sdata.tmpframe, SMALLBUFSIZE-1, "%s.m", rule_test[i].filename);
|
||||||
|
|
||||||
|
state = parse_message(&sdata, 1, &data, cfg);
|
||||||
|
post_parse(&sdata, &state, cfg);
|
||||||
|
|
||||||
|
rule = check_againt_ruleset(data.archiving_rules, &state, st.st_size, sdata.spam_message);
|
||||||
|
|
||||||
|
|
||||||
|
for(j=1; j<=state.n_attachments; j++){
|
||||||
|
unlink(state.attachments[j].internalname);
|
||||||
|
}
|
||||||
|
|
||||||
|
unlink(sdata.tmpframe);
|
||||||
|
|
||||||
|
printf("%s, '%s'\n", rule_test[i].filename, rule);
|
||||||
|
|
||||||
|
if(rule == NULL && rule == rule_test[i].expected_result) continue;
|
||||||
|
|
||||||
|
assert(strcmp(rule, rule_test[i].expected_result) == 0 && "test_archiving_rule()");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
clearrules(data.archiving_rules);
|
||||||
|
|
||||||
|
clearhash(data.mydomains);
|
||||||
|
|
||||||
|
close_database(&sdata);
|
||||||
|
|
||||||
|
printf("test_archiving_rule() OK\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int main(){
|
||||||
|
struct __config cfg;
|
||||||
|
|
||||||
|
if(!can_i_write_current_directory()) __fatal("cannot write current directory!");
|
||||||
|
|
||||||
|
(void) openlog("rule_test", LOG_PID, LOG_MAIL);
|
||||||
|
|
||||||
|
cfg = read_config("test.conf");
|
||||||
|
|
||||||
|
setlocale(LC_MESSAGES, cfg.locale);
|
||||||
|
setlocale(LC_CTYPE, cfg.locale);
|
||||||
|
|
||||||
|
fill_rule_table(&cfg);
|
||||||
|
|
||||||
|
|
||||||
|
test_archiving_rule(&cfg);
|
||||||
|
|
||||||
|
restore_rule_table(&cfg);
|
||||||
|
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -22,8 +22,8 @@ min_word_len=1
|
|||||||
mmap_dedup_test=0
|
mmap_dedup_test=0
|
||||||
mysql_connect_timeout=2
|
mysql_connect_timeout=2
|
||||||
mysqldb=piler
|
mysqldb=piler
|
||||||
mysqlpwd=verystrongpassword
|
mysqlpwd=piler123
|
||||||
mysqlsocket=/var/run/mysqld/mysqld.sock
|
mysqlsocket=/var/run/mysql/mysql.sock
|
||||||
mysqluser=piler
|
mysqluser=piler
|
||||||
number_of_worker_processes=10
|
number_of_worker_processes=10
|
||||||
pemfile=/usr/local/etc/piler.pem
|
pemfile=/usr/local/etc/piler.pem
|
||||||
|
Loading…
Reference in New Issue
Block a user