load("@rules_erlang//:eunit2.bzl", "eunit") load("@rules_erlang//:xref2.bzl", "xref") load("@rules_erlang//:dialyze.bzl", "dialyze", "plt") load( "//:rabbitmq.bzl", "BROKER_VERSION_REQUIREMENTS_ANY", "RABBITMQ_DIALYZER_OPTS", "assert_suites", "broker_for_integration_suites", "rabbitmq_app", "rabbitmq_integration_suite", "rabbitmq_suite", ) load( ":app.bzl", "all_beam_files", "all_srcs", "all_test_beam_files", "test_suite_beam_files", ) # gazelle:exclude test/src APP_NAME = "rabbitmq_stomp" APP_DESCRIPTION = "RabbitMQ STOMP plugin" APP_MODULE = "rabbit_stomp" APP_ENV = """[ {default_user, [{login, <<"guest">>}, {passcode, <<"guest">>}]}, {default_vhost, <<"/">>}, {default_topic_exchange, <<"amq.topic">>}, {default_nack_requeue, true}, {ssl_cert_login, false}, {implicit_connect, false}, {tcp_listeners, [61613]}, {ssl_listeners, []}, {num_tcp_acceptors, 10}, {num_ssl_acceptors, 10}, {tcp_listen_options, [{backlog, 128}, {nodelay, true}]}, %% see rabbitmq/rabbitmq-stomp#39 {trailing_lf, true}, %% see rabbitmq/rabbitmq-stomp#57 {hide_server_info, false}, {proxy_protocol, false} ]""" all_beam_files(name = "all_beam_files") all_test_beam_files(name = "all_test_beam_files") all_srcs(name = "all_srcs") test_suite_beam_files(name = "test_suite_beam_files") rabbitmq_app( name = "erlang_app", srcs = [":all_srcs"], hdrs = [":public_hdrs"], app_description = APP_DESCRIPTION, app_env = APP_ENV, app_extra_keys = BROKER_VERSION_REQUIREMENTS_ANY, app_module = APP_MODULE, app_name = APP_NAME, beam_files = [":beam_files"], license_files = [":license_files"], priv = [":priv"], deps = [ "//deps/amqp_client:erlang_app", "//deps/rabbit:erlang_app", "//deps/rabbit_common:erlang_app", "@ranch//:erlang_app", ], ) xref( name = "xref", additional_libs = [ "//deps/rabbitmq_cli:erlang_app", # keep ], target = ":erlang_app", ) plt( name = "deps_plt", for_target = ":erlang_app", ignore_warnings = True, libs = ["//deps/rabbitmq_cli:elixir"], # keep plt = "//:base_plt", deps = ["//deps/rabbitmq_cli:erlang_app"], # keep ) dialyze( name = "dialyze", dialyzer_opts = RABBITMQ_DIALYZER_OPTS, plt = ":deps_plt", target = ":erlang_app", ) eunit( name = "eunit", compiled_suites = [ ":test_src_rabbit_stomp_client_beam", ":test_src_rabbit_stomp_publish_test_beam", ], target = ":test_erlang_app", ) broker_for_integration_suites() rabbitmq_integration_suite( name = "command_SUITE", size = "medium", additional_beam = [ "test/src/rabbit_stomp_client.beam", ], ) rabbitmq_integration_suite( name = "config_schema_SUITE", size = "medium", ) rabbitmq_integration_suite( name = "connections_SUITE", size = "medium", additional_beam = [ "test/src/rabbit_stomp_client.beam", ], ) rabbitmq_suite( name = "frame_SUITE", size = "small", deps = [ "//deps/amqp_client:erlang_app", "//deps/rabbit_common:erlang_app", ], ) rabbitmq_integration_suite( name = "proxy_protocol_SUITE", size = "medium", ) rabbitmq_integration_suite( name = "python_SUITE", flaky = True, shard_count = 3, ) rabbitmq_integration_suite( name = "system_SUITE", size = "medium", additional_beam = [ "test/src/rabbit_stomp_client.beam", ], ) rabbitmq_integration_suite( name = "topic_SUITE", size = "medium", additional_beam = [ "test/src/rabbit_stomp_client.beam", ], ) rabbitmq_suite( name = "util_SUITE", size = "medium", deps = [ "//deps/amqp_client:erlang_app", "//deps/rabbit_common:erlang_app", ], ) assert_suites() alias( name = "rabbitmq_stomp", actual = ":erlang_app", visibility = ["//visibility:public"], )