From 89741b6bfe02c1819b1053c27b826e1cb5a21e07 Mon Sep 17 00:00:00 2001 From: Feng Date: Mon, 25 Jan 2016 14:48:47 +0800 Subject: [PATCH] priority_queue:plen/2 test --- test/emqttd_mqueue_tests.erl | 17 +++++++++++++++++ test/priority_queue_tests.erl | 11 ++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/test/emqttd_mqueue_tests.erl b/test/emqttd_mqueue_tests.erl index 6d20b3cbf..1fa5d7993 100644 --- a/test/emqttd_mqueue_tests.erl +++ b/test/emqttd_mqueue_tests.erl @@ -140,6 +140,23 @@ infinity_priority_mqueue_test() -> end, Q, lists:seq(1, 255)), ?assertEqual(510, ?Q:len(Qx)), ?assertEqual([{len, 510}, {max_len, infinity}, {dropped, 0}], ?Q:stats(Qx)). + +priority_mqueue2_test() -> + Opts = [{type, priority}, + {max_length, 2}, + {low_watermark, 0.2}, + {high_watermark, 0.6}, + {queue_qos0, false}], + Q = ?Q:new("priority_queue2_test", Opts, alarm_fun()), + ?assertEqual(2, ?Q:max_len(Q)), + Q1 = ?Q:in(#mqtt_message{topic = <<"x">>, qos = 1, payload = <<1>>}, Q), + Q2 = ?Q:in(#mqtt_message{topic = <<"x">>, qos = 1, payload = <<2>>}, Q1), + Q3 = ?Q:in(#mqtt_message{topic = <<"y">>, qos = 1, payload = <<3>>}, Q2), + Q4 = ?Q:in(#mqtt_message{topic = <<"y">>, qos = 1, payload = <<4>>}, Q3), + ?assertEqual(4, ?Q:len(Q4)), + {{value, Val}, Q5} = ?Q:out(Q4), + ?debugFmt("Val: ~p~n", [Val]), + ?assertEqual(3, ?Q:len(Q5)). alarm_fun() -> fun(_, _) -> alarm_fun() end. diff --git a/test/priority_queue_tests.erl b/test/priority_queue_tests.erl index 8e044ee4e..a4cacd2b0 100644 --- a/test/priority_queue_tests.erl +++ b/test/priority_queue_tests.erl @@ -40,7 +40,16 @@ plen_test() -> Q2 = ?PQ:in(y, 2, Q1), ?assertEqual(1, ?PQ:plen(2, Q2)), Q3 = ?PQ:in(z, 2, Q2), - ?assertEqual(2, ?PQ:plen(2, Q3)). + ?assertEqual(2, ?PQ:plen(2, Q3)), + {_, Q4} = ?PQ:out(1, Q3), + ?assertEqual(0, ?PQ:plen(1, Q4)), + {_, Q5} = ?PQ:out(Q4), + ?assertEqual(1, ?PQ:plen(2, Q5)), + {_, Q6} = ?PQ:out(Q5), + ?assertEqual(0, ?PQ:plen(2, Q6)), + ?assertEqual(1, ?PQ:len(Q6)), + {_, Q7} = ?PQ:out(Q6), + ?assertEqual(0, ?PQ:len(Q7)). out2_test() -> Els = [a, {b, 1}, {c, 1}, {d, 2}, {e, 2}, {f, 2}],