| 
									
										
										
										
											2021-03-31 15:03:28 +08:00
										 |  |  | load( | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |     "@rules_erlang//:erlang_app.bzl", | 
					
						
							| 
									
										
										
										
											2021-03-31 15:03:28 +08:00
										 |  |  |     "DEFAULT_ERLC_OPTS", | 
					
						
							|  |  |  |     "DEFAULT_TEST_ERLC_OPTS", | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |     "erlang_app", | 
					
						
							|  |  |  |     "test_erlang_app", | 
					
						
							| 
									
										
										
										
											2021-03-31 15:03:28 +08:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2022-02-28 18:45:49 +08:00
										 |  |  | load( | 
					
						
							| 
									
										
										
										
											2022-05-17 20:07:16 +08:00
										 |  |  |     "@rules_erlang//:ct.bzl", | 
					
						
							| 
									
										
										
										
											2022-11-24 22:46:08 +08:00
										 |  |  |     "assert_suites2", | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |     "ct_test", | 
					
						
							| 
									
										
										
										
											2022-02-28 18:45:49 +08:00
										 |  |  | ) | 
					
						
							| 
									
										
										
										
											2021-05-11 16:44:28 +08:00
										 |  |  | load("//:rabbitmq_home.bzl", "rabbitmq_home") | 
					
						
							|  |  |  | load("//:rabbitmq_run.bzl", "rabbitmq_run") | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-03 19:38:06 +08:00
										 |  |  | def without(item, elements): | 
					
						
							|  |  |  |     c = list(elements) | 
					
						
							|  |  |  |     c.remove(item) | 
					
						
							|  |  |  |     return c | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  | STARTS_BACKGROUND_BROKER_TAG = "starts-background-broker" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | MIXED_VERSION_CLUSTER_TAG = "mixed-version-cluster" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-03 19:38:06 +08:00
										 |  |  | RABBITMQ_ERLC_OPTS = DEFAULT_ERLC_OPTS + [ | 
					
						
							|  |  |  |     "-DINSTR_MOD=gm", | 
					
						
							|  |  |  | ] | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-31 15:03:28 +08:00
										 |  |  | RABBITMQ_TEST_ERLC_OPTS = DEFAULT_TEST_ERLC_OPTS + [ | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |     "+nowarn_export_all", | 
					
						
							| 
									
										
										
										
											2022-01-03 19:38:06 +08:00
										 |  |  |     "-DINSTR_MOD=gm", | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-01 16:19:10 +08:00
										 |  |  | RABBITMQ_DIALYZER_OPTS = [ | 
					
						
							|  |  |  |     "-Werror_handling", | 
					
						
							|  |  |  |     "-Wunmatched_returns", | 
					
						
							| 
									
										
										
										
											2023-02-07 00:57:10 +08:00
										 |  |  |     "-Wunknown", | 
					
						
							| 
									
										
										
										
											2021-06-01 16:19:10 +08:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-03-04 17:13:59 +08:00
										 |  |  | APP_VERSION = "4.0.0" | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-07 23:19:35 +08:00
										 |  |  | BROKER_VERSION_REQUIREMENTS_ANY = """
 | 
					
						
							|  |  |  | 	{broker_version_requirements, []} | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-30 21:49:08 +08:00
										 |  |  | ALL_PLUGINS = [ | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |     "//deps/rabbit:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_amqp1_0:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_auth_backend_cache:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_auth_backend_http:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_auth_backend_ldap:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_auth_backend_oauth2:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_auth_mechanism_ssl:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_consistent_hash_exchange:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_event_exchange:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_federation:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_federation_management:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_jms_topic_exchange:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_management:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_mqtt:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_peer_discovery_aws:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_peer_discovery_consul:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_peer_discovery_etcd:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_peer_discovery_k8s:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_prometheus:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_random_exchange:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_recent_history_exchange:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_sharding:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_shovel:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_shovel_management:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_stomp:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_stream:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_stream_management:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_top:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_tracing:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_trust_store:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_web_dispatch:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbitmq_web_mqtt:erlang_app", | 
					
						
							| 
									
										
										
										
											2023-05-01 16:32:59 +08:00
										 |  |  |     "//deps/rabbitmq_web_mqtt_examples:erlang_app", | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |     "//deps/rabbitmq_web_stomp:erlang_app", | 
					
						
							| 
									
										
										
										
											2023-05-01 16:32:59 +08:00
										 |  |  |     "//deps/rabbitmq_web_stomp_examples:erlang_app", | 
					
						
							| 
									
										
										
										
											2021-09-30 21:49:08 +08:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-16 16:22:44 +08:00
										 |  |  | LABELS_WITH_TEST_VERSIONS = [ | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |     "//deps/amqp10_common:erlang_app", | 
					
						
							|  |  |  |     "//deps/rabbit_common:erlang_app", | 
					
						
							| 
									
										
										
										
											2023-12-08 20:00:46 +08:00
										 |  |  |     "//deps/rabbitmq_prelaunch:erlang_app", | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |     "//deps/rabbit:erlang_app", | 
					
						
							| 
									
										
										
										
											2021-04-16 16:22:44 +08:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-30 21:49:08 +08:00
										 |  |  | def all_plugins(rabbitmq_workspace = "@rabbitmq-server"): | 
					
						
							| 
									
										
										
										
											2022-05-17 20:07:16 +08:00
										 |  |  |     return [ | 
					
						
							|  |  |  |         Label("{}{}".format(rabbitmq_workspace, p)) | 
					
						
							|  |  |  |         for p in ALL_PLUGINS | 
					
						
							|  |  |  |     ] | 
					
						
							| 
									
										
										
										
											2021-09-30 21:49:08 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-16 16:22:44 +08:00
										 |  |  | def with_test_versions(deps): | 
					
						
							|  |  |  |     r = [] | 
					
						
							|  |  |  |     for d in deps: | 
					
						
							|  |  |  |         if d in LABELS_WITH_TEST_VERSIONS: | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |             r.append(d.replace(":erlang_app", ":test_erlang_app")) | 
					
						
							| 
									
										
										
										
											2021-04-16 16:22:44 +08:00
										 |  |  |         else: | 
					
						
							|  |  |  |             r.append(d) | 
					
						
							|  |  |  |     return r | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  | def rabbitmq_app( | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         name = "erlang_app", | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         app_name = "", | 
					
						
							|  |  |  |         app_version = APP_VERSION, | 
					
						
							|  |  |  |         app_description = "", | 
					
						
							|  |  |  |         app_module = "", | 
					
						
							|  |  |  |         app_registered = [], | 
					
						
							| 
									
										
										
										
											2022-04-05 18:02:42 +08:00
										 |  |  |         app_env = "", | 
					
						
							|  |  |  |         app_extra_keys = "", | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         extra_apps = [], | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         beam_files = [":beam_files"], | 
					
						
							|  |  |  |         hdrs = None, | 
					
						
							|  |  |  |         srcs = [":all_srcs"], | 
					
						
							|  |  |  |         priv = [":priv"], | 
					
						
							|  |  |  |         license_files = [":license_files"], | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         deps = [], | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         testonly = False): | 
					
						
							|  |  |  |     if name != "erlang_app": | 
					
						
							|  |  |  |         fail("name attr exists for compatibility only, and must be set to '\"erlang_app\"'") | 
					
						
							|  |  |  |     if beam_files != [":beam_files"]: | 
					
						
							|  |  |  |         fail("beam_files attr exists for compatibility only, and must be set to '[\":beam_files\"]'") | 
					
						
							|  |  |  |     if hdrs != [":public_hdrs"]: | 
					
						
							|  |  |  |         fail("hdrs attr exists for compatibility only, and must be set to '[\":public_hdrs\"]'") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |     erlang_app( | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         name = "erlang_app", | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         app_name = app_name, | 
					
						
							|  |  |  |         app_version = app_version, | 
					
						
							|  |  |  |         app_description = app_description, | 
					
						
							|  |  |  |         app_module = app_module, | 
					
						
							|  |  |  |         app_registered = app_registered, | 
					
						
							|  |  |  |         app_env = app_env, | 
					
						
							| 
									
										
										
										
											2022-05-17 20:07:16 +08:00
										 |  |  |         app_extra_keys = app_extra_keys, | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         extra_apps = extra_apps, | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         beam_files = beam_files, | 
					
						
							|  |  |  |         hdrs = [":public_hdrs"], | 
					
						
							|  |  |  |         srcs = srcs, | 
					
						
							|  |  |  |         priv = priv, | 
					
						
							|  |  |  |         license_files = license_files, | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         deps = deps, | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         testonly = testonly, | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |     test_erlang_app( | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         name = "test_erlang_app", | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         app_name = app_name, | 
					
						
							|  |  |  |         app_version = app_version, | 
					
						
							|  |  |  |         app_description = app_description, | 
					
						
							|  |  |  |         app_module = app_module, | 
					
						
							|  |  |  |         app_registered = app_registered, | 
					
						
							|  |  |  |         app_env = app_env, | 
					
						
							| 
									
										
										
										
											2022-05-17 20:07:16 +08:00
										 |  |  |         app_extra_keys = app_extra_keys, | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         extra_apps = extra_apps, | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         beam_files = [":test_beam_files"], | 
					
						
							|  |  |  |         hdrs = [":public_and_private_hdrs"], | 
					
						
							|  |  |  |         srcs = srcs, | 
					
						
							|  |  |  |         priv = priv, | 
					
						
							|  |  |  |         license_files = license_files, | 
					
						
							| 
									
										
										
										
											2021-04-16 16:22:44 +08:00
										 |  |  |         deps = with_test_versions(deps), | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  | def rabbitmq_suite( | 
					
						
							|  |  |  |         name = None, | 
					
						
							|  |  |  |         suite_name = None, | 
					
						
							|  |  |  |         data = [], | 
					
						
							|  |  |  |         additional_beam = [], | 
					
						
							|  |  |  |         test_env = {}, | 
					
						
							|  |  |  |         deps = [], | 
					
						
							|  |  |  |         runtime_deps = [], | 
					
						
							|  |  |  |         **kwargs): | 
					
						
							| 
									
										
										
										
											2023-10-16 21:14:56 +08:00
										 |  |  |     app_name = native.package_name().rpartition("/")[-1] | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |     # suite_name exists in the underying ct_test macro, but we don't | 
					
						
							|  |  |  |     # want to use the arg in rabbitmq-server, for the sake of clarity | 
					
						
							|  |  |  |     if suite_name != None: | 
					
						
							|  |  |  |         fail("rabbitmq_suite cannot be called with a suite_name attr") | 
					
						
							|  |  |  |     ct_test( | 
					
						
							|  |  |  |         name = name, | 
					
						
							| 
									
										
										
										
											2023-10-16 21:14:56 +08:00
										 |  |  |         app_name = app_name, | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         compiled_suites = [":{}_beam_files".format(name)] + additional_beam, | 
					
						
							|  |  |  |         data = native.glob(["test/{}_data/**/*".format(name)]) + data, | 
					
						
							| 
									
										
										
										
											2021-05-11 16:44:28 +08:00
										 |  |  |         test_env = dict({ | 
					
						
							|  |  |  |             "RABBITMQ_CT_SKIP_AS_ERROR": "true", | 
					
						
							| 
									
										
										
										
											2022-05-09 17:48:56 +08:00
										 |  |  |             "LANG": "C.UTF-8", | 
					
						
							| 
									
										
										
										
											2023-10-17 19:42:03 +08:00
										 |  |  |             "COVERDATA_TO_LCOV_APPS_DIRS": "deps:deps/rabbit/apps", | 
					
						
							| 
									
										
										
										
											2021-05-11 16:44:28 +08:00
										 |  |  |         }.items() + test_env.items()), | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         deps = [":test_erlang_app"] + deps + runtime_deps, | 
					
						
							| 
									
										
										
										
											2021-05-11 16:44:28 +08:00
										 |  |  |         **kwargs | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |     return name | 
					
						
							| 
									
										
										
										
											2021-05-11 16:44:28 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-17 20:07:16 +08:00
										 |  |  | def broker_for_integration_suites(extra_plugins = []): | 
					
						
							| 
									
										
										
										
											2021-05-11 16:44:28 +08:00
										 |  |  |     rabbitmq_home( | 
					
						
							|  |  |  |         name = "broker-for-tests-home", | 
					
						
							|  |  |  |         plugins = [ | 
					
						
							| 
									
										
										
										
											2022-07-26 20:41:40 +08:00
										 |  |  |             "//deps/rabbit:test_erlang_app", | 
					
						
							|  |  |  |             ":test_erlang_app", | 
					
						
							| 
									
										
										
										
											2022-05-17 20:07:16 +08:00
										 |  |  |         ] + extra_plugins, | 
					
						
							| 
									
										
										
										
											2021-07-19 22:03:59 +08:00
										 |  |  |         testonly = True, | 
					
						
							| 
									
										
										
										
											2021-05-11 16:44:28 +08:00
										 |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     rabbitmq_run( | 
					
						
							|  |  |  |         name = "rabbitmq-for-tests-run", | 
					
						
							|  |  |  |         home = ":broker-for-tests-home", | 
					
						
							| 
									
										
										
										
											2021-07-19 22:03:59 +08:00
										 |  |  |         testonly = True, | 
					
						
							| 
									
										
										
										
											2021-05-11 16:44:28 +08:00
										 |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  | def rabbitmq_integration_suite( | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |         name = None, | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         suite_name = None, | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |         tags = [], | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         data = [], | 
					
						
							| 
									
										
										
										
											2021-05-11 16:44:28 +08:00
										 |  |  |         erlc_opts = [], | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         additional_beam = [], | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         test_env = {}, | 
					
						
							|  |  |  |         tools = [], | 
					
						
							|  |  |  |         deps = [], | 
					
						
							|  |  |  |         runtime_deps = [], | 
					
						
							|  |  |  |         **kwargs): | 
					
						
							| 
									
										
										
										
											2023-10-16 21:14:56 +08:00
										 |  |  |     app_name = native.package_name().rpartition("/")[-1] | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |     # suite_name exists in the underying ct_test macro, but we don't | 
					
						
							|  |  |  |     # want to use the arg in rabbitmq-server, for the sake of clarity | 
					
						
							|  |  |  |     if suite_name != None: | 
					
						
							|  |  |  |         fail("rabbitmq_integration_suite cannot be called with a suite_name attr") | 
					
						
							|  |  |  |     assumed_deps = [ | 
					
						
							|  |  |  |         ":test_erlang_app", | 
					
						
							| 
									
										
										
										
											2022-04-05 18:02:42 +08:00
										 |  |  |         "//deps/rabbit_common:erlang_app", | 
					
						
							|  |  |  |         "//deps/rabbitmq_ct_helpers:erlang_app", | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         "//deps/rabbitmq_cli:elixir", | 
					
						
							|  |  |  |         "//deps/rabbitmq_cli:erlang_app", | 
					
						
							|  |  |  |         "//deps/rabbitmq_ct_client_helpers:erlang_app", | 
					
						
							| 
									
										
										
										
											2022-04-05 18:02:42 +08:00
										 |  |  |     ] | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |     package = native.package_name() | 
					
						
							| 
									
										
										
										
											2022-04-05 18:02:42 +08:00
										 |  |  |     if package != "deps/amqp_client": | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         assumed_deps.append("//deps/amqp_client:erlang_app") | 
					
						
							| 
									
										
										
										
											2022-04-05 18:02:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |     ct_test( | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |         name = name, | 
					
						
							| 
									
										
										
										
											2023-10-16 21:14:56 +08:00
										 |  |  |         app_name = app_name, | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |         suite_name = name, | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         compiled_suites = [":{}_beam_files".format(name)] + additional_beam, | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |         tags = tags + [STARTS_BACKGROUND_BROKER_TAG], | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         data = native.glob(["test/{}_data/**/*".format(name)]) + data, | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         test_env = dict({ | 
					
						
							| 
									
										
										
										
											2021-05-11 17:22:36 +08:00
										 |  |  |             "SKIP_MAKE_TEST_DIST": "true", | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |             "RABBITMQ_CT_SKIP_AS_ERROR": "true", | 
					
						
							| 
									
										
										
										
											2023-04-26 02:49:58 +08:00
										 |  |  |             "RABBITMQ_RUN": "$(location :rabbitmq-for-tests-run)", | 
					
						
							| 
									
										
										
										
											2021-05-10 23:38:03 +08:00
										 |  |  |             "RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmqctl".format(package), | 
					
						
							|  |  |  |             "RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmq-plugins".format(package), | 
					
						
							| 
									
										
										
										
											2021-05-11 17:22:36 +08:00
										 |  |  |             "RABBITMQ_QUEUES": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmq-queues".format(package), | 
					
						
							| 
									
										
										
										
											2022-05-09 17:48:56 +08:00
										 |  |  |             "LANG": "C.UTF-8", | 
					
						
							| 
									
										
										
										
											2023-10-17 19:42:03 +08:00
										 |  |  |             "COVERDATA_TO_LCOV_APPS_DIRS": "deps:deps/rabbit/apps", | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         }.items() + test_env.items()), | 
					
						
							|  |  |  |         tools = [ | 
					
						
							| 
									
										
										
										
											2021-05-10 23:38:03 +08:00
										 |  |  |             ":rabbitmq-for-tests-run", | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         ] + tools, | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         deps = assumed_deps + deps + runtime_deps, | 
					
						
							| 
									
										
										
										
											2021-03-29 17:01:43 +08:00
										 |  |  |         **kwargs | 
					
						
							|  |  |  |     ) | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |     ct_test( | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |         name = name + "-mixed", | 
					
						
							|  |  |  |         suite_name = name, | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         compiled_suites = [":{}_beam_files".format(name)] + additional_beam, | 
					
						
							| 
									
										
										
										
											2022-01-06 03:57:48 +08:00
										 |  |  |         tags = tags + [STARTS_BACKGROUND_BROKER_TAG, MIXED_VERSION_CLUSTER_TAG], | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         data = native.glob(["test/{}_data/**/*".format(name)]) + data, | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |         test_env = dict({ | 
					
						
							|  |  |  |             "SKIP_MAKE_TEST_DIST": "true", | 
					
						
							| 
									
										
										
										
											2023-02-08 19:05:31 +08:00
										 |  |  |             # The feature flags listed below are required. This means they must be enabled in mixed-version testing | 
					
						
							|  |  |  |             # before even starting the cluster because newer nodes don't have the corresponding compatibility/migration code. | 
					
						
							|  |  |  |             "RABBITMQ_FEATURE_FLAGS": | 
					
						
							|  |  |  |             # required starting from 3.11.0 in rabbit: | 
					
						
							|  |  |  |             "quorum_queue,implicit_default_bindings,virtual_host_metadata,maintenance_mode_status,user_limits," + | 
					
						
							|  |  |  |             # required starting from 3.12.0 in rabbit: | 
					
						
							|  |  |  |             "feature_flags_v2,stream_queue,classic_queue_type_delivery_support,classic_mirrored_queue_version," + | 
					
						
							| 
									
										
										
										
											2024-04-04 14:57:49 +08:00
										 |  |  |             "stream_single_active_consumer,direct_exchange_routing_v2,listener_records_in_ets,tracking_records_in_ets," + | 
					
						
							| 
									
										
										
										
											2023-02-08 19:05:31 +08:00
										 |  |  |             # required starting from 3.12.0 in rabbitmq_management_agent: | 
					
						
							|  |  |  |             # empty_basic_get_metric, drop_unroutable_metric | 
					
						
							| 
									
										
										
										
											2024-04-04 14:57:49 +08:00
										 |  |  |             # required starting from 4.0 in rabbit: | 
					
						
							|  |  |  |             "message_containers", | 
					
						
							| 
									
										
										
										
											2023-04-26 02:49:58 +08:00
										 |  |  |             "RABBITMQ_RUN": "$(location :rabbitmq-for-tests-run)", | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |             "RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmqctl".format(package), | 
					
						
							|  |  |  |             "RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmq-plugins".format(package), | 
					
						
							|  |  |  |             "RABBITMQ_QUEUES": "$TEST_SRCDIR/$TEST_WORKSPACE/{}/broker-for-tests-home/sbin/rabbitmq-queues".format(package), | 
					
						
							| 
									
										
										
										
											2024-02-28 00:43:39 +08:00
										 |  |  |             "RABBITMQ_RUN_SECONDARY": "$(location @rabbitmq-server-generic-unix-3.13//:rabbitmq-run)", | 
					
						
							| 
									
										
										
										
											2022-05-09 17:48:56 +08:00
										 |  |  |             "LANG": "C.UTF-8", | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |         }.items() + test_env.items()), | 
					
						
							|  |  |  |         tools = [ | 
					
						
							|  |  |  |             ":rabbitmq-for-tests-run", | 
					
						
							| 
									
										
										
										
											2024-02-28 00:43:39 +08:00
										 |  |  |             "@rabbitmq-server-generic-unix-3.13//:rabbitmq-run", | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |         ] + tools, | 
					
						
							| 
									
										
										
										
											2023-02-23 21:47:41 +08:00
										 |  |  |         deps = assumed_deps + deps + runtime_deps, | 
					
						
							| 
									
										
										
										
											2021-07-19 20:33:25 +08:00
										 |  |  |         **kwargs | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return name | 
					
						
							| 
									
										
										
										
											2021-07-12 21:55:56 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-24 22:46:08 +08:00
										 |  |  | def assert_suites(**kwargs): | 
					
						
							|  |  |  |     assert_suites2(**kwargs) |