From d2d3ddb72ae81a0a936cdc9afb4f0d9ab10138e4 Mon Sep 17 00:00:00 2001 From: William Yang Date: Mon, 15 Jan 2024 11:42:45 +0100 Subject: [PATCH] test(quic): listener port updates --- apps/emqx/test/emqx_listeners_SUITE.erl | 33 ++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/apps/emqx/test/emqx_listeners_SUITE.erl b/apps/emqx/test/emqx_listeners_SUITE.erl index 542016131..2d2a13e31 100644 --- a/apps/emqx/test/emqx_listeners_SUITE.erl +++ b/apps/emqx/test/emqx_listeners_SUITE.erl @@ -444,14 +444,45 @@ t_quic_update_opts(Config) -> | ClientSSLOpts ]), + %% Change the listener port + NewPort = emqx_common_test_helpers:select_free_port(ListenerType), + {ok, _} = emqx:update_config( + [listeners, ListenerType, updated], + {update, #{ + <<"bind">> => format_bind({Host, NewPort}) + }} + ), + + %% Connect to old port fail + ?assertExceptionOneOf( + {exit, _}, + {error, _}, + ConnectFun(Host, Port, [ + {cacertfile, filename:join(PrivDir, "ca-next.pem")}, + {certfile, filename:join(PrivDir, "client.pem")}, + {keyfile, filename:join(PrivDir, "client.key")} + | ClientSSLOpts + ]) + ), + + %% Connect to new port successfully. + C4 = ConnectFun(Host, NewPort, [ + {cacertfile, filename:join(PrivDir, "ca-next.pem")}, + {certfile, filename:join(PrivDir, "client.pem")}, + {keyfile, filename:join(PrivDir, "client.key")} + | ClientSSLOpts + ]), + %% Both pre- and post-update clients should be alive. ?assertEqual(pong, emqtt:ping(C1)), ?assertEqual(pong, emqtt:ping(C2)), ?assertEqual(pong, emqtt:ping(C3)), + ?assertEqual(pong, emqtt:ping(C4)), ok = emqtt:stop(C1), ok = emqtt:stop(C2), - ok = emqtt:stop(C3) + ok = emqtt:stop(C3), + ok = emqtt:stop(C4) end). t_quic_update_opts_fail(Config) ->