diff --git a/deps/rabbitmq_recent_history_exchange/src/rabbit_db_rh_exchange.erl b/deps/rabbitmq_recent_history_exchange/src/rabbit_db_rh_exchange.erl index f8ed2762c5e6..c50fc93a189f 100644 --- a/deps/rabbitmq_recent_history_exchange/src/rabbit_db_rh_exchange.erl +++ b/deps/rabbitmq_recent_history_exchange/src/rabbit_db_rh_exchange.erl @@ -142,7 +142,12 @@ delete() -> }). delete_in_mnesia() -> - mnesia:delete_table(?RH_TABLE). + case mnesia:delete_table(?RH_TABLE) of + {atomic, ok} -> + ok; + {aborted, Reason} -> + {error, Reason} + end. delete_in_khepri() -> rabbit_khepri:delete(khepri_recent_history_path()). diff --git a/deps/rabbitmq_recent_history_exchange/test/system_SUITE.erl b/deps/rabbitmq_recent_history_exchange/test/system_SUITE.erl index 3b84b85bec98..2e05ddb30eba 100644 --- a/deps/rabbitmq_recent_history_exchange/test/system_SUITE.erl +++ b/deps/rabbitmq_recent_history_exchange/test/system_SUITE.erl @@ -41,7 +41,8 @@ all_tests() -> wrong_argument_type_test, no_store_test, e2e_test, - multinode_test + multinode_test, + lifecycle_test ]. %% ------------------------------------------------------------------- @@ -235,6 +236,16 @@ multinode_test(Config) -> rabbit_ct_client_helpers:close_connection_and_channel(Conn2, Chan2), ok. +lifecycle_test(Config) -> + %% Ensure that the boot and cleanup steps run as expected and return 'ok'. + ok = rabbit_ct_broker_helpers:rpc( + Config, + rabbit, stop_apps, [[rabbitmq_recent_history_exchange]]), + ok = rabbit_ct_broker_helpers:rpc( + Config, + rabbit, start_apps, [[rabbitmq_recent_history_exchange]]), + ok. + test0(Config, MakeMethod, MakeMsg, DeclareArgs, Queues, MsgCount, ExpectedCount) -> Chan = rabbit_ct_client_helpers:open_channel(Config), #'exchange.declare_ok'{} =