summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Klishin <mklishin@pivotal.io>2019-05-10 02:55:16 +0300
committerGitHub <noreply@github.com>2019-05-10 02:55:16 +0300
commit5c80bea709f4c89db3d8652f4a3e7d8421efb76e (patch)
treef110123ac7c5966633a104fad72e5b44de71286a /test
parent43dfd5021b0fb012316ec6e9ad388f2cae14ef02 (diff)
parenta8deb7500646b2b73d15cedbe4d3ea4d3dd07b2b (diff)
downloadrabbitmq-server-git-5c80bea709f4c89db3d8652f4a3e7d8421efb76e.tar.gz
Merge pull request #2001 from rabbitmq/rabbitmq-server-2000v3.8.0-beta.4
Move check for active readers to message store GC action function
Diffstat (limited to 'test')
-rw-r--r--test/queue_parallel_SUITE.erl27
1 files changed, 25 insertions, 2 deletions
diff --git a/test/queue_parallel_SUITE.erl b/test/queue_parallel_SUITE.erl
index 632a314d21..f8a039dc65 100644
--- a/test/queue_parallel_SUITE.erl
+++ b/test/queue_parallel_SUITE.erl
@@ -60,8 +60,10 @@ groups() ->
[
{parallel_tests, [],
[
- {classic_queue, [parallel], AllTests ++ [delete_immediately_by_pid_succeeds]},
- {mirrored_queue, [parallel], AllTests ++ [delete_immediately_by_pid_succeeds]},
+ {classic_queue, [parallel], AllTests ++ [delete_immediately_by_pid_succeeds,
+ trigger_message_store_compaction]},
+ {mirrored_queue, [parallel], AllTests ++ [delete_immediately_by_pid_succeeds,
+ trigger_message_store_compaction]},
{quorum_queue, [parallel], AllTests ++ [delete_immediately_by_pid_fails]},
{quorum_queue_in_memory_limit, [parallel], AllTests ++ [delete_immediately_by_pid_fails]},
{quorum_queue_in_memory_bytes, [parallel], AllTests ++ [delete_immediately_by_pid_fails]}
@@ -327,6 +329,27 @@ subscribe_and_multiple_ack(Config) ->
rabbit_ct_client_helpers:close_channel(Ch),
ok.
+trigger_message_store_compaction(Config) ->
+ {_, Ch} = rabbit_ct_client_helpers:open_connection_and_channel(Config, 0),
+ QName = ?config(queue_name, Config),
+ declare_queue(Ch, Config, QName),
+
+ N = 12000,
+ [publish(Ch, QName, [binary:copy(<<"a">>, 5000)]) || _ <- lists:seq(1, N)],
+ wait_for_messages(Config, [[QName, <<"12000">>, <<"12000">>, <<"0">>]]),
+
+ AllDTags = rabbit_ct_client_helpers:consume_without_acknowledging(Ch, QName, N),
+ ToAck = lists:filter(fun (I) -> I > 500 andalso I < 11200 end, AllDTags),
+
+ [amqp_channel:cast(Ch, #'basic.ack'{delivery_tag = Tag,
+ multiple = false}) || Tag <- ToAck],
+
+ %% give compaction a moment to start in and finish
+ timer:sleep(5000),
+ amqp_channel:cast(Ch, #'queue.purge'{queue = QName}),
+ rabbit_ct_client_helpers:close_channel(Ch),
+ ok.
+
subscribe_and_requeue_multiple_nack(Config) ->
{_, Ch} = rabbit_ct_client_helpers:open_connection_and_channel(Config, 0),
QName = ?config(queue_name, Config),