void testcase_zero_diskbuf_alternating_send_acks() { LogQueue *q; gint i; q = log_queue_fifo_new(OVERFLOW_SIZE, NULL); log_queue_set_use_backlog(q, TRUE); fed_messages = 0; acked_messages = 0; for (i = 0; i < 10; i++) { feed_some_messages(&q, 10); send_some_messages(q, 10); app_ack_some_messages(q, 10); } if (fed_messages != acked_messages) { fprintf(stderr, "did not receive enough acknowledgements: fed_messages=%d, acked_messages=%d\n", fed_messages, acked_messages); exit(1); } log_queue_unref(q); }
Test(logqueue, test_zero_diskbuf_and_normal_acks) { LogQueue *q; gint i; q = log_queue_fifo_new(OVERFLOW_SIZE, NULL); StatsClusterKey sc_key; stats_lock(); stats_cluster_logpipe_key_set(&sc_key, SCS_DESTINATION, q->persist_name, NULL ); stats_register_counter(0, &sc_key, SC_TYPE_QUEUED, &q->queued_messages); stats_register_counter(1, &sc_key, SC_TYPE_MEMORY_USAGE, &q->memory_usage); stats_unlock(); log_queue_set_use_backlog(q, TRUE); cr_assert_eq(atomic_gssize_racy_get(&q->queued_messages->value), 0); fed_messages = 0; acked_messages = 0; feed_some_messages(q, 1); cr_assert_eq(stats_counter_get(q->queued_messages), 1); cr_assert_neq(stats_counter_get(q->memory_usage), 0); gint size_when_single_msg = stats_counter_get(q->memory_usage); for (i = 0; i < 10; i++) feed_some_messages(q, 10); cr_assert_eq(stats_counter_get(q->queued_messages), 101); cr_assert_eq(stats_counter_get(q->memory_usage), 101*size_when_single_msg); send_some_messages(q, fed_messages); log_queue_ack_backlog(q, fed_messages); cr_assert_eq(fed_messages, acked_messages, "did not receive enough acknowledgements: fed_messages=%d, acked_messages=%d", fed_messages, acked_messages); log_queue_unref(q); }
void testcase_zero_diskbuf_and_normal_acks() { LogQueue *q; gint i; q = log_queue_new(OVERFLOW_SIZE); fed_messages = 0; acked_messages = 0; for (i = 0; i < 10; i++) feed_some_messages(&q, 10, TRUE); send_some_messages(q, fed_messages, TRUE); app_ack_some_messages(q, fed_messages); if (fed_messages != acked_messages) { fprintf(stderr, "did not receive enough acknowledgements: fed_messages=%d, acked_messages=%d\n", fed_messages, acked_messages); exit(1); } log_queue_free(q); }
Test(logqueue, test_zero_diskbuf_alternating_send_acks) { LogQueue *q; gint i; q = log_queue_fifo_new(OVERFLOW_SIZE, NULL); log_queue_set_use_backlog(q, TRUE); fed_messages = 0; acked_messages = 0; for (i = 0; i < 10; i++) { feed_some_messages(q, 10); send_some_messages(q, 10); log_queue_ack_backlog(q, 10); } cr_assert_eq(fed_messages, acked_messages, "did not receive enough acknowledgements: fed_messages=%d, acked_messages=%d", fed_messages, acked_messages); log_queue_unref(q); }
Test(logqueue, log_queue_fifo_rewind_all_and_memory_usage) { LogQueue *q = log_queue_fifo_new(OVERFLOW_SIZE, NULL); log_queue_set_use_backlog(q, TRUE); StatsClusterKey sc_key; stats_lock(); stats_cluster_logpipe_key_set(&sc_key, SCS_DESTINATION, q->persist_name, NULL ); stats_register_counter(1, &sc_key, SC_TYPE_MEMORY_USAGE, &q->memory_usage); stats_unlock(); feed_some_messages(q, 1); gint size_when_single_msg = stats_counter_get(q->memory_usage); feed_some_messages(q, 9); cr_assert_eq(stats_counter_get(q->memory_usage), 10*size_when_single_msg); send_some_messages(q, 10); cr_assert_eq(stats_counter_get(q->memory_usage), 0); log_queue_rewind_backlog_all(q); cr_assert_eq(stats_counter_get(q->memory_usage), 10*size_when_single_msg); log_queue_unref(q); }