Browse Source

Restore testing framework.

tags/0.7.1
Vsevolod Stakhov 9 years ago
parent
commit
491e42b434

+ 1
- 4
test/CMakeLists.txt View File

@@ -1,5 +1,4 @@
SET(TESTSRC rspamd_expression_test.c
rspamd_memcached_test.c
rspamd_mem_pool_test.c
rspamd_statfile_test.c
rspamd_fuzzy_test.c
@@ -8,8 +7,7 @@ SET(TESTSRC rspamd_expression_test.c
rspamd_dns_test.c
rspamd_async_test.c
rspamd_dkim_test.c
rspamd_rrd_test.c
rspamd_rcl_test.c)
rspamd_rrd_test.c)

ADD_EXECUTABLE(rspamd-test EXCLUDE_FROM_ALL ${TESTSRC})
SET_TARGET_PROPERTIES(rspamd-test PROPERTIES LINKER_LANGUAGE C)
@@ -22,7 +20,6 @@ TARGET_LINK_LIBRARIES(rspamd-test ${CMAKE_REQUIRED_LIBRARIES})
TARGET_LINK_LIBRARIES(rspamd-test rspamd-mime)
TARGET_LINK_LIBRARIES(rspamd-test rspamd-server)
TARGET_LINK_LIBRARIES(rspamd-test rspamd-util)
TARGET_LINK_LIBRARIES(rspamd-test rspamd-rcl)
TARGET_LINK_LIBRARIES(rspamd-test hiredis)
IF(HAVE_LIBEVENT2)
TARGET_LINK_LIBRARIES(rspamd-test event_pthreads)

+ 0
- 16
test/Makefile.in View File

@@ -1,16 +0,0 @@
.PHONY: clean

all: rspamd_test_suite

rspamd_test_suite: $(OBJECTS) $(OBJ_DEPENDS)
$(CC) $(PTHREAD_LDFLAGS) $(LDFLAGS) $(OBJECTS) $(OBJ_DEPENDS) $(LIBS) -o rspamd_test_suite

run_test: rspamd_test_suite
gtester --verbose -k -o=rspamd_test.xml ./rspamd_test_suite
less rspamd_test.xml && rm -f rspamd_test.xml

clean:
rm -f *.o rspamd_test_suite *.core rspamd_test.xml

dist-clean: clean
rm -f Makefile

+ 10
- 11
test/rspamd_dkim_test.c View File

@@ -26,14 +26,13 @@
#include "main.h"
#include "dkim.h"

static const gchar test_dkim_sig[] = "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; "
"bh=xTpleJNUaXMzaRU2xnfInn4n9hf/UHzWSuYzJ3s2WBc=; "
"b=cPya7FKbcJnCqMlCETci4ZlQTI/Tfw8y1/+AUSU+YBaDgLhsZMDPQMO0zzMvQM+c+E"
"i/J+BAckB9JRyPr9xXtV0ORSmUkFgeMyURopwdNzKQ9UB/JnGHj6i11ceV3b20UAYiIu"
"qrXhJD+YEgHYXVtfzTC4OLTJGjEQguEn2+RtlZV60aWsPizK+mqlVO4G57RGklp0vnqB"
"oc2XUGMVmOaCvVpQkJdJud1r5aKLhr9Bs0sM8/MaYugwmdSk2rLJUMfUPRyUmIGv3BAG"
"bwdvXghyl7HNOqPYwXvk/B8C7++k0VUUOix5M/XrcBMNyJu2fMZJMD8KSn3udFjp9vZ6"
"pRqg==";
static const gchar test_dkim_sig[] = "v=1; a=rsa-sha256; c=relaxed/relaxed; "
"d=highsecure.ru; s=dkim; t=1410516996; "
"bh=guFoWYHWVzFRqVyAQebnvPcdm7bUQo7pRHt/uIHD7gs=; "
"h=Message-ID:Date:From:MIME-Version:To:Subject:Content-Type:Content-Transfer-Encoding; "
"b=PCiECkOaPFb99DW+gApgfmdlTUo6XN6YXjnj52Cxoz2FoA857B0ZHFgeQe4JAKHuhW"
"oq3BLHap0GcMTTpSOgfQOKa8Df35Ns11JoOFjdBQ8GpM99kOrJP+vZcT8b7AMfthYm0Kwy"
"D9TjlkpScuoY5LjsWVnijh9dSNVLFqLatzg=;";

extern struct event_base *base;

@@ -72,12 +71,12 @@ rspamd_dkim_test_func ()
cfg = (struct rspamd_config *)g_malloc (sizeof (struct rspamd_config));
bzero (cfg, sizeof (struct rspamd_config));
cfg->cfg_pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
cfg->dns_retransmits = 10;
cfg->dns_timeout = 1000;
cfg->dns_retransmits = 2;
cfg->dns_timeout = 0.5;

pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());

resolver = dns_resolver_init (base, cfg);
resolver = dns_resolver_init (NULL, base, cfg);

g_assert (resolver != NULL);


+ 56
- 59
test/rspamd_dns_test.c View File

@@ -1,110 +1,107 @@

#include "../src/config.h"
#include "config.h"
#include "tests.h"
#include "../src/dns.h"
#include "../src/logger.h"
#include "../src/main.h"
#include "../src/events.h"
#include "../src/cfg_file.h"
#include "dns.h"
#include "logger.h"
#include "main.h"
#include "events.h"
#include "cfg_file.h"

static guint requests = 0;
extern struct event_base *base;
struct rspamd_dns_resolver *resolver;

static void
test_dns_cb (struct rspamd_dns_reply *reply, gpointer arg)
gboolean
session_fin (gpointer unused)
{
union rspamd_reply_element *elt;
GList *cur;
struct timeval tv;

tv.tv_sec = 0;
tv.tv_usec = 0;
event_loopexit (&tv);

msg_debug ("got reply with code %s for request %s", dns_strerror (reply->code), reply->request->requested_name);
if (reply->code == DNS_RC_NOERROR) {
cur = reply->elements;
return TRUE;
}

static void
test_dns_cb (struct rdns_reply *reply, gpointer arg)
{
struct rdns_reply_entry *cur;
const struct rdns_request_name *name =
rdns_request_get_name (reply->request, NULL);

msg_debug ("got reply with code %s for request %s",
rdns_strerror (reply->code), name->name);
if (reply->code == RDNS_RC_NOERROR) {
cur = reply->entries;
while (cur) {
elt = cur->data;
switch (reply->request->type) {
case DNS_REQUEST_A:
msg_debug ("got ip: %s", inet_ntoa (elt->a.addr[0]));
switch (cur->type) {
case RDNS_REQUEST_A:
msg_debug ("got ip: %s", inet_ntoa (cur->content.a.addr));
break;
case DNS_REQUEST_PTR:
msg_debug ("got name %s", elt->ptr.name);
case RDNS_REQUEST_PTR:
msg_debug ("got name %s", cur->content.ptr.name);
break;
case DNS_REQUEST_TXT:
msg_debug ("got txt %s", elt->txt.data);
case RDNS_REQUEST_TXT:
msg_debug ("got txt %s", cur->content.txt.data);
break;
case DNS_REQUEST_SPF:
msg_debug ("got spf %s", elt->spf.data);
case RDNS_REQUEST_SPF:
msg_debug ("got spf %s", cur->content.txt.data);
break;
case DNS_REQUEST_SRV:
msg_debug ("got srv pri: %d, weight: %d, port: %d, target: %s", elt->srv.weight,
elt->srv.priority, elt->srv.port, elt->srv.target);
case RDNS_REQUEST_SRV:
msg_debug ("got srv pri: %d, weight: %d, port: %d, target: %s", cur->content.srv.weight,
cur->content.srv.priority, cur->content.srv.port, cur->content.srv.target);
break;
case DNS_REQUEST_MX:
msg_debug ("got mx %s:%d", elt->mx.name, elt->mx.priority);
case RDNS_REQUEST_MX:
msg_debug ("got mx %s:%d", cur->content.mx.name, cur->content.mx.priority);
break;
}
cur = g_list_next (cur);
cur = cur->next;
}
}
if (-- requests == 0) {
destroy_session (reply->request->session);
session_fin (NULL);
}
}

gboolean
session_fin (gpointer unused)
{
struct timeval tv;

tv.tv_sec = 0;
tv.tv_usec = 0;
event_loopexit (&tv);

return TRUE;
}

void
rspamd_dns_test_func ()
{
struct rspamd_dns_resolver *resolver;

struct rspamd_config *cfg;
rspamd_mempool_t *pool;
struct rspamd_async_session *s;
struct in_addr ina;

cfg = (struct rspamd_config *)g_malloc (sizeof (struct rspamd_config));
bzero (cfg, sizeof (struct rspamd_config));
cfg->cfg_pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());
cfg->dns_retransmits = 10;
cfg->dns_timeout = 1000;
cfg->dns_retransmits = 2;
cfg->dns_timeout = 0.5;

pool = rspamd_mempool_new (rspamd_mempool_suggest_size ());

s = new_async_session (pool, session_fin, NULL, NULL, NULL);

resolver = dns_resolver_init (base, cfg);

ina.s_addr = inet_addr ("81.19.70.3");
resolver = dns_resolver_init (NULL, base, cfg);

requests ++;
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, DNS_REQUEST_A, "google.com"));
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_A, "google.com"));
requests ++;
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, DNS_REQUEST_PTR, &ina));
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_PTR, "81.19.70.3"));
requests ++;
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, DNS_REQUEST_MX, "rambler.ru"));
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_MX, "rambler.ru"));
requests ++;
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, DNS_REQUEST_TXT, "rambler.ru"));
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_TXT, "rambler.ru"));
requests ++;
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, DNS_REQUEST_TXT, "google.com"));
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_TXT, "google.com"));
requests ++;
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, DNS_REQUEST_SPF, "rambler.ru"));
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_SPF, "rambler.ru"));
requests ++;
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, DNS_REQUEST_SRV, "xmpp-server", "tcp", "jabber.org"));
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_SRV, "_xmpp-server._tcp.jabber.org"));
requests ++;
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, DNS_REQUEST_TXT, "non-existent.arpa"));
g_assert (make_dns_request (resolver, s, pool, test_dns_cb, NULL, RDNS_REQUEST_TXT, "non-existent.arpa"));

g_assert (resolver != NULL);



event_loop (0);
}

+ 4
- 4
test/rspamd_expression_test.c View File

@@ -1,7 +1,7 @@
#include "../src/config.h"
#include "../src/main.h"
#include "../src/cfg_file.h"
#include "../src/expressions.h"
#include "config.h"
#include "main.h"
#include "cfg_file.h"
#include "expressions.h"
#include "tests.h"

/* Vector of test expressions */

+ 3
- 3
test/rspamd_fuzzy_test.c View File

@@ -1,6 +1,6 @@
#include "../src/config.h"
#include "../src/main.h"
#include "../src/fuzzy.h"
#include "config.h"
#include "main.h"
#include "fuzzy.h"
#include "tests.h"

static char *s1 = "This is sample test text.\r\n"

+ 2
- 4
test/rspamd_mem_pool_test.c View File

@@ -1,7 +1,5 @@


#include "../src/config.h"
#include "../src/mem_pool.h"
#include "config.h"
#include "mem_pool.h"
#include "tests.h"

#define TEST_BUF "test bufffer"

+ 0
- 85
test/rspamd_memcached_test.c View File

@@ -1,85 +0,0 @@
#include "../src/config.h"
#include "../src/main.h"
#include "../src/cfg_file.h"
#include "../src/memcached.h"
#include "tests.h"

static const u_char *buf = "test";

static void
memcached_callback (memcached_ctx_t *ctx, memc_error_t error, void *data)
{
struct timeval tv;

switch (ctx->op) {
case CMD_CONNECT:
if (error != OK) {
msg_warn ("Connect failed, skipping test");
memc_close_ctx (ctx);
tv.tv_sec = 0;
tv.tv_usec = 0;
event_loopexit (&tv);
}
msg_debug ("Connect ok");
memc_set (ctx, ctx->param, 60);
break;
case CMD_READ:
g_assert (error == OK);
g_assert (!memcmp(ctx->param->buf, buf, ctx->param->bufsize));
msg_debug ("Read ok");
memc_close_ctx (ctx);
tv.tv_sec = 0;
tv.tv_usec = 0;
event_loopexit (&tv);
break;
case CMD_WRITE:
if (error != OK) {
msg_warn ("Connect failed, skipping test");
memc_close_ctx (ctx);
tv.tv_sec = 0;
tv.tv_usec = 0;
event_loopexit (&tv);
}
msg_debug ("Write ok");
ctx->param->buf = g_malloc (sizeof (buf));
bzero (ctx->param->buf, sizeof (buf));
memc_get (ctx, ctx->param);
break;
default:
return;
}
}
void
rspamd_memcached_test_func ()
{
memcached_ctx_t *ctx;
memcached_param_t *param;
struct in_addr addr;

ctx = g_malloc (sizeof (memcached_ctx_t));
param = g_malloc (sizeof (memcached_param_t));
bzero (ctx, sizeof (memcached_ctx_t));
bzero (param, sizeof (memcached_param_t));

event_init ();

ctx->callback = memcached_callback;
ctx->callback_data = (void *)param;
ctx->protocol = TCP_TEXT;
inet_aton ("127.0.0.1", &addr);
memcpy (&ctx->addr, &addr, sizeof (struct in_addr));
ctx->port = htons (11211);
ctx->timeout.tv_sec = 1;
ctx->timeout.tv_usec = 0;
ctx->sock = -1;
ctx->options = MEMC_OPT_DEBUG;
rspamd_strlcpy (param->key, buf, sizeof (param->key));
param->buf = buf;
param->bufsize = strlen (buf);
ctx->param = param;
g_assert (memc_init_ctx (ctx) != -1);

event_loop (0);
}


+ 0
- 196
test/rspamd_rcl_test.c View File

@@ -1,196 +0,0 @@
/* Copyright (c) 2013, Vsevolod Stakhov
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#include "config.h"
#include "rcl/rcl.h"
#include "main.h"
#include "json/jansson.h"
#include "tests.h"

const gchar *rcl_test_valid[] = {
/* Json like */
"{"
"\"key1\": value;"
"\"key1\": value2;"
"\"key1\": \"value;\""
"}\n",
/* Nginx like */
"section1 { param1 = value; param2 = value, "
"section3 {param = value; param2 = value, param3 = [\"value1\", value2, 100500]}}\n"
"section2 { param1 = {key = value}, param1 = [\"key\"]}",
/* Numbers */
"key = 1s\n"
"key2 = 1min\n"
"key3 = 1kb\n"
"key4 = 5M\n"
"key5 = 10mS\n"
"key6 = 10y\n",
/* Strings */
"key = \"some string\";"
"key1 = /some/path;"
"key3 = 111some,"
"key4: s1,"
"\"key5\": \"\\n\\r123\"",
""
"#packagesite http//pkg.freebsd.org/freebsd-9-amd64/latest\n"
"#packagesite http//pkg.freebsd.org/freebsd-9-amd64/latest\n"
"packagesite: http//pkg.freebsd.org/freebsd-9-amd64/latest\n"
"ALIAS : {\n"
" all-depends: query %dn-%dv,\n"
" annotations: info -A,\n"
" build-depends: info -qd,\n"
" download: fetch,\n"
" iinfo: info -i -g -x,\n"
" isearch: search -i -g -x,\n"
" leaf: query -e '%a == 0' '%n-%v',\n"
" leaf: query -e '%a == 0' '%n-%v',\n"
" list: info -ql,\n"
" origin: info -qo,\n"
" provided-depends: info -qb,\n"
" raw: info -R,\n"
" required-depends: info -qr,\n"
" shared-depends: info -qB,\n"
" show: info -f -k,\n"
" size: info -sq,\n"
" }\n"
"\n"
"repo_dirs : [\n"
" /home/bapt,\n"
" /usr/local/etc\n"
"]\n"
"",
/* Macros */
"section1 {key = value; section {\n"
"param = \"value\";\n"
"param2 = value\n"
"array = [ 1, 1mb, test]}\n"
".includes \"./test.cfg\"}",
NULL
};

static const gchar test_pubkey[] = ""
"-----BEGIN PUBLIC KEY-----\n"
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlhk2u5nbTVgEskmS+qZcAj339\n"
"bLwEK/TXdd0G3d4BVKpF712frw+YwetRdmRRYL5EdjiF01Bv3s6QmsThAJX/li/c\n"
"Q15YFxhvq9DZ0qJmL7e1NzORo6m/WLRK9wxWA+PXSvSUKrlZ3kt9ygD4z5QZ3/td\n"
"qil9VM6Mz7P1HJ0KywIDAQAB\n"
"-----END PUBLIC KEY-----\n";

void
rspamd_rcl_test_func (void)
{
struct rspamd_cl_parser *parser, *parser2;
rspamd_cl_object_t *obj;
const gchar **cur;
guchar *emitted;
GError *err = NULL;
struct timespec start, end;
gdouble seconds;
json_t *json;
json_error_t jerr;

cur = rcl_test_valid;
while (*cur != NULL) {
parser = rspamd_cl_parser_new (RSPAMD_CL_FLAG_KEY_LOWERCASE);
rspamd_cl_pubkey_add (parser, test_pubkey, sizeof (test_pubkey) - 1, &err);
g_assert_no_error (err);
g_assert (parser != NULL);
rspamd_cl_parser_add_chunk (parser, *cur, strlen (*cur), &err);
g_assert_no_error (err);
obj = rspamd_cl_parser_get_object (parser, &err);
g_assert_no_error (err);
/* Test config emitting */
emitted = rspamd_cl_object_emit (obj, RSPAMD_CL_EMIT_CONFIG);
g_assert (emitted != NULL);
msg_debug ("got config output: %s", emitted);
parser2 = rspamd_cl_parser_new (RSPAMD_CL_FLAG_KEY_LOWERCASE);
g_assert (parser2 != NULL);
rspamd_cl_parser_add_chunk (parser2, emitted, strlen (emitted), &err);
g_assert_no_error (err);
rspamd_cl_parser_free (parser2);
g_free (emitted);
/* Test json emitted */
emitted = rspamd_cl_object_emit (obj, RSPAMD_CL_EMIT_JSON);
g_assert (emitted != NULL);
msg_debug ("got json output: %s", emitted);
parser2 = rspamd_cl_parser_new (RSPAMD_CL_FLAG_KEY_LOWERCASE);
g_assert (parser2 != NULL);
rspamd_cl_parser_add_chunk (parser2, emitted, strlen (emitted), &err);
g_assert_no_error (err);
rspamd_cl_parser_free (parser2);
g_free (emitted);
/* Compact json */
emitted = rspamd_cl_object_emit (obj, RSPAMD_CL_EMIT_JSON_COMPACT);
g_assert (emitted != NULL);
msg_debug ("got json compacted output: %s", emitted);
parser2 = rspamd_cl_parser_new (RSPAMD_CL_FLAG_KEY_LOWERCASE);
g_assert (parser2 != NULL);
rspamd_cl_parser_add_chunk (parser2, emitted, strlen (emitted), &err);
g_assert_no_error (err);
rspamd_cl_parser_free (parser2);
g_free (emitted);

/* Cleanup */
rspamd_cl_parser_free (parser);
rspamd_cl_obj_unref (obj);
cur ++;
}

/* Load a big json */
parser = rspamd_cl_parser_new (RSPAMD_CL_FLAG_KEY_LOWERCASE);
clock_gettime (CLOCK_MONOTONIC, &start);
rspamd_cl_parser_add_file (parser, "./rcl_test.json", &err);
g_assert_no_error (err);
obj = rspamd_cl_parser_get_object (parser, &err);
g_assert_no_error (err);
clock_gettime (CLOCK_MONOTONIC, &end);
seconds = (end.tv_sec - start.tv_sec) + (end.tv_nsec - start.tv_nsec) / 1000000000.;
msg_info ("rcl: parsed json in %.4f seconds", seconds);
/* Test config emitting */
clock_gettime (CLOCK_MONOTONIC, &start);
emitted = rspamd_cl_object_emit (obj, RSPAMD_CL_EMIT_CONFIG);
g_assert (emitted != NULL);
clock_gettime (CLOCK_MONOTONIC, &end);
seconds = (end.tv_sec - start.tv_sec) + (end.tv_nsec - start.tv_nsec) / 1000000000.;
msg_info ("rcl: emitted object in %.4f seconds", seconds);
rspamd_cl_parser_free (parser);
rspamd_cl_obj_unref (obj);
g_free (emitted);

clock_gettime (CLOCK_MONOTONIC, &start);
json = json_load_file ("./rcl_test.json", &jerr);
g_assert (json != NULL);
clock_gettime (CLOCK_MONOTONIC, &end);
seconds = (end.tv_sec - start.tv_sec) + (end.tv_nsec - start.tv_nsec) / 1000000000.;
msg_info ("jansson: parsed json in %.4f seconds", seconds);

clock_gettime (CLOCK_MONOTONIC, &start);
emitted = json_dumps (json, 0);
g_assert (emitted != NULL);
clock_gettime (CLOCK_MONOTONIC, &end);
seconds = (end.tv_sec - start.tv_sec) + (end.tv_nsec - start.tv_nsec) / 1000000000.;
msg_info ("jansson: emitted object in %.4f seconds", seconds);

//json_decref (json);
g_free (emitted);
}

+ 1
- 1
test/rspamd_rrd_test.c View File

@@ -60,7 +60,7 @@ rspamd_rrd_test_func ()
/* Reopen */
g_assert ((rrd = rspamd_rrd_open (tmpfile, &err)) != NULL);
/* Add some points */
for (i = 0; i < 100; i += 10) {
for (i = 0; i < 20; i += 10) {
sleep (1);
t = i;
ar.data = &t;

+ 7
- 9
test/rspamd_statfile_test.c View File

@@ -1,7 +1,8 @@
#include "../src/config.h"
#include "../src/main.h"
#include "../src/statfile.h"
#include "config.h"
#include "main.h"
#include "statfile.h"
#include "tests.h"
#include "ottery.h"

#define TEST_FILENAME "/tmp/rspamd_test.stat"
#define HASHES_NUM 256
@@ -13,17 +14,14 @@ rspamd_statfile_test_func ()
rspamd_mempool_t *p;
stat_file_t *st;
uint32_t random_hashes[HASHES_NUM], i, v;
time_t now;
time_t now = time (NULL);
p = rspamd_mempool_new (rspamd_mempool_suggest_size ());
umask (S_IWGRP | S_IWOTH);
pool = statfile_pool_new (p, 10 * 1024 * 1024, TRUE);
pool = statfile_pool_new (p, TRUE);

now = time (NULL);
/* Fill random array */
srand (now);
for (i = 0; i < HASHES_NUM; i ++) {
random_hashes[i] = rand ();
random_hashes[i] = ottery_rand_uint32 ();
}

/* Create new file */

+ 5
- 8
test/rspamd_test_suite.c View File

@@ -1,6 +1,6 @@
#include "../src/config.h"
#include "../src/main.h"
#include "../src/cfg_file.h"
#include "config.h"
#include "main.h"
#include "cfg_file.h"
#include "tests.h"

struct rspamd_main *rspamd_main = NULL;
@@ -38,15 +38,12 @@ main (int argc, char **argv)
else {
cfg->log_level = G_LOG_LEVEL_INFO;
}
cfg->log_type = RSPAMD_LOG_CONSOLE;
/* First set logger to console logger */
rspamd_set_logger (RSPAMD_LOG_CONSOLE, g_quark_from_static_string("rspamd-test"), rspamd_main);
rspamd_set_logger (cfg, g_quark_from_static_string("rspamd-test"), rspamd_main);
(void)open_log (rspamd_main->logger);
g_log_set_default_handler (rspamd_glib_log_function, rspamd_main->logger);

#if 0
g_test_add_func ("/rspamd/memcached", rspamd_memcached_test_func);
#endif
g_test_add_func ("/rspamd/rcl", rspamd_rcl_test_func);
g_test_add_func ("/rspamd/mem_pool", rspamd_mem_pool_test_func);
g_test_add_func ("/rspamd/fuzzy", rspamd_fuzzy_test_func);
g_test_add_func ("/rspamd/url", rspamd_url_test_func);

+ 4
- 4
test/rspamd_url_test.c View File

@@ -1,7 +1,7 @@
#include "../src/config.h"
#include "../src/main.h"
#include "../src/cfg_file.h"
#include "../src/url.h"
#include "config.h"
#include "main.h"
#include "cfg_file.h"
#include "url.h"
#include "tests.h"

const char *test_text =

+ 0
- 6
test/tests.h View File

@@ -8,9 +8,6 @@
/* URL parser test */
void rspamd_url_test_func (void);

/* Memcached library test */
void rspamd_memcached_test_func (void);

/* Memory pools */
void rspamd_mem_pool_test_func (void);

@@ -35,7 +32,4 @@ void rspamd_dkim_test_func (void);
/* RRD test */
void rspamd_rrd_test_func (void);

/* RCL test */
void rspamd_rcl_test_func (void);

#endif

Loading…
Cancel
Save