From ca1a5831209561ff71e9bb80eca7a4934e6bc656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-S=C3=A9bastien=20P=C3=A9dron?= Date: Tue, 25 Jul 2023 11:14:50 +0200 Subject: [PATCH] Don't run testcases in parallel when using Bazel [Why] Testcases fail with various system errors in CI, like the inability to spawn system processes or to open a TCP port. [How] We check if the `$RABBITMQ_RUN` environment variable is set. It is only set by Bazel and not make(1). Based on that, we compute the test group options to include `parallel` or not. --- deps/rabbit/test/feature_flags_v2_SUITE.erl | 17 ++++++++++--- deps/rabbit/test/queue_parallel_SUITE.erl | 27 +++++++++++++++------ 2 files changed, 33 insertions(+), 11 deletions(-) diff --git a/deps/rabbit/test/feature_flags_v2_SUITE.erl b/deps/rabbit/test/feature_flags_v2_SUITE.erl index dd85a1e69b9..d36b996e6e7 100644 --- a/deps/rabbit/test/feature_flags_v2_SUITE.erl +++ b/deps/rabbit/test/feature_flags_v2_SUITE.erl @@ -61,18 +61,29 @@ all() -> ]. groups() -> + %% Don't run testcases in parallel when Bazel is used because they fail + %% with various system errors in CI, like the inability to spawn system + %% processes or to open a TCP port. + UsesBazel = case os:getenv("RABBITMQ_RUN") of + false -> false; + _ -> true + end, + GroupOptions = case UsesBazel of + false -> [parallel]; + true -> [] + end, Groups = [ - {direct, [parallel], + {direct, GroupOptions, [ rpc_calls ]}, - {cluster_size_1, [parallel], + {cluster_size_1, GroupOptions, [ enable_unknown_feature_flag_on_a_single_node, enable_supported_feature_flag_on_a_single_node ]}, - {cluster_size_3, [parallel], + {cluster_size_3, GroupOptions, [ enable_unknown_feature_flag_in_a_3node_cluster, enable_supported_feature_flag_in_a_3node_cluster, diff --git a/deps/rabbit/test/queue_parallel_SUITE.erl b/deps/rabbit/test/queue_parallel_SUITE.erl index 0ce25e5b18c..63b5e2a16e0 100644 --- a/deps/rabbit/test/queue_parallel_SUITE.erl +++ b/deps/rabbit/test/queue_parallel_SUITE.erl @@ -24,6 +24,17 @@ all() -> ]. groups() -> + %% Don't run testcases in parallel when Bazel is used because they fail + %% with various system errors in CI, like the inability to spawn system + %% processes or to open a TCP port. + UsesBazel = case os:getenv("RABBITMQ_RUN") of + false -> false; + _ -> true + end, + GroupOptions = case UsesBazel of + false -> [parallel]; + true -> [] + end, AllTests = [publish, consume, consume_first_empty, @@ -56,14 +67,14 @@ groups() -> ], [ {parallel_tests, [], [ - {classic_queue, [parallel], AllTests ++ [delete_immediately_by_pid_succeeds, - trigger_message_store_compaction]}, - {mirrored_queue, [parallel], AllTests ++ [delete_immediately_by_pid_succeeds, - trigger_message_store_compaction]}, - {quorum_queue, [parallel], AllTests ++ ExtraBccTests ++ [delete_immediately_by_pid_fails]}, - {quorum_queue_in_memory_limit, [parallel], AllTests ++ [delete_immediately_by_pid_fails]}, - {quorum_queue_in_memory_bytes, [parallel], AllTests ++ [delete_immediately_by_pid_fails]}, - {stream_queue, [parallel], ExtraBccTests ++ [publish, subscribe]} + {classic_queue, GroupOptions, AllTests ++ [delete_immediately_by_pid_succeeds, + trigger_message_store_compaction]}, + {mirrored_queue, GroupOptions, AllTests ++ [delete_immediately_by_pid_succeeds, + trigger_message_store_compaction]}, + {quorum_queue, GroupOptions, AllTests ++ ExtraBccTests ++ [delete_immediately_by_pid_fails]}, + {quorum_queue_in_memory_limit, GroupOptions, AllTests ++ [delete_immediately_by_pid_fails]}, + {quorum_queue_in_memory_bytes, GroupOptions, AllTests ++ [delete_immediately_by_pid_fails]}, + {stream_queue, GroupOptions, ExtraBccTests ++ [publish, subscribe]} ]} ].