summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Klishin <klishinm@vmware.com>2020-09-22 12:45:58 +0300
committerGitHub <noreply@github.com>2020-09-22 12:45:58 +0300
commitf0ddddb3ad6ec3a3fdee70c6c7e6b2449f1f8b7a (patch)
tree11369bff0b66e8aaa00ec7de6edbf9b326cdb3f7 /test
parent88c3e89fc1bf7d437cd60d469537a5c3b495a456 (diff)
parentd2e61d4b6a693defa5c29d62c8c9f3b2346e318d (diff)
downloadrabbitmq-server-git-f0ddddb3ad6ec3a3fdee70c6c7e6b2449f1f8b7a.tar.gz
Merge pull request #2447 from rabbitmq/qq-peek-command
Quorum queue peek
Diffstat (limited to 'test')
-rw-r--r--test/quorum_queue_SUITE.erl36
-rw-r--r--test/rabbit_fifo_SUITE.erl12
2 files changed, 47 insertions, 1 deletions
diff --git a/test/quorum_queue_SUITE.erl b/test/quorum_queue_SUITE.erl
index 15f3558046..942b42f5e4 100644
--- a/test/quorum_queue_SUITE.erl
+++ b/test/quorum_queue_SUITE.erl
@@ -131,7 +131,8 @@ all_tests() ->
invalid_policy,
delete_if_empty,
delete_if_unused,
- queue_ttl
+ queue_ttl,
+ peek
].
memory_tests() ->
@@ -2397,6 +2398,39 @@ queue_length_in_memory_purge(Config) ->
?assertEqual([{0, 0}],
dirty_query([Server], RaName, fun rabbit_fifo:query_in_memory_usage/1)).
+peek(Config) ->
+ [Server | _] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
+
+ Ch = rabbit_ct_client_helpers:open_channel(Config, Server),
+ QQ = ?config(queue_name, Config),
+ ?assertEqual({'queue.declare_ok', QQ, 0, 0},
+ declare(Ch, QQ, [{<<"x-queue-type">>, longstr, <<"quorum">>},
+ {<<"x-max-in-memory-length">>, long, 2}])),
+
+ Msg1 = <<"msg1">>,
+ Msg2 = <<"msg11">>,
+
+ QName = rabbit_misc:r(<<"/">>, queue, QQ),
+ ?assertMatch({error, no_message_at_pos},
+ rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_quorum_queue,
+ peek, [1, QName])),
+ publish(Ch, QQ, Msg1),
+ publish(Ch, QQ, Msg2),
+ wait_for_messages(Config, [[QQ, <<"2">>, <<"2">>, <<"0">>]]),
+
+ ?assertMatch({ok, [_|_]},
+ rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_quorum_queue,
+ peek, [1, QName])),
+ ?assertMatch({ok, [_|_]},
+ rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_quorum_queue,
+ peek, [2, QName])),
+ ?assertMatch({error, no_message_at_pos},
+ rabbit_ct_broker_helpers:rpc(Config, 0, rabbit_quorum_queue,
+ peek, [3, QName])),
+
+ wait_for_messages(Config, [[QQ, <<"2">>, <<"2">>, <<"0">>]]),
+ ok.
+
in_memory(Config) ->
[Server | _] = rabbit_ct_broker_helpers:get_node_configs(Config, nodename),
diff --git a/test/rabbit_fifo_SUITE.erl b/test/rabbit_fifo_SUITE.erl
index 7778e04afb..8431dd8db7 100644
--- a/test/rabbit_fifo_SUITE.erl
+++ b/test/rabbit_fifo_SUITE.erl
@@ -1619,6 +1619,18 @@ queue_ttl_with_single_active_consumer_test(_) ->
ok.
+query_peek_test(_) ->
+ State0 = test_init(test),
+ ?assertEqual({error, no_message_at_pos}, rabbit_fifo:query_peek(1, State0)),
+ {State1, _} = enq(1, 1, first, State0),
+ {State2, _} = enq(2, 2, second, State1),
+ ?assertMatch({ok, {_, {_, first}}}, rabbit_fifo:query_peek(1, State1)),
+ ?assertEqual({error, no_message_at_pos}, rabbit_fifo:query_peek(2, State1)),
+ ?assertMatch({ok, {_, {_, first}}}, rabbit_fifo:query_peek(1, State2)),
+ ?assertMatch({ok, {_, {_, second}}}, rabbit_fifo:query_peek(2, State2)),
+ ?assertEqual({error, no_message_at_pos}, rabbit_fifo:query_peek(3, State2)),
+ ok.
+
%% Utility
init(Conf) -> rabbit_fifo:init(Conf).