aboutsummaryrefslogtreecommitdiffstats
path: root/test/rspamd_heap_test.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/rspamd_heap_test.c')
-rw-r--r--test/rspamd_heap_test.c166
1 files changed, 82 insertions, 84 deletions
diff --git a/test/rspamd_heap_test.c b/test/rspamd_heap_test.c
index 711ab1c88..dcc7bbc4d 100644
--- a/test/rspamd_heap_test.c
+++ b/test/rspamd_heap_test.c
@@ -22,53 +22,51 @@
static const guint niter = 100500;
static const guint nrem = 100;
-static inline
-struct rspamd_min_heap_elt *
-new_elt (guint pri)
+static inline struct rspamd_min_heap_elt *
+new_elt(guint pri)
{
struct rspamd_min_heap_elt *elt;
- elt = g_slice_alloc0 (sizeof (*elt));
+ elt = g_slice_alloc0(sizeof(*elt));
elt->pri = pri;
return elt;
}
static gdouble
-heap_nelts_test (guint nelts)
+heap_nelts_test(guint nelts)
{
struct rspamd_min_heap *heap;
struct rspamd_min_heap_elt *elts;
gdouble t1, t2;
guint i;
- heap = rspamd_min_heap_create (nelts);
+ heap = rspamd_min_heap_create(nelts);
/* Preallocate all elts */
- elts = g_slice_alloc (sizeof (*elts) * nelts);
+ elts = g_slice_alloc(sizeof(*elts) * nelts);
- for (i = 0; i < nelts; i ++) {
- elts[i].pri = ottery_rand_uint32 () % G_MAXINT32 + 1;
+ for (i = 0; i < nelts; i++) {
+ elts[i].pri = ottery_rand_uint32() % G_MAXINT32 + 1;
elts[i].idx = 0;
}
- t1 = rspamd_get_virtual_ticks ();
- for (i = 0; i < nelts; i ++) {
- rspamd_min_heap_push (heap, &elts[i]);
+ t1 = rspamd_get_virtual_ticks();
+ for (i = 0; i < nelts; i++) {
+ rspamd_min_heap_push(heap, &elts[i]);
}
- for (i = 0; i < nelts; i ++) {
- (void)rspamd_min_heap_pop (heap);
+ for (i = 0; i < nelts; i++) {
+ (void) rspamd_min_heap_pop(heap);
}
- t2 = rspamd_get_virtual_ticks ();
+ t2 = rspamd_get_virtual_ticks();
- g_slice_free1 (sizeof (*elts) * nelts, elts);
- rspamd_min_heap_destroy (heap);
+ g_slice_free1(sizeof(*elts) * nelts, elts);
+ rspamd_min_heap_destroy(heap);
return (t2 - t1);
}
-void
-rspamd_heap_test_func (void)
+void rspamd_heap_test_func(void)
{
struct rspamd_min_heap *heap;
struct rspamd_min_heap_elt *elt, *telt;
@@ -77,108 +75,108 @@ rspamd_heap_test_func (void)
gdouble t[16];
/* Push + update */
- heap = rspamd_min_heap_create (32);
- elt = new_elt (2);
- elt->data = GINT_TO_POINTER (1);
- rspamd_min_heap_push (heap, elt);
- elt = new_elt (3);
- elt->data = GINT_TO_POINTER (2);
- rspamd_min_heap_push (heap, elt);
- elt = new_elt (4);
- elt->data = GINT_TO_POINTER (3);
- rspamd_min_heap_push (heap, elt);
-
- rspamd_min_heap_update_elt (heap, elt, 0);
- elt = rspamd_min_heap_pop (heap);
- g_assert (elt->data == GINT_TO_POINTER (3));
-
- rspamd_min_heap_destroy (heap);
+ heap = rspamd_min_heap_create(32);
+ elt = new_elt(2);
+ elt->data = GINT_TO_POINTER(1);
+ rspamd_min_heap_push(heap, elt);
+ elt = new_elt(3);
+ elt->data = GINT_TO_POINTER(2);
+ rspamd_min_heap_push(heap, elt);
+ elt = new_elt(4);
+ elt->data = GINT_TO_POINTER(3);
+ rspamd_min_heap_push(heap, elt);
+
+ rspamd_min_heap_update_elt(heap, elt, 0);
+ elt = rspamd_min_heap_pop(heap);
+ g_assert(elt->data == GINT_TO_POINTER(3));
+
+ rspamd_min_heap_destroy(heap);
/* Push + remove */
- heap = rspamd_min_heap_create (32);
- elt = new_elt (2);
- elt->data = GINT_TO_POINTER (1);
- rspamd_min_heap_push (heap, elt);
- rspamd_min_heap_remove_elt (heap, elt);
- elt = new_elt (3);
- elt->data = GINT_TO_POINTER (2);
- rspamd_min_heap_push (heap, elt);
- elt = rspamd_min_heap_pop (heap);
- g_assert (elt->data == GINT_TO_POINTER (2));
- elt = rspamd_min_heap_pop (heap);
- g_assert (elt == NULL);
+ heap = rspamd_min_heap_create(32);
+ elt = new_elt(2);
+ elt->data = GINT_TO_POINTER(1);
+ rspamd_min_heap_push(heap, elt);
+ rspamd_min_heap_remove_elt(heap, elt);
+ elt = new_elt(3);
+ elt->data = GINT_TO_POINTER(2);
+ rspamd_min_heap_push(heap, elt);
+ elt = rspamd_min_heap_pop(heap);
+ g_assert(elt->data == GINT_TO_POINTER(2));
+ elt = rspamd_min_heap_pop(heap);
+ g_assert(elt == NULL);
/* Push + push + remove + pop */
- elt = new_elt (2);
- elt->data = GINT_TO_POINTER (1);
- rspamd_min_heap_push (heap, elt);
+ elt = new_elt(2);
+ elt->data = GINT_TO_POINTER(1);
+ rspamd_min_heap_push(heap, elt);
telt = elt;
- elt = new_elt (3);
- elt->data = GINT_TO_POINTER (2);
- rspamd_min_heap_push (heap, elt);
- rspamd_min_heap_remove_elt (heap, telt);
- elt = rspamd_min_heap_pop (heap);
- g_assert (elt->data == GINT_TO_POINTER (2));
- rspamd_min_heap_destroy (heap);
+ elt = new_elt(3);
+ elt->data = GINT_TO_POINTER(2);
+ rspamd_min_heap_push(heap, elt);
+ rspamd_min_heap_remove_elt(heap, telt);
+ elt = rspamd_min_heap_pop(heap);
+ g_assert(elt->data == GINT_TO_POINTER(2));
+ rspamd_min_heap_destroy(heap);
/* Bulk test */
- heap = rspamd_min_heap_create (32);
+ heap = rspamd_min_heap_create(32);
- for (i = 100; i > 0; i --) {
- elt = new_elt (i - 1);
- rspamd_min_heap_push (heap, elt);
+ for (i = 100; i > 0; i--) {
+ elt = new_elt(i - 1);
+ rspamd_min_heap_push(heap, elt);
}
- for (i = 0; i < 100; i ++) {
- elt = rspamd_min_heap_pop (heap);
- g_assert (elt->pri == i);
+ for (i = 0; i < 100; i++) {
+ elt = rspamd_min_heap_pop(heap);
+ g_assert(elt->pri == i);
}
- rspamd_min_heap_destroy (heap);
+ rspamd_min_heap_destroy(heap);
/* Fuzz test */
- heap = rspamd_min_heap_create (128);
+ heap = rspamd_min_heap_create(128);
/* Add */
- for (i = 0; i < niter; i ++) {
- elt = new_elt (ottery_rand_uint32 () % G_MAXINT32 + 1);
- rspamd_min_heap_push (heap, elt);
+ for (i = 0; i < niter; i++) {
+ elt = new_elt(ottery_rand_uint32() % G_MAXINT32 + 1);
+ rspamd_min_heap_push(heap, elt);
}
/* Remove */
- for (i = 0; i < nrem; i ++) {
- elt = rspamd_min_heap_index (heap, ottery_rand_uint32 () % niter);
- rspamd_min_heap_remove_elt (heap, elt);
+ for (i = 0; i < nrem; i++) {
+ elt = rspamd_min_heap_index(heap, ottery_rand_uint32() % niter);
+ rspamd_min_heap_remove_elt(heap, elt);
}
/* Update */
- for (i = 0; i < niter / 10; i ++) {
- elt = rspamd_min_heap_index (heap, ottery_rand_uint32 () % (niter - nrem));
- rspamd_min_heap_update_elt (heap, elt,
- ottery_rand_uint32 () % G_MAXINT32 + 1);
+ for (i = 0; i < niter / 10; i++) {
+ elt = rspamd_min_heap_index(heap, ottery_rand_uint32() % (niter - nrem));
+ rspamd_min_heap_update_elt(heap, elt,
+ ottery_rand_uint32() % G_MAXINT32 + 1);
}
prev = 0;
/* Pop and check invariant */
- for (i = 0; i < niter - nrem; i ++) {
- elt = rspamd_min_heap_pop (heap);
+ for (i = 0; i < niter - nrem; i++) {
+ elt = rspamd_min_heap_pop(heap);
if (prev != 0) {
- g_assert (elt->pri >= prev);
+ g_assert(elt->pri >= prev);
}
prev = elt->pri;
}
- rspamd_min_heap_destroy (heap);
+ rspamd_min_heap_destroy(heap);
/* Complexity test (should be O(n * logn) */
- for (i = 1; i <= G_N_ELEMENTS (t); i ++) {
- t[i - 1] = heap_nelts_test (0x1 << (i + 4));
+ for (i = 1; i <= G_N_ELEMENTS(t); i++) {
+ t[i - 1] = heap_nelts_test(0x1 << (i + 4));
}
- for (i = 1; i <= G_N_ELEMENTS (t); i ++) {
- rspamd_printf ("Elements: %d, time: %.4f\n", 0x1 << (i + 4), t[i - 1]);
+ for (i = 1; i <= G_N_ELEMENTS(t); i++) {
+ rspamd_printf("Elements: %d, time: %.4f\n", 0x1 << (i + 4), t[i - 1]);
}
}