diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-02-04 22:05:41 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-02-04 22:05:41 +0000 |
commit | 9068c5040e2737ce70f0cc9498000efa30c14c74 (patch) | |
tree | 19ff4a0c54f1bc438a917694012c31b2cafc7949 | |
parent | 5356c42e2ab9fafeb28576963b652c53c81eded1 (diff) | |
download | rspamd-9068c5040e2737ce70f0cc9498000efa30c14c74.tar.gz rspamd-9068c5040e2737ce70f0cc9498000efa30c14c74.zip |
Add uncached test.
-rw-r--r-- | test/rspamd_http_test.c | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/test/rspamd_http_test.c b/test/rspamd_http_test.c index 3b0dd72dd..0a22a518c 100644 --- a/test/rspamd_http_test.c +++ b/test/rspamd_http_test.c @@ -28,7 +28,7 @@ #include "tests.h" #include "ottery.h" -static const int file_blocks = 1; +static const int file_blocks = 8; static const int pconns = 100; static const int ntests = 100; @@ -91,6 +91,15 @@ rspamd_http_server_func (const gchar *path, rspamd_inet_addr_t *addr, event_base_loop (ev_base, 0); } +static gint +rspamd_client_body (struct rspamd_http_connection *conn, + struct rspamd_http_message *msg, + const gchar *chunk, gsize len) +{ + g_assert (chunk[0] == '\0'); + + return 0; +} static void rspamd_client_err (struct rspamd_http_connection *conn, GError *err) @@ -98,6 +107,7 @@ rspamd_client_err (struct rspamd_http_connection *conn, GError *err) msg_info ("abnormally closing connection from: error: %s", err->message); + g_assert (0); close (conn->fd); rspamd_http_connection_unref (conn); } @@ -123,7 +133,7 @@ rspamd_http_client_func (const gchar *path, rspamd_inet_addr_t *addr, gint fd; g_assert ((fd = rspamd_inet_address_connect (addr, SOCK_STREAM, TRUE)) != -1); - conn = rspamd_http_connection_new (NULL, rspamd_client_err, + conn = rspamd_http_connection_new (rspamd_client_body, rspamd_client_err, rspamd_client_finish, RSPAMD_HTTP_CLIENT_SIMPLE, RSPAMD_HTTP_CLIENT, c); rspamd_snprintf (urlbuf, sizeof (urlbuf), "http://127.0.0.1/%s", path); @@ -132,8 +142,9 @@ rspamd_http_client_func (const gchar *path, rspamd_inet_addr_t *addr, g_assert (conn != NULL && msg != NULL); if (kp != NULL) { + g_assert (peer_kp != NULL); rspamd_http_connection_set_key (conn, kp); - msg->peer_key = peer_kp; + msg->peer_key = rspamd_http_connection_key_ref (peer_kp); } rspamd_http_connection_write_message (conn, msg, NULL, NULL, NULL, @@ -230,6 +241,26 @@ rspamd_http_test_func (void) sizeof (buf) * file_blocks, total_diff, ntests * pconns / total_diff * 1000.); + total_diff = 0.0; + + for (i = 0; i < ntests; i ++) { + for (j = 0; j < pconns; j ++) { + rspamd_http_client_func (filepath + sizeof ("/tmp") - 1, &addr, + client_key, peer_key, NULL, ev_base); + } + clock_gettime (CLOCK_MONOTONIC, &ts1); + event_base_loop (ev_base, 0); + clock_gettime (CLOCK_MONOTONIC, &ts2); + diff = (ts2.tv_sec - ts1.tv_sec) * 1000. + /* Seconds */ + (ts2.tv_nsec - ts1.tv_nsec) / 1000000.; /* Nanoseconds */ + total_diff += diff; + } + + msg_info ("Made %d uncached encrypted connections of size %d in %.6f ms, %.6f cps", + ntests * pconns, + sizeof (buf) * file_blocks, + total_diff, ntests * pconns / total_diff * 1000.); + close (fd); unlink (filepath); kill (sfd, SIGKILL); |