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.
This commit is contained in:
		
							parent
							
								
									becdbe95e5
								
							
						
					
					
						commit
						ca1a583120
					
				| 
						 | 
					@ -61,18 +61,29 @@ all() ->
 | 
				
			||||||
    ].
 | 
					    ].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
groups() ->
 | 
					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 =
 | 
					    Groups =
 | 
				
			||||||
    [
 | 
					    [
 | 
				
			||||||
     {direct, [parallel],
 | 
					     {direct, GroupOptions,
 | 
				
			||||||
      [
 | 
					      [
 | 
				
			||||||
       rpc_calls
 | 
					       rpc_calls
 | 
				
			||||||
      ]},
 | 
					      ]},
 | 
				
			||||||
     {cluster_size_1, [parallel],
 | 
					     {cluster_size_1, GroupOptions,
 | 
				
			||||||
      [
 | 
					      [
 | 
				
			||||||
       enable_unknown_feature_flag_on_a_single_node,
 | 
					       enable_unknown_feature_flag_on_a_single_node,
 | 
				
			||||||
       enable_supported_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_unknown_feature_flag_in_a_3node_cluster,
 | 
				
			||||||
       enable_supported_feature_flag_in_a_3node_cluster,
 | 
					       enable_supported_feature_flag_in_a_3node_cluster,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,17 @@ all() ->
 | 
				
			||||||
    ].
 | 
					    ].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
groups() ->
 | 
					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,
 | 
					    AllTests = [publish,
 | 
				
			||||||
                consume,
 | 
					                consume,
 | 
				
			||||||
                consume_first_empty,
 | 
					                consume_first_empty,
 | 
				
			||||||
| 
						 | 
					@ -56,14 +67,14 @@ groups() ->
 | 
				
			||||||
                    ],
 | 
					                    ],
 | 
				
			||||||
    [
 | 
					    [
 | 
				
			||||||
     {parallel_tests, [], [
 | 
					     {parallel_tests, [], [
 | 
				
			||||||
       {classic_queue, [parallel], AllTests ++ [delete_immediately_by_pid_succeeds,
 | 
					       {classic_queue, GroupOptions, AllTests ++ [delete_immediately_by_pid_succeeds,
 | 
				
			||||||
                                                trigger_message_store_compaction]},
 | 
					                                                  trigger_message_store_compaction]},
 | 
				
			||||||
       {mirrored_queue, [parallel], AllTests ++ [delete_immediately_by_pid_succeeds,
 | 
					       {mirrored_queue, GroupOptions, AllTests ++ [delete_immediately_by_pid_succeeds,
 | 
				
			||||||
                                                 trigger_message_store_compaction]},
 | 
					                                                   trigger_message_store_compaction]},
 | 
				
			||||||
       {quorum_queue, [parallel], AllTests ++ ExtraBccTests ++ [delete_immediately_by_pid_fails]},
 | 
					       {quorum_queue, GroupOptions, AllTests ++ ExtraBccTests ++ [delete_immediately_by_pid_fails]},
 | 
				
			||||||
       {quorum_queue_in_memory_limit, [parallel], AllTests ++ [delete_immediately_by_pid_fails]},
 | 
					       {quorum_queue_in_memory_limit, GroupOptions, AllTests ++ [delete_immediately_by_pid_fails]},
 | 
				
			||||||
       {quorum_queue_in_memory_bytes, [parallel], AllTests ++ [delete_immediately_by_pid_fails]},
 | 
					       {quorum_queue_in_memory_bytes, GroupOptions, AllTests ++ [delete_immediately_by_pid_fails]},
 | 
				
			||||||
       {stream_queue, [parallel], ExtraBccTests ++ [publish, subscribe]}
 | 
					       {stream_queue, GroupOptions, ExtraBccTests ++ [publish, subscribe]}
 | 
				
			||||||
      ]}
 | 
					      ]}
 | 
				
			||||||
    ].
 | 
					    ].
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue