diff options
| author | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2019-11-28 11:45:13 +0100 |
|---|---|---|
| committer | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2019-11-28 11:49:00 +0100 |
| commit | bc392db8a02c347038ef41951f9b0882593ae5d4 (patch) | |
| tree | 52ee98a6f6119708e738bca5264bae4939dc4d7b | |
| parent | fc81a1399f4ea708f49255be224cb218589a341a (diff) | |
| download | rabbitmq-server-git-bc392db8a02c347038ef41951f9b0882593ae5d4.tar.gz | |
feature_flags_SUITE: Cleanup other plugins in `my_plugin/plugins`
We only keep `my_plugin-*.ez`. In particular, we don't want another copy
of `rabbit_common-*.ez` which might conflict with the primary copy if we
configure a secondary Umbrella.
| -rw-r--r-- | test/feature_flags_SUITE.erl | 19 |
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]). |
