summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/feature_flags_SUITE.erl19
1 files changed, 18 insertions, 1 deletions
diff --git a/test/feature_flags_SUITE.erl b/test/feature_flags_SUITE.erl
index d39ac76f87..16f11733d5 100644
--- a/test/feature_flags_SUITE.erl
+++ b/test/feature_flags_SUITE.erl
@@ -900,21 +900,38 @@ build_my_plugin(Config) ->
PluginsDir = filename:join(PluginSrcDir, "plugins"),
Config1 = rabbit_ct_helpers:set_config(Config,
[{rmq_plugins_dir, PluginsDir}]),
- case filelib:wildcard("plugins/my_plugin-*", PluginSrcDir) of
+ {MyPlugin, OtherPlugins} = list_my_plugin_plugins(PluginSrcDir),
+ case MyPlugin of
[] ->
DepsDir = ?config(erlang_mk_depsdir, Config),
Args = ["test-dist",
{"DEPS_DIR=~s", [DepsDir]}],
case rabbit_ct_helpers:make(Config1, PluginSrcDir, Args) of
{ok, _} ->
+ {_, OtherPlugins1} = list_my_plugin_plugins(PluginSrcDir),
+ remove_other_plugins(PluginSrcDir, OtherPlugins1),
Config1;
{error, _} ->
{skip, "Failed to compile the `my_plugin` test plugin"}
end;
_ ->
+ remove_other_plugins(PluginSrcDir, OtherPlugins),
Config1
end.
+list_my_plugin_plugins(PluginSrcDir) ->
+ Files = filelib:wildcard("plugins/*", PluginSrcDir),
+ lists:partition(
+ fun(Path) ->
+ Filename = filename:basename(Path),
+ re:run(Filename, "^my_plugin-", [{capture, none}]) =:= match
+ end, Files).
+
+remove_other_plugins(PluginSrcDir, OtherPlugins) ->
+ [ok = file:delete(
+ filename:join(PluginSrcDir, Filename))
+ || Filename <- OtherPlugins].
+
enable_feature_flag_on(Config, Node, FeatureName) ->
rabbit_ct_broker_helpers:rpc(
Config, Node, rabbit_feature_flags, enable, [FeatureName]).