From c7f52c4c84d6a8898048738c4db9266289c40b45 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sat, 12 Nov 2016 21:25:21 +0100 Subject: wqueue: Reject messges if queue is considered full The write queue was always meant to not queue more than the max_length messages but the implementation never rejected a message. Begin to log and enforce the queue size limit, add a testcase to verify the code and initialize except_cb as part of a fix for that new test case. Real applications might now run into the queue limit and drop messages where they just queued them before. It is unfortunate but I still think it is good to implement the routine as it was intended. We need to review osmo_wqueue_enqueue once more to see that no msgb is leaked. Change-Id: I1e6aef30f3e73d4bcf2967bc49f0783aa65395ae --- tests/Makefile.am | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'tests/Makefile.am') diff --git a/tests/Makefile.am b/tests/Makefile.am index f5d095da..1aad2e9c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -13,7 +13,8 @@ check_PROGRAMS = timer/timer_test sms/sms_test ussd/ussd_test \ vty/vty_test comp128/comp128_test utils/utils_test \ smscb/gsm0341_test stats/stats_test \ bitvec/bitvec_test msgb/msgb_test bits/bitcomp_test \ - tlv/tlv_test gsup/gsup_test fsm/fsm_test + tlv/tlv_test gsup/gsup_test fsm/fsm_test \ + write_queue/wqueue_test if ENABLE_MSGFILE check_PROGRAMS += msgfile/msgfile_test @@ -133,6 +134,9 @@ gsup_gsup_test_LDADD = $(top_builddir)/src/gsm/libosmogsm.la $(top_builddir)/src fsm_fsm_test_SOURCES = fsm/fsm_test.c fsm_fsm_test_LDADD = $(top_builddir)/src/libosmocore.la +write_queue_wqueue_test_SOURCES = write_queue/wqueue_test.c +write_queue_wqueue_test_LDADD = $(top_builddir)/src/libosmocore.la + # The `:;' works around a Bash 3.2 bug when the output is not writeable. $(srcdir)/package.m4: $(top_srcdir)/configure.ac :;{ \ @@ -168,7 +172,7 @@ EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE) \ utils/utils_test.ok stats/stats_test.ok \ bitvec/bitvec_test.ok msgb/msgb_test.ok bits/bitcomp_test.ok \ sim/sim_test.ok tlv/tlv_test.ok gsup/gsup_test.ok \ - fsm/fsm_test.ok fsm/fsm_test.err + fsm/fsm_test.ok fsm/fsm_test.err write_queue/wqueue_test.ok DISTCLEANFILES = atconfig atlocal -- cgit v1.2.3