|
11 | 11 |
|
12 | 12 | -compile([nowarn_export_all, export_all]). |
13 | 13 |
|
| 14 | +-import(rabbit_ct_broker_helpers, |
| 15 | + [get_node_config/3, |
| 16 | + rpc/4, |
| 17 | + rpc/5]). |
14 | 18 |
|
15 | 19 | all() -> |
16 | 20 | [ |
@@ -56,38 +60,37 @@ end_per_group(_, Config) -> |
56 | 60 | rabbit_ct_client_helpers:teardown_steps() ++ |
57 | 61 | rabbit_ct_broker_helpers:teardown_steps()). |
58 | 62 |
|
| 63 | +init_per_testcase(T, Config) -> |
| 64 | + case rpc(Config, rabbit_feature_flags, is_enabled, [classic_queue_leader_locator]) of |
| 65 | + true -> |
| 66 | + rabbit_ct_helpers:testcase_started(Config, T); |
| 67 | + false -> |
| 68 | + {skip, "queue-leader-locator support was added to classic queues in 4.0;" |
| 69 | + "previously only queue-master-locator was allowed"} |
| 70 | + end. |
| 71 | + |
59 | 72 | %% ------------------------------------------------------------------- |
60 | 73 | %% Testcases. |
61 | 74 | %% ------------------------------------------------------------------- |
62 | 75 |
|
63 | 76 | leader_locator_client_local(Config) -> |
64 | | - case rabbit_ct_helpers:is_mixed_versions() of |
65 | | - true -> |
66 | | - {skip, "x-queue-leader-locator is only supported by CQs in 4.0+"}; |
67 | | - false -> |
| 77 | + Servers = rabbit_ct_broker_helpers:get_node_configs(Config, nodename), |
| 78 | + Q = <<"q1">>, |
68 | 79 |
|
69 | | - Servers = rabbit_ct_broker_helpers:get_node_configs(Config, nodename), |
70 | | - Q = <<"q1">>, |
71 | | - |
72 | | - [begin |
73 | | - Ch = rabbit_ct_client_helpers:open_channel(Config, Server), |
74 | | - ?assertEqual({'queue.declare_ok', Q, 0, 0}, |
75 | | - declare(Ch, Q, [{<<"x-queue-type">>, longstr, <<"classic">>}, |
76 | | - {<<"x-queue-leader-locator">>, longstr, <<"client-local">>}])), |
77 | | - {ok, Leader0} = rabbit_ct_broker_helpers:rpc(Config, Server, rabbit_amqqueue, lookup, [rabbit_misc:r(<<"/">>, queue, Q)]), |
78 | | - Leader = amqqueue:qnode(Leader0), |
79 | | - ?assertEqual(Server, Leader), |
80 | | - ?assertMatch(#'queue.delete_ok'{}, |
81 | | - amqp_channel:call(Ch, #'queue.delete'{queue = Q})) |
82 | | - end || Server <- Servers] end. |
| 80 | + [begin |
| 81 | + Ch = rabbit_ct_client_helpers:open_channel(Config, Server), |
| 82 | + ?assertEqual({'queue.declare_ok', Q, 0, 0}, |
| 83 | + declare(Ch, Q, [{<<"x-queue-type">>, longstr, <<"classic">>}, |
| 84 | + {<<"x-queue-leader-locator">>, longstr, <<"client-local">>}])), |
| 85 | + {ok, Leader0} = rabbit_ct_broker_helpers:rpc(Config, Server, rabbit_amqqueue, lookup, [rabbit_misc:r(<<"/">>, queue, Q)]), |
| 86 | + Leader = amqqueue:qnode(Leader0), |
| 87 | + ?assertEqual(Server, Leader), |
| 88 | + ?assertMatch(#'queue.delete_ok'{}, |
| 89 | + amqp_channel:call(Ch, #'queue.delete'{queue = Q})) |
| 90 | + end || Server <- Servers]. |
83 | 91 |
|
84 | 92 | leader_locator_balanced(Config) -> |
85 | | - case rabbit_ct_helpers:is_mixed_versions() of |
86 | | - true -> |
87 | | - {skip, "x-queue-leader-locator is only supported by CQs in 4.0+"}; |
88 | | - false -> |
89 | | - test_leader_locator(Config, <<"x-queue-leader-locator">>, [<<"balanced">>]) |
90 | | - end. |
| 93 | + test_leader_locator(Config, <<"x-queue-leader-locator">>, [<<"balanced">>]). |
91 | 94 |
|
92 | 95 | %% This test can be delted once we remove x-queue-master-locator support |
93 | 96 | locator_deprecated(Config) -> |
|
0 commit comments