summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Kuryloski <kuryloskip@vmware.com>2021-09-17 11:08:48 +0200
committermergify-bot <noreply@mergify.io>2021-09-17 09:21:32 +0000
commitacc57d12dbce799d587b7d09902b12a4050ed394 (patch)
tree7d00328cb51935526609073f94979bb0b6c523ee
parent906bc311c62cd3bc167b1dec84a5876a8bb0ec7c (diff)
downloadrabbitmq-server-git-mergify/bp/v3.9.x/pr-3443.tar.gz
Split the feature_flags_SUITE into two parts for CI/Bazelmergify/bp/v3.9.x/pr-3443
Two testcases in the original suite fail if the test is run as the root user. Currently under remote execution with bazel this is the only working option. There is a workaround in place, but the entire suite when run that way takes around 12 minutes. This splits the suite so that the minimal set of cases is executed using the slower workaround. (cherry picked from commit eea99e1cd51debc8c6a3a59686087d1f1b2454ae)
-rw-r--r--deps/rabbit/BUILD.bazel13
-rw-r--r--deps/rabbit/test/feature_flags_SUITE.erl4
-rw-r--r--deps/rabbit/test/feature_flags_with_unpriveleged_user_SUITE.erl74
3 files changed, 88 insertions, 3 deletions
diff --git a/deps/rabbit/BUILD.bazel b/deps/rabbit/BUILD.bazel
index 3e3e18fc36..a31d5dcb34 100644
--- a/deps/rabbit/BUILD.bazel
+++ b/deps/rabbit/BUILD.bazel
@@ -437,6 +437,19 @@ suites = [
size = "large",
flaky = True,
shard_count = 5,
+ runtime_deps = [
+ "//deps/rabbit/test/feature_flags_SUITE_data/my_plugin:bazel_erlang_lib",
+ ],
+ ),
+ rabbitmq_integration_suite(
+ PACKAGE,
+ name = "feature_flags_with_unpriveleged_user_SUITE",
+ size = "large",
+ additional_beam = [
+ ":feature_flags_SUITE_beam_files",
+ ],
+ flaky = True,
+ shard_count = 2,
# The enabling_* tests chmod files and then expect writes to be blocked.
# This probably doesn't work because we are root in the remote docker image.
tags = ["exclusive"],
diff --git a/deps/rabbit/test/feature_flags_SUITE.erl b/deps/rabbit/test/feature_flags_SUITE.erl
index f9fde6c121..c98369f596 100644
--- a/deps/rabbit/test/feature_flags_SUITE.erl
+++ b/deps/rabbit/test/feature_flags_SUITE.erl
@@ -61,14 +61,12 @@ groups() ->
{enabling_on_single_node, [],
[
enable_feature_flag_in_a_healthy_situation,
- enable_unsupported_feature_flag_in_a_healthy_situation,
- enable_feature_flag_when_ff_file_is_unwritable
+ enable_unsupported_feature_flag_in_a_healthy_situation
]},
{enabling_in_cluster, [],
[
enable_feature_flag_in_a_healthy_situation,
enable_unsupported_feature_flag_in_a_healthy_situation,
- enable_feature_flag_when_ff_file_is_unwritable,
enable_feature_flag_with_a_network_partition,
mark_feature_flag_as_enabled_with_a_network_partition
]},
diff --git a/deps/rabbit/test/feature_flags_with_unpriveleged_user_SUITE.erl b/deps/rabbit/test/feature_flags_with_unpriveleged_user_SUITE.erl
new file mode 100644
index 0000000000..7da9ccc3c1
--- /dev/null
+++ b/deps/rabbit/test/feature_flags_with_unpriveleged_user_SUITE.erl
@@ -0,0 +1,74 @@
+%% This Source Code Form is subject to the terms of the Mozilla Public
+%% License, v. 2.0. If a copy of the MPL was not distributed with this
+%% file, You can obtain one at https://mozilla.org/MPL/2.0/.
+%%
+%% Copyright (c) 2018-2021 VMware, Inc. or its affiliates. All rights reserved.
+%%
+
+-module(feature_flags_with_unpriveleged_user_SUITE).
+
+-include_lib("common_test/include/ct.hrl").
+-include_lib("eunit/include/eunit.hrl").
+
+-export([suite/0,
+ all/0,
+ groups/0,
+ init_per_suite/1,
+ end_per_suite/1,
+ init_per_group/2,
+ end_per_group/2,
+ init_per_testcase/2,
+ end_per_testcase/2,
+
+ enable_feature_flag_when_ff_file_is_unwritable/1
+ ]).
+
+suite() ->
+ [{timetrap, {minutes, 15}}].
+
+all() ->
+ [
+ {group, enabling_on_single_node},
+ {group, enabling_in_cluster}
+ ].
+
+groups() ->
+ [
+ {enabling_on_single_node, [],
+ [
+ enable_feature_flag_when_ff_file_is_unwritable
+ ]},
+ {enabling_in_cluster, [],
+ [
+ enable_feature_flag_when_ff_file_is_unwritable
+ ]}
+ ].
+
+%% This suite exists to allow running a portion of the feature_flags_SUITE
+%% under separate conditions in ci
+
+init_per_suite(Config) ->
+ feature_flags_SUITE:init_per_suite(Config).
+
+end_per_suite(Config) ->
+ feature_flags_SUITE:end_per_suite(Config).
+
+
+init_per_group(Group, Config) ->
+ feature_flags_SUITE:init_per_group(Group, Config).
+
+end_per_group(Group, Config) ->
+ feature_flags_SUITE:end_per_group(Group, Config).
+
+init_per_testcase(Testcase, Config) ->
+ feature_flags_SUITE:init_per_testcase(Testcase, Config).
+
+end_per_testcase(Testcase, Config) ->
+ feature_flags_SUITE:end_per_testcase(Testcase, Config).
+
+%% -------------------------------------------------------------------
+%% Testcases.
+%% -------------------------------------------------------------------
+
+enable_feature_flag_when_ff_file_is_unwritable(Config) ->
+ feature_flags_SUITE:enable_feature_flag_when_ff_file_is_unwritable(Config).