From: Vsevolod Stakhov Date: Thu, 12 May 2016 11:53:22 +0000 (+0100) Subject: [Feature] Backport shingles static test X-Git-Tag: 1.2.7~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=23cf3d0a7d01d8acb811f8f5e49777ff14402ed3;p=thirdparty%2Frspamd.git [Feature] Backport shingles static test --- diff --git a/test/rspamd_shingles_test.c b/test/rspamd_shingles_test.c index 3eed5eee58..3b2fd89563 100644 --- a/test/rspamd_shingles_test.c +++ b/test/rspamd_shingles_test.c @@ -110,9 +110,46 @@ test_case (gsize cnt, gsize max_len, gdouble perm_factor) g_free (sgl_permuted); } +static const guint64 expected_old[RSPAMD_SHINGLE_SIZE] = { + 0x2a97e024235cedc5, 0x46238acbcc55e9e0, 0x2378ff151af075b3, 0xde1f29a95cad109, + 0x5d3bbbdb5db5d19f, 0x4d75a0ec52af10a6, 0x215ecd6372e755b5, 0x7b52295758295350, + 0x17387d1beddc7f62, 0x26264ca879ffcada, 0x49d4a65ec0ab9914, 0xa2763e6995350cf, + 0x3f4570231449c13f, 0x3309f857a0e54ee5, 0x24e4c5b561b0fce3, 0x1f153e3b275bfd1b, + 0x4d067dbc97c3fd78, 0x9ffa2d076fa4f8bc, 0x3d8907f84b9ffc6c, 0x1cfd664c5262d256, + 0xcdd7e744b699c15, 0x5544a2bbe05124f7, 0x5a4029b5d6a06f7, 0xd5adfbdc756c0e4, + 0xa504b23d9689a67e, 0x15d945f7007de115, 0xbf676c0522a2c51d, 0x1c8d8163ad4b0f93, + 0xa2c4ba20799344d7, 0x27c6f13c02134388, 0xa1d443d31fd5a3, 0x99fbca9f8563080, +}; + void rspamd_shingles_test_func (void) { + struct rspamd_shingle *sgl; + guchar key[16]; + GArray *input; + rspamd_ftok_t tok; + int i; + + memset (key, 0, sizeof (key)); + input = g_array_sized_new (FALSE, FALSE, sizeof (rspamd_ftok_t), 5); + + for (i = 0; i < 5; i ++) { + gchar *b = g_alloca (8); + memset (b, 0, 8); + memcpy (b + 1, "test", 4); + b[0] = 'a' + i; + tok.begin = b; + tok.len = 5 + ((i + 1) % 4); + g_array_append_val (input, tok); + } + + sgl = rspamd_shingles_generate (input, key, NULL, + rspamd_shingles_default_filter, NULL); + for (i = 0; i < RSPAMD_SHINGLE_SIZE; i ++) { + g_assert (sgl->hashes[i] == expected_old[i]); + } + g_free (sgl); + //test_case (5, 100, 0.5); test_case (200, 10, 0.1); test_case (500, 20, 0.01);