Add a partial Bazel build (#2938)

Adds WORKSPACE.bazel, BUILD.bazel & *.bzl files for partial build & test with Bazel. Introduces a build-time dependency on https://github.com/rabbitmq/bazel-erlang
This commit is contained in:
Philip Kuryloski 2021-03-29 11:01:43 +02:00 committed by GitHub
parent e98b343095
commit 388654c542
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
127 changed files with 4096 additions and 4901 deletions

View File

@ -1,52 +0,0 @@
name: Workflow Base Images
on:
- workflow_dispatch
jobs:
ci-base:
name: ci-base
runs-on: ubuntu-18.04
strategy:
matrix:
erlang_version:
- "22.3"
- "23.1"
fail-fast: false
steps:
- name: CHECKOUT REPOSITORY
uses: actions/checkout@v2
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Login to GCR
uses: docker/login-action@v1
with:
registry: eu.gcr.io
username: _json_key
password: ${{ secrets.GCR_JSON_KEY }}
- name: CREATE ERLANG+ELIXIR IMAGE (${{ matrix.erlang_version }})
uses: docker/build-push-action@v2
with:
push: true
file: ci/dockerfiles/${{ matrix.erlang_version }}/erlang_elixir
tags: eu.gcr.io/cf-rabbitmq-core/erlang_elixir:${{ matrix.erlang_version }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
- name: CREATE BASE CI IMAGE (${{ matrix.erlang_version }})
uses: docker/build-push-action@v2
with:
push: true
file: ci/dockerfiles/ci-base
build-args: |
ERLANG_VERSION=${{ matrix.erlang_version }}
SECONDARY_UMBRELLA_GITREFS=v3.7.28 v3.8.9
tags: eu.gcr.io/cf-rabbitmq-core/ci-base:${{ matrix.erlang_version }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

54
.github/workflows/test.yaml vendored Normal file
View File

@ -0,0 +1,54 @@
name: Test
on: push
jobs:
test:
name: test
runs-on: ubuntu-18.04
strategy:
matrix:
erlang_version:
- "23"
timeout-minutes: 60
steps:
- name: CHECKOUT REPOSITORY
uses: actions/checkout@v2
- name: CONFIGURE BAZEL
run: |
echo "${{ secrets.BUILDBUDDY_CERT }}" > buildbuddy-cert.pem
echo "${{ secrets.BUILDBUDDY_KEY }}" > buildbuddy-key.pem
cat << EOF >> .bazelrc
build --remote_executor=grpcs://cloud.buildbuddy.io
build --host_platform=//:erlang_${{ matrix.erlang_version }}_platform
build --platforms=//:erlang_${{ matrix.erlang_version }}_platform
build --extra_execution_platforms=//:erlang_${{ matrix.erlang_version }}_platform
build --crosstool_top=@buildbuddy_toolchain//:toolchain
build --extra_toolchains=@buildbuddy_toolchain//:cc_toolchain
build --javabase=@buildbuddy_toolchain//:javabase_jdk8
build --host_javabase=@buildbuddy_toolchain//:javabase_jdk8
build --java_toolchain=@buildbuddy_toolchain//:toolchain_jdk8
build --host_java_toolchain=@buildbuddy_toolchain//:toolchain_jdk8
build --@bazel-erlang//:erlang_version=${{ matrix.erlang_version }}
build --@bazel-erlang//:erlang_home=/usr/lib/erlang
build --//:elixir_home=/usr/local
build --bes_results_url=https://app.buildbuddy.io/invocation/
build --bes_backend=grpcs://cloud.buildbuddy.io
build --remote_cache=grpcs://cloud.buildbuddy.io
build --tls_client_certificate=buildbuddy-cert.pem
build --tls_client_key=buildbuddy-key.pem
build --remote_timeout=1200
build --build_metadata=ROLE=CI
build --remote_instance_name=buildbuddy-io/buildbuddy/ci
build --spawn_strategy=remote
build --jobs=50
EOF
#! - name: Setup tmate session
#! uses: mxschmitt/action-tmate@v3
- name: RUN TESTS
run: |
bazelisk test //... \
--test_tag_filters=-exclusive \
--verbose_failures

3
.gitignore vendored
View File

@ -72,3 +72,6 @@ rabbitmq-server-*.zip
traces*
callgrand*
/.bazelrc
/bazel-*

71
BAZEL.md Normal file
View File

@ -0,0 +1,71 @@
# Experimental [Bazel](https://www.bazel.build/) build
From https://docs.bazel.build/versions/master/bazel-overview.html
> Bazel is an open-source build and test tool similar to Make, Maven, and Gradle. It uses a human-readable, high-level build language. Bazel supports projects in multiple languages and builds outputs for multiple platforms. Bazel supports large codebases across multiple repositories, and large numbers of users.
## Why RabbitMQ + Bazel?
RabbitMQ, Tier1 plugins included, is a large codebase. The developer experience benefits from fast incremental compilation.
More importantly, RabbitMQ's test suite is large and takes hours if run on a single machine. Bazel allows tests to be run in parallel on a large number of remote workers if needed, and furthermore uses cached test results when branches of the codebase remain unchanged.
To the best of our knowledge Bazel does not provide built in Erlang or Elixir support, nor is there an available library of bazel rules. Therefore, we have defined our own rules in https://github.com/rabbitmq/bazel-erlang. Elixir compilation is handled as a special case within this repository. To use these rules, the location of your Erlang and Elixir installations must be indicated to the build (see below).
While most of work for running tests happens in Bazel, the suite still makes use of some external tools for commands, notably gnu `make` and `openssl`. Ideally we could bring all of these tools under bazel, so that the only tool needed would be `bazel` or `bazelisk`, but that will take some time.
## Install Bazelisk
On **macOS**:
`brew install bazelisk`
Otherwise:
https://docs.bazel.build/versions/master/install-bazelisk.html
Additionally, create a `.bazelrc` file with at least:
```
build --@bazel-erlang//:erlang_home=/path/to/erlang/installation
build --@bazel-erlang//:erlang_version=23.1
build --@bazel-erlang//:elixir_home=/path/to/elixir/installation
build --test_strategy=exclusive
```
Additionally, on **macOS**, you will likely need to add
```
build --spawn_strategy=local
```
for certain `rabbitmq_cli` tests to pass. This is because `rabbitmqctl wait` shells out to 'ps', which is broken in the bazel macOS (https://github.com/bazelbuild/bazel/issues/7448).
## Run the broker
`bazel run broker`
## Running tests
Many rabbit tests spawn single or clustered rabbit nodes, and therefore it's best to run test suites sequentially on a single machine. Hence the `--test_strategy=exclusive` flag used in `.bazelrc` above. Naturally that restriction does not hold if utilizing remote execution (as is the case for RabbitMQ's CI pipelines).
Erlang Common Test logs will not be placed in the logs directory when run with bazel. They can be found under `bazel-testlogs`. For instance, those of the rabbit application's backing_queue suite will be under `bazel-testlogs/deps/rabbit/backing_queue_SUITE/test.outputs/`.
### Run all tests
Note: This takes quite some time on a single machine.
`bazel test //...`
### Run tests in a 'package' and its 'subpackages'
**rabbit** is an appropriate example because it encloses the **rabbitmq_prelaunch** application.
`bazel test deps/rabbit/...`
### Run tests for a specific 'package'
`bazel test deps/rabbit_common:all`
### Run an individual common test suite
`bazel test //deps/rabbit:lazy_queue_SUITE`

124
BUILD.bazel Normal file
View File

@ -0,0 +1,124 @@
load("elixir_home.bzl", "elixir_home")
load(":rabbitmq_home.bzl", "rabbitmq_home")
load(":rabbitmq_run.bzl", "rabbitmq_run", "rabbitmq_run_command")
load(":rabbitmqctl.bzl", "rabbitmqctl")
load(":rabbitmq.bzl", "management_plugins", "required_plugins")
exports_files([
"scripts/bazel/rabbitmq-run.sh",
])
# This allows us to
# `bazel build //my/target \
# --//:elixir_home=/path/to/elixir/installation`
elixir_home(
name = "elixir_home",
build_setting_default = "~/.kiex/elixirs/elixir-1.10.4",
visibility = ["//visibility:public"],
)
platform(
name = "erlang_22_platform",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
"@bazel_tools//tools/cpp:clang",
],
exec_properties = {
"OSFamily": "Linux",
"container-image": "docker://pivotalrabbitmq/rabbitmq-server-buildenv:linux-erlang-22.3",
},
)
platform(
name = "erlang_23_platform",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
"@bazel_tools//tools/cpp:clang",
],
exec_properties = {
"OSFamily": "Linux",
"container-image": "docker://pivotalrabbitmq/rabbitmq-server-buildenv:linux-erlang-23.2",
},
)
rabbitmq_home(
name = "broker-home",
plugins = required_plugins(rabbitmq_workspace = "@"),
)
rabbitmq_home(
name = "broker-management-home",
plugins = required_plugins(rabbitmq_workspace = "@") + management_plugins(rabbitmq_workspace = "@"),
)
rabbitmq_home(
name = "broker-for-tests-home",
testonly = True,
plugins = [
"//deps/rabbit:test_bazel_erlang_lib", # <- compiled with test erlc_opts
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
"@inet_tcp_proxy//:bazel_erlang_lib",
"@meck//:bazel_erlang_lib",
],
)
rabbitmq_home(
name = "broker-for-cli-tests-home",
plugins = required_plugins(rabbitmq_workspace = "@") + [
"//deps/rabbitmq_federation:bazel_erlang_lib",
"//deps/rabbitmq_stomp:bazel_erlang_lib",
"//deps/amqp_client:bazel_erlang_lib",
],
)
rabbitmq_run(
name = "rabbitmq-run",
home = ":broker-home",
visibility = ["//visibility:public"],
)
rabbitmq_run(
name = "rabbitmq-management-run",
home = ":broker-management-home",
visibility = ["//visibility:public"],
)
rabbitmq_run(
name = "rabbitmq-for-tests-run",
testonly = True,
home = ":broker-for-tests-home",
visibility = ["//visibility:public"],
)
rabbitmq_run(
name = "rabbitmq-for-cli-tests-run",
testonly = True,
home = ":broker-for-cli-tests-home",
visibility = ["//visibility:public"],
)
# Allow us to `bazel run broker`
# for the equivalent of `make run-broker`
# (though it as of yet includes no plugins)
rabbitmq_run_command(
name = "broker",
rabbitmq_run = ":rabbitmq-run",
subcommand = "run-broker",
)
# `bazel run broker-management` for the broker with just the
# management plugin
rabbitmq_run_command(
name = "broker-management",
rabbitmq_run = ":rabbitmq-management-run",
subcommand = "run-broker",
)
# `bazel run rabbitmqctl`
rabbitmqctl(
name = "rabbitmqctl",
home = ":broker-home",
visibility = ["//visibility:public"],
)

8
BUILD.inet_tcp_proxy Normal file
View File

@ -0,0 +1,8 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
erlang_lib(
app_name = "inet_tcp_proxy_dist",
app_version = "0.1.0",
app_description = "Erlang distribution proxy to simulate network failures",
app_module = "inet_tcp_proxy_dist_app",
)

23
BUILD.osiris Normal file
View File

@ -0,0 +1,23 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
APP_ENV = """[
{data_dir, "/tmp/osiris"},
{port_range, {6000, 6500}}
]"""
DEPS = [
"@gen_batch_server//:bazel_erlang_lib",
]
erlang_lib(
app_name = "osiris",
app_version = "master",
app_description = "New project",
app_module = "osiris_app",
app_env = APP_ENV,
extra_apps = [
"sasl",
"crypto",
],
deps = DEPS,
)

33
BUILD.ra Normal file
View File

@ -0,0 +1,33 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib", "test_erlang_lib")
DEPS = [
"@gen_batch_server//:bazel_erlang_lib",
]
RUNTIME_DEPS = [
"@aten//:bazel_erlang_lib",
]
NAME = "ra"
FIRST_SRCS = [
"src/ra_machine.erl",
"src/ra_snapshot.erl",
]
erlang_lib(
app_name = NAME,
first_srcs = FIRST_SRCS,
deps = DEPS,
runtime_deps = RUNTIME_DEPS,
)
test_erlang_lib(
app_name = NAME,
first_srcs = FIRST_SRCS,
erlc_opts = [
"+debug_info",
],
deps = DEPS,
runtime_deps = RUNTIME_DEPS,
)

48
WORKSPACE.bazel Normal file
View File

@ -0,0 +1,48 @@
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "io_buildbuddy_buildbuddy_toolchain",
sha256 = "48546946879b1fd2dcba327ba15776c822f2ce9a9ef1077be9bf3ecadcc1564a",
strip_prefix = "buildbuddy-toolchain-b2f5e7e3b126c6d7cf243227147478c0959bfc95",
urls = ["https://github.com/buildbuddy-io/buildbuddy-toolchain/archive/b2f5e7e3b126c6d7cf243227147478c0959bfc95.zip"],
)
load("@io_buildbuddy_buildbuddy_toolchain//:deps.bzl", "buildbuddy_deps")
buildbuddy_deps()
load("@io_buildbuddy_buildbuddy_toolchain//:rules.bzl", "buildbuddy")
buildbuddy(name = "buildbuddy_toolchain")
http_archive(
name = "bazel-erlang",
strip_prefix = "bazel-erlang-master",
urls = ["https://github.com/rabbitmq/bazel-erlang/archive/master.zip"],
)
load("//:workspace_helpers.bzl", "rabbitmq_external_deps")
rabbitmq_external_deps(rabbitmq_workspace = "@")
http_archive(
name = "rabbitmq_ct_helpers",
repo_mapping = {
"@rabbitmq-server": "@",
},
strip_prefix = "rabbitmq-ct-helpers-bazel",
urls = ["https://github.com/rabbitmq/rabbitmq-ct-helpers/archive/bazel.zip"],
)
http_archive(
name = "rabbitmq_ct_client_helpers",
repo_mapping = {
"@rabbitmq-server": "@",
},
strip_prefix = "rabbitmq-ct-client-helpers-bazel",
urls = ["https://github.com/rabbitmq/rabbitmq-ct-client-helpers/archive/bazel.zip"],
)
load("//deps/amqp10_client:activemq.bzl", "activemq_archive")
activemq_archive()

117
deps/amqp10_client/BUILD.bazel vendored Normal file
View File

@ -0,0 +1,117 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib", "test_erlang_lib")
load("@bazel-erlang//:ct.bzl", "ct_suite")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load("//:rabbitmq.bzl", "APP_VERSION")
APP_NAME = "amqp10_client"
APP_DESCRIPTION = "AMQP 1.0 client from the RabbitMQ Project"
APP_MODULE = "amqp10_client_app"
EXTRA_APPS = [
"ssl",
"inets",
"crypto",
]
ERLC_OPTS = [
# "-Dnowarn_deprecated_gen_fsm",
]
TEST_ERLC_OPTS = [
"+nowarn_export_all",
]
BUILD_DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
]
DEPS = [
"//deps/amqp10_common:bazel_erlang_lib",
]
erlang_lib(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
app_version = APP_VERSION,
build_deps = BUILD_DEPS,
erlc_opts = ERLC_OPTS,
extra_apps = EXTRA_APPS,
deps = DEPS,
)
test_erlang_lib(
app_description = APP_DESCRIPTION,
app_module = APP_MODULE,
app_name = APP_NAME,
app_version = APP_VERSION,
build_deps = BUILD_DEPS,
erlc_opts = ERLC_OPTS,
extra_apps = EXTRA_APPS,
deps = DEPS,
)
ct_suite(
erlc_opts = TEST_ERLC_OPTS,
suite_name = "msg_SUITE",
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
},
deps = DEPS,
)
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
"//deps/rabbitmq_amqp1_0:bazel_erlang_lib",
],
)
rabbitmq_run(
name = "rabbitmq-for-tests-run",
home = ":broker-for-tests-home",
)
ct_suite(
size = "large",
additional_hdrs = [
"src/amqp10_client.hrl",
],
additional_srcs = [
"test/activemq_ct_helpers.erl",
"test/mock_server.erl",
],
data = [
"@activemq//:bin_dir",
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
],
erlc_opts = TEST_ERLC_OPTS + [
"-I deps/amqp10_client",
],
suite_name = "system_SUITE",
# does not pass remotely. marking exclusive until we have logs from remote runs
tags = ["exclusive"],
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/amqp10_client/rabbitmq-for-tests-run",
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/amqp10_client/broker-for-tests-home/sbin/rabbitmqctl",
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/amqp10_client/broker-for-tests-home/sbin/rabbitmq-plugins",
"ACTIVEMQ": "$TEST_SRCDIR/$TEST_WORKSPACE/external/activemq/bin/activemq",
},
tools = [
":rabbitmq-for-tests-run",
],
runtime_deps = [
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:rabbitmqctl",
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
],
deps = DEPS + [
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
],
)

19
deps/amqp10_client/activemq.bzl vendored Normal file
View File

@ -0,0 +1,19 @@
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
ACTIVEMQ_VERSION = "5.14.4"
ACTIVEMQ_URL = "https://archive.apache.org/dist/activemq/{version}/apache-activemq-{version}-bin.tar.gz".format(version = ACTIVEMQ_VERSION)
SHA_256 = "16ec52bece0a4759f9d70f4132d7d8da67d662e4af029081c492e65510a695c1"
def activemq_archive():
http_archive(
name = "activemq",
urls = [ACTIVEMQ_URL],
sha256 = SHA_256,
strip_prefix = "apache-activemq-{}".format(ACTIVEMQ_VERSION),
build_file_content = """filegroup(
name = "bin_dir",
srcs = glob(["bin/**/*"]),
visibility = ["//visibility:public"],
)
""",
)

74
deps/amqp10_common/BUILD.bazel vendored Normal file
View File

@ -0,0 +1,74 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "app_file", "bazel_erlang_lib", "erlc")
load("@bazel-erlang//:ct.bzl", "ct_suite")
load("//:rabbitmq.bzl", "APP_VERSION")
py_binary(
name = "codegen",
srcs = [
"codegen.py",
],
imports = ["../../deps/rabbitmq_codegen"],
deps = [
"//deps/rabbitmq_codegen:amqp_codegen",
],
)
AMQP_SPEC_1_0 = [
"//deps/rabbitmq_codegen:amqp-1.0/messaging.xml",
"//deps/rabbitmq_codegen:amqp-1.0/security.xml",
"//deps/rabbitmq_codegen:amqp-1.0/transport.xml",
"//deps/rabbitmq_codegen:amqp-1.0/transactions.xml",
]
genrule(
name = "generated_headers",
srcs = AMQP_SPEC_1_0,
outs = ["include/amqp10_framing.hrl"],
cmd = "$(location :codegen) hrl $(SRCS) > $@",
tools = [":codegen"],
)
genrule(
name = "generated_sources",
srcs = AMQP_SPEC_1_0,
outs = ["src/amqp10_framing0.erl"],
cmd = "$(location :codegen) erl $(SRCS) > $@",
tools = [":codegen"],
)
app_file(
name = "app_file",
app_description = "Modules shared by rabbitmq-amqp1.0 and rabbitmq-amqp1.0-client",
app_name = "amqp10_common",
app_version = APP_VERSION,
modules = [":beam_files"],
)
erlc(
name = "beam_files",
srcs = ["src/amqp10_framing0.erl"] + glob(["src/*.erl"]),
hdrs = ["include/amqp10_framing.hrl"] + glob(["include/*.hrl"]),
dest = "ebin",
)
bazel_erlang_lib(
name = "bazel_erlang_lib",
hdrs = ["include/amqp10_framing.hrl"] + glob(["include/*.hrl"]),
app = ":app_file",
app_name = "amqp10_common",
beam = [":beam_files"],
visibility = ["//visibility:public"],
)
bazel_erlang_lib(
name = "test_bazel_erlang_lib",
hdrs = ["include/amqp10_framing.hrl"] + glob(["include/*.hrl"]),
app = ":app_file",
app_name = "amqp10_common",
beam = [":beam_files"],
visibility = ["//visibility:public"],
)
ct_suite(
suite_name = "binary_generator_SUITE",
)

70
deps/amqp_client/BUILD.bazel vendored Normal file
View File

@ -0,0 +1,70 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib", "erlc")
load("@bazel-erlang//:ct.bzl", "ct_suite")
load("//:rabbitmq.bzl", "APP_VERSION", "RABBITMQ_TEST_ERLC_OPTS", "rabbitmq_lib")
APP_ENV = """[
{prefer_ipv6, false},
{ssl_options, []},
{writer_gc_threshold, 1000000000}
]"""
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
]
rabbitmq_lib(
app_description = "RabbitMQ AMQP Client",
app_env = APP_ENV,
app_module = "amqp_client",
app_name = "amqp_client",
app_registered = [
"amqp_sup",
],
extra_apps = [
"xmerl",
],
first_srcs = [
"src/amqp_gen_connection.erl",
"src/amqp_gen_consumer.erl",
],
deps = DEPS,
)
ct_suite(
size = "large",
data = [
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
],
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
suite_name = "system_SUITE",
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/rabbitmq-for-tests-run",
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/broker-for-tests-home/sbin/rabbitmqctl",
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/broker-for-tests-home/sbin/rabbitmq-plugins",
},
tools = [
"//:rabbitmq-for-tests-run",
],
runtime_deps = [
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:rabbitmqctl",
"@meck//:bazel_erlang_lib",
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
],
deps = DEPS,
)
ct_suite(
size = "small",
erlc_opts = RABBITMQ_TEST_ERLC_OPTS,
suite_name = "unit_SUITE",
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
},
runtime_deps = [
"//deps/rabbit:bazel_erlang_lib",
],
deps = DEPS,
)

View File

@ -129,8 +129,12 @@ end_per_suite(Config) ->
] ++ rabbit_ct_broker_helpers:teardown_steps()).
ensure_amqp_client_srcdir(Config) ->
rabbit_ct_helpers:ensure_application_srcdir(Config,
amqp_client, amqp_client).
case rabbit_ct_helpers:get_config(Config, rabbitmq_run_cmd) of
undefined ->
rabbit_ct_helpers:ensure_application_srcdir(Config,
amqp_client, amqp_client);
_ -> Config
end.
create_unauthorized_user(Config) ->
Cmd = ["add_user", ?UNAUTHORIZED_USER, ?UNAUTHORIZED_USER],
@ -1568,30 +1572,28 @@ wait_until_net_ticktime(NetTicktime) ->
throw({error, {net_ticktime_not_set, NetTicktime}})
end.
set_resource_alarm(memory, Config) ->
set_resource_alarm(Resource, Config)
when Resource =:= memory orelse Resource =:= disk ->
SrcDir = ?config(amqp_client_srcdir, Config),
Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
{ok, _} = rabbit_ct_helpers:make(Config, SrcDir, [
{"RABBITMQ_NODENAME=~s", [Nodename]},
"set-resource-alarm", "SOURCE=memory"]);
set_resource_alarm(disk, Config) ->
SrcDir = ?config(amqp_client_srcdir, Config),
Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
{ok, _} = rabbit_ct_helpers:make(Config, SrcDir, [
{"RABBITMQ_NODENAME=~s", [Nodename]},
"set-resource-alarm", "SOURCE=disk"]).
Cmd = [{"RABBITMQ_NODENAME=~s", [Nodename]},
"set-resource-alarm",
{"SOURCE=~s", [Resource]}],
{ok, _} = case os:getenv("RABBITMQ_RUN") of
false -> rabbit_ct_helpers:make(Config, SrcDir, Cmd);
Run -> rabbit_ct_helpers:exec([Run | Cmd])
end.
clear_resource_alarm(memory, Config) ->
clear_resource_alarm(Resource, Config)
when Resource =:= memory orelse Resource =:= disk ->
SrcDir = ?config(amqp_client_srcdir, Config),
Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
{ok, _}= rabbit_ct_helpers:make(Config, SrcDir, [
{"RABBITMQ_NODENAME=~s", [Nodename]},
"clear-resource-alarm", "SOURCE=memory"]);
clear_resource_alarm(disk, Config) ->
SrcDir = ?config(amqp_client_srcdir, Config),
Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename),
{ok, _}= rabbit_ct_helpers:make(Config, SrcDir, [
{"RABBITMQ_NODENAME=~s", [Nodename]},
"clear-resource-alarm", "SOURCE=disk"]).
Cmd = [{"RABBITMQ_NODENAME=~s", [Nodename]},
"clear-resource-alarm",
{"SOURCE=~s", [Resource]}],
{ok, _} = case os:getenv("RABBITMQ_RUN") of
false -> rabbit_ct_helpers:make(Config, SrcDir, Cmd);
Run -> rabbit_ct_helpers:exec([Run | Cmd])
end.
fmt(Fmt, Args) -> list_to_binary(rabbit_misc:format(Fmt, Args)).

1122
deps/rabbit/BUILD.bazel vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
load("//:rabbitmq.bzl", "rabbitmq_lib")
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
]
RUNTIME_DEPS = [
"@jsx//:bazel_erlang_lib",
]
rabbitmq_lib(
app_description = "RabbitMQ prelaunch setup",
app_module = "rabbit_prelaunch_app",
app_name = "rabbitmq_prelaunch",
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
)

View File

@ -270,8 +270,8 @@
%%---------------------------------------------------------------------------
-include("rabbit_framing.hrl").
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-define(APPS, [os_mon, mnesia, rabbit_common, rabbitmq_prelaunch, ra, sysmon_handler, rabbit, osiris]).

View File

@ -7,7 +7,7 @@
-module(rabbit_access_control).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([check_user_pass_login/2, check_user_login/2, check_user_loopback/2,
check_vhost_access/4, check_resource_access/4, check_topic_access/4]).

View File

@ -13,7 +13,7 @@
-export([init/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%----------------------------------------------------------------------------

View File

@ -15,7 +15,7 @@
-export([init/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-define(SERVER, ?MODULE).

View File

@ -6,7 +6,7 @@
%%
-module(rabbit_auth_backend_internal).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_authn_backend).
-behaviour(rabbit_authz_backend).

View File

@ -6,7 +6,7 @@
%%
-module(rabbit_auth_mechanism_amqplain).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_auth_mechanism).

View File

@ -6,7 +6,7 @@
%%
-module(rabbit_auth_mechanism_cr_demo).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_auth_mechanism).

View File

@ -6,7 +6,7 @@
%%
-module(rabbit_auth_mechanism_plain).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_auth_mechanism).

View File

@ -6,8 +6,8 @@
%%
-module(rabbit_basic).
-include("rabbit.hrl").
-include("rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-export([publish/4, publish/5, publish/1,
message/3, message/4, properties/1, prepend_table_header/3,

View File

@ -7,8 +7,8 @@
-module(rabbit_channel_interceptor).
-include("rabbit_framing.hrl").
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([init/1, intercept_in/3]).

View File

@ -23,7 +23,7 @@
-export([init/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%----------------------------------------------------------------------------

View File

@ -18,7 +18,7 @@
-export([init/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%----------------------------------------------------------------------------

View File

@ -32,7 +32,7 @@
get_all_tracked_channel_table_names_for_node/1,
delete_tracked_channel_user_entry/1]).
-include_lib("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-import(rabbit_misc, [pget/2]).

View File

@ -21,7 +21,7 @@
-export([init/1, handle_call/2, handle_event/2, handle_info/2,
terminate/2, code_change/3]).
-include_lib("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-rabbit_boot_step({?MODULE,
[{description, "channel tracking event handler"},

View File

@ -13,7 +13,7 @@
-export([init/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%----------------------------------------------------------------------------

View File

@ -24,7 +24,7 @@
-export([init/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%----------------------------------------------------------------------------

View File

@ -23,7 +23,7 @@
-export([init/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%----------------------------------------------------------------------------

View File

@ -53,7 +53,7 @@
lookup/1,
count/0]).
-include_lib("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-import(rabbit_misc, [pget/2]).

View File

@ -21,7 +21,7 @@
%% for compatibility with previous versions of CLI tools
-export([close_connections/3]).
-include_lib("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-rabbit_boot_step({?MODULE,
[{description, "connection tracking event handler"},

View File

@ -7,7 +7,7 @@
-module(rabbit_credential_validation).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%% used for backwards compatibility
-define(DEFAULT_BACKEND, rabbit_credential_validator_accept_everything).

View File

@ -7,7 +7,7 @@
-module(rabbit_credential_validator).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%% Validates a password. Used by `rabbit_auth_backend_internal`.
%%

View File

@ -7,7 +7,7 @@
-module(rabbit_credential_validator_accept_everything).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_credential_validator).

View File

@ -7,7 +7,7 @@
-module(rabbit_credential_validator_min_password_length).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_credential_validator).

View File

@ -10,7 +10,7 @@
%% password against a pre-configured regular expression.
-module(rabbit_credential_validator_password_regexp).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_credential_validator).

View File

@ -9,8 +9,8 @@
-export([publish/5]).
-include("rabbit.hrl").
-include("rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
%%----------------------------------------------------------------------------

View File

@ -18,8 +18,8 @@
%% For testing only
-export([extract_extra_auth_props/4]).
-include("rabbit.hrl").
-include("rabbit_misc.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_misc.hrl").
%%----------------------------------------------------------------------------

View File

@ -6,8 +6,8 @@
%%
-module(rabbit_exchange).
-include("rabbit.hrl").
-include("rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-export([recover/1, policy_changed/2, callback/4, declare/7,
assert_equivalence/6, assert_args_equivalence/2, check_type/1,

View File

@ -7,7 +7,7 @@
-module(rabbit_exchange_decorator).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([select/2, set/1]).

View File

@ -9,7 +9,7 @@
-behaviour(rabbit_runtime_parameter).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([register/0]).
-export([validate/5, notify/5, notify_clear/4]).

View File

@ -6,7 +6,7 @@
%%
-module(rabbit_exchange_type_direct).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_exchange_type).

View File

@ -6,7 +6,7 @@
%%
-module(rabbit_exchange_type_fanout).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_exchange_type).

View File

@ -6,8 +6,8 @@
%%
-module(rabbit_exchange_type_headers).
-include("rabbit.hrl").
-include("rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-behaviour(rabbit_exchange_type).

View File

@ -6,7 +6,7 @@
%%
-module(rabbit_exchange_type_invalid).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_exchange_type).

View File

@ -7,7 +7,7 @@
-module(rabbit_exchange_type_topic).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_exchange_type).

View File

@ -110,7 +110,7 @@
-module(rabbit_limiter).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(gen_server2).

View File

@ -7,7 +7,7 @@
-module(rabbit_maintenance).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([
is_enabled/0,

View File

@ -7,7 +7,7 @@
-module(rabbit_mirror_queue_mode_all).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_mirror_queue_mode).

View File

@ -7,7 +7,7 @@
-module(rabbit_mirror_queue_mode_exactly).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_mirror_queue_mode).

View File

@ -7,7 +7,7 @@
-module(rabbit_mirror_queue_mode_nodes).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(rabbit_mirror_queue_mode).

View File

@ -6,7 +6,7 @@
%%
-module(rabbit_mnesia_rename).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([rename/2]).
-export([maybe_finish/1]).

View File

@ -11,7 +11,7 @@
%%----------------------------------------------------------------------------
-include("rabbit_msg_store.hrl").
-include_lib("rabbit_common/include/rabbit_msg_store.hrl").
-define(INTEGER_SIZE_BYTES, 8).
-define(INTEGER_SIZE_BITS, (8 * ?INTEGER_SIZE_BYTES)).

View File

@ -10,8 +10,8 @@
message_annotation/3
]).
-include("rabbit.hrl").
-include("rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-include_lib("amqp10_common/include/amqp10_framing.hrl").
-type maybe(T) :: T | undefined.

View File

@ -27,7 +27,7 @@
%%----------------------------------------------------------------------------
-include("rabbit_msg_store.hrl").
-include_lib("rabbit_common/include/rabbit_msg_store.hrl").
-define(SYNC_INTERVAL, 25). %% milliseconds
-define(CLEAN_FILENAME, "clean.dot").

View File

@ -7,7 +7,7 @@
-module(rabbit_msg_store_ets_index).
-include("rabbit_msg_store.hrl").
-include_lib("rabbit_common/include/rabbit_msg_store.hrl").
-behaviour(rabbit_msg_store_index).

View File

@ -22,7 +22,7 @@
msg_store_state
}).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%----------------------------------------------------------------------------

View File

@ -52,8 +52,8 @@
connections_local/0
]).
-include("rabbit.hrl").
-include("rabbit_misc.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_misc.hrl").
%% IANA-suggested ephemeral port range is 49152 to 65535
-define(FIRST_TEST_BIND_PORT, 49152).

View File

@ -6,7 +6,7 @@
%%
-module(rabbit_password).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-define(DEFAULT_HASHING_MODULE, rabbit_password_hashing_sha256).

View File

@ -8,7 +8,7 @@
-module(rabbit_peer_discovery_classic_config).
-behaviour(rabbit_peer_discovery_backend).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([list_nodes/0, supports_registration/0, register/0, unregister/0,
post_registration/0, lock/1, unlock/1]).

View File

@ -8,7 +8,7 @@
-module(rabbit_peer_discovery_dns).
-behaviour(rabbit_peer_discovery_backend).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([list_nodes/0, supports_registration/0, register/0, unregister/0,
post_registration/0, lock/1, unlock/1]).

View File

@ -13,7 +13,7 @@
-behaviour(rabbit_policy_validator).
-behaviour(rabbit_policy_merge_strategy).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([register/0, validate_policy/1, merge_policy_value/3]).

View File

@ -212,7 +212,7 @@
unacked
}).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%----------------------------------------------------------------------------

View File

@ -23,7 +23,7 @@
check_non_durable/1,
run_checks/2]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include("amqqueue.hrl").
args_policy_lookup(Name, Resolve, Q) when ?is_amqqueue(Q) ->

View File

@ -70,7 +70,7 @@
qname_to_internal_name/1]).
-include_lib("stdlib/include/qlc.hrl").
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include("amqqueue.hrl").
-type msg_id() :: non_neg_integer().

View File

@ -45,8 +45,8 @@
%%
%% Reader processes are special processes (in the OTP sense).
-include("rabbit_framing.hrl").
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([start_link/2, info_keys/0, info/1, info/2, force_event_refresh/2,
shutdown/2]).

View File

@ -26,7 +26,7 @@
-rabbit_upgrade({upgrade_recovery_terms, local, []}).
-rabbit_upgrade({persistent_bytes, local, [upgrade_recovery_terms]}).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%%----------------------------------------------------------------------------

View File

@ -13,7 +13,7 @@
-export([init/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-define(DELAY, 2).

View File

@ -7,7 +7,7 @@
-module(rabbit_router).
-include_lib("stdlib/include/qlc.hrl").
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([match_bindings/2, match_routing_key/2]).

View File

@ -40,7 +40,7 @@
%% * rabbit_registry
%% * rabbit_event
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([parse_set/5, set/5, set_any/5, clear/4, clear_any/4, list/0, list/1,
list_component/1, list/2, list_formatted/1, list_formatted/3,

View File

@ -18,7 +18,7 @@
-export([init/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-define(SERVER, ?MODULE).

View File

@ -9,8 +9,8 @@
-export([init/1, enabled/1, tap_in/6, tap_out/5, start/1, stop/1]).
-include("rabbit.hrl").
-include("rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-define(TRACE_VHOSTS, trace_vhosts).
-define(XNAME, <<"amq.rabbitmq.trace">>).

View File

@ -11,7 +11,7 @@
maybe_migrate_queues_to_per_vhost_storage/0,
nodes_running/1, secondary_upgrade/1]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-define(VERSION_FILENAME, "schema_version").
-define(LOCK_FILENAME, "schema_upgrade_lock").

View File

@ -9,7 +9,7 @@
-behaviour(rabbit_runtime_parameter).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([register/0]).
-export([parse_set/3, set/3, clear/2]).

View File

@ -7,7 +7,7 @@
-module(rabbit_vhost_msg_store).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([start/4, stop/2, client_init/5, successfully_recovered_state/2]).
-export([vhost_store_pid/2]).

View File

@ -25,7 +25,7 @@
%% use the now recommended try/catch syntax for obtaining the stack trace.
-compile(nowarn_deprecated_function).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-define(TICKTIME_RATIO, 4).

View File

@ -7,7 +7,7 @@
-module(rabbit_vhost_sup).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
%% Each vhost gets an instance of this supervisor that supervises
%% message stores and queues (via rabbit_amqqueue_sup_sup).

View File

@ -7,7 +7,7 @@
-module(rabbit_vhost_sup_sup).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(supervisor2).

View File

@ -10,7 +10,7 @@
-module(rabbit_vhost_sup_wrapper).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-behaviour(supervisor2).
-export([init/1]).

View File

@ -7,7 +7,7 @@
-module(term_to_binary_compat).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-export([term_to_binary_1/1]).

View File

@ -107,8 +107,8 @@
}).
-include("rabbit.hrl").
-include("rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-define(QUEUE, lqueue).
-define(TIMEOUT_TEST_MSG, <<"timeout_test_msg!">>).

View File

@ -9,7 +9,7 @@
-include_lib("common_test/include/ct.hrl").
-include_lib("amqp_client/include/amqp_client.hrl").
-include("include/amqqueue.hrl").
-include("amqqueue.hrl").
-compile(export_all).

View File

@ -12,7 +12,7 @@
-export([init/1, handle_call/2, handle_event/2, handle_info/2,
terminate/2, code_change/3]).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
start(Pid, Nodes, Types) ->
Oks = [ok || _ <- Nodes],

View File

@ -117,7 +117,7 @@ init_per_group(clustering, Config) ->
{rmq_nodes_clustered, false},
{start_rmq_with_plugins_disabled, true}]),
rabbit_ct_helpers:run_setup_steps(Config1, [
fun build_my_plugin/1,
fun prepare_my_plugin/1,
fun work_around_cli_and_rabbit_circular_dep/1
]);
init_per_group(activating_plugin, Config) ->
@ -127,7 +127,7 @@ init_per_group(activating_plugin, Config) ->
{rmq_nodes_clustered, true},
{start_rmq_with_plugins_disabled, true}]),
rabbit_ct_helpers:run_setup_steps(Config1, [
fun build_my_plugin/1,
fun prepare_my_plugin/1,
fun work_around_cli_and_rabbit_circular_dep/1
]);
init_per_group(_, Config) ->
@ -985,6 +985,17 @@ activating_plugin_with_new_ff_enabled(Config) ->
%% Internal helpers.
%% -------------------------------------------------------------------
prepare_my_plugin(Config) ->
case os:getenv("RABBITMQ_RUN") of
false ->
build_my_plugin(Config);
_ ->
MyPluginDir = filename:dirname(filename:dirname(code:where_is_file("my_plugin.app"))),
PluginsDir = filename:dirname(MyPluginDir),
rabbit_ct_helpers:set_config(Config,
[{rmq_plugins_dir, PluginsDir}])
end.
build_my_plugin(Config) ->
PluginSrcDir = filename:join(?config(data_dir, Config), "my_plugin"),
PluginsDir = filename:join(PluginSrcDir, "plugins"),

View File

@ -0,0 +1,13 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib")
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/rabbit:bazel_erlang_lib",
]
erlang_lib(
app_description = "Plugin to test feature flags",
app_name = "my_plugin",
app_version = "1.0.0",
deps = DEPS,
)

View File

@ -97,8 +97,12 @@ hostname_discovery_with_short_node_names(_) ->
node_discovery_with_long_node_names(_) ->
Result = rabbit_peer_discovery_dns:discover_nodes(?DISCOVERY_ENDPOINT_RECORD_A, true),
?assert(lists:member('ct_rabbit@dns.google', Result)).
?assert(lists:member(list_to_atom(sname() ++ "@dns.google"), Result)).
node_discovery_with_short_node_names(_) ->
Result = rabbit_peer_discovery_dns:discover_nodes(?DISCOVERY_ENDPOINT_RECORD_A, false),
?assert(lists:member(ct_rabbit@dns, Result)).
?assert(lists:member(list_to_atom(sname() ++ "@dns"), Result)).
sname() ->
[Sname | _] = string:split(atom_to_list(erlang:node()), "@"),
Sname.

View File

@ -5,8 +5,8 @@
-export([
]).
-include("rabbit.hrl").
-include("rabbit_framing.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("rabbit_common/include/rabbit_framing.hrl").
-include_lib("common_test/include/ct.hrl").
-include_lib("eunit/include/eunit.hrl").
-include_lib("amqp10_common/include/amqp10_framing.hrl").

View File

@ -10,7 +10,7 @@
-compile(export_all).
-include("rabbit.hrl").
-include_lib("rabbit_common/include/rabbit.hrl").
-include_lib("common_test/include/ct.hrl").
-include_lib("proper/include/proper.hrl").

277
deps/rabbit_common/BUILD.bazel vendored Normal file
View File

@ -0,0 +1,277 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "app_file", "bazel_erlang_lib", "erlc")
load("@bazel-erlang//:ct.bzl", "ct_test")
load("//:rabbitmq.bzl", "APP_VERSION", "RABBITMQ_ERLC_OPTS", "RABBITMQ_TEST_ERLC_OPTS")
py_binary(
name = "codegen",
srcs = [
"codegen.py",
],
imports = ["../../deps/rabbitmq_codegen"],
deps = [
"//deps/rabbitmq_codegen:amqp_codegen",
],
)
genrule(
name = "generated_headers",
srcs = [
"//deps/rabbitmq_codegen:amqp-rabbitmq-0.9.1.json",
"//deps/rabbitmq_codegen:credit_extension.json",
"//deps/rabbitmq_codegen:amqp-rabbitmq-0.8.json",
],
outs = ["include/rabbit_framing.hrl"],
cmd = "$(location :codegen) --ignore-conflicts header $(SRCS) $@",
tools = [":codegen"],
)
genrule(
name = "rabbit_framing_amqp_0_9_1.erl",
srcs = [
"//deps/rabbitmq_codegen:amqp-rabbitmq-0.9.1.json",
"//deps/rabbitmq_codegen:credit_extension.json",
],
outs = ["src/rabbit_framing_amqp_0_9_1.erl"],
cmd = "$(location :codegen) body $(SRCS) $@",
tools = [":codegen"],
)
genrule(
name = "rabbit_framing_amqp_0_8.erl",
srcs = [
"//deps/rabbitmq_codegen:amqp-rabbitmq-0.8.json",
],
outs = ["src/rabbit_framing_amqp_0_8.erl"],
cmd = "$(location :codegen) body $(SRCS) $@",
tools = [":codegen"],
)
DEPS = []
RUNTIME_DEPS = [
"@jsx//:bazel_erlang_lib",
"@recon//:bazel_erlang_lib",
"@credentials_obfuscation//:bazel_erlang_lib",
]
APP_NAME = "rabbit_common"
HDRS = glob(["include/*.hrl"]) + ["include/rabbit_framing.hrl"]
app_file(
name = "app_file",
app_description = "Modules shared by rabbitmq-server and rabbitmq-erlang-client",
app_name = APP_NAME,
app_version = APP_VERSION,
extra_apps = [
"compiler",
"crypto",
"public_key",
"sasl",
"ssl",
"syntax_tools",
"tools",
"xmerl",
],
modules = [":beam_files"],
deps = DEPS + RUNTIME_DEPS,
)
FIRST_SRCS = [
"src/gen_server2.erl",
"src/rabbit_authn_backend.erl",
"src/rabbit_authz_backend.erl",
"src/rabbit_registry_class.erl",
]
erlc(
name = "first_beam_files",
srcs = glob(FIRST_SRCS),
hdrs = HDRS,
dest = "ebin",
erlc_opts = RABBITMQ_ERLC_OPTS,
deps = DEPS,
)
erlc(
name = "beam_files",
srcs = glob(
["src/*.erl"],
exclude = FIRST_SRCS,
) + [
"src/rabbit_framing_amqp_0_8.erl",
"src/rabbit_framing_amqp_0_9_1.erl",
],
hdrs = HDRS,
beam = [":first_beam_files"],
dest = "ebin",
erlc_opts = RABBITMQ_ERLC_OPTS,
deps = DEPS,
)
bazel_erlang_lib(
name = "bazel_erlang_lib",
hdrs = HDRS,
app = ":app_file",
app_name = APP_NAME,
beam = [
":first_beam_files",
":beam_files",
],
visibility = ["//visibility:public"],
deps = DEPS + RUNTIME_DEPS,
)
erlc(
name = "first_test_beam_files",
testonly = True,
srcs = glob(FIRST_SRCS),
hdrs = HDRS,
dest = "src",
erlc_opts = RABBITMQ_ERLC_OPTS + RABBITMQ_TEST_ERLC_OPTS,
deps = DEPS,
)
erlc(
name = "test_beam_files",
testonly = True,
srcs = glob(
["src/*.erl"],
exclude = FIRST_SRCS,
) + [
"src/rabbit_framing_amqp_0_8.erl",
"src/rabbit_framing_amqp_0_9_1.erl",
],
hdrs = HDRS,
beam = [":first_test_beam_files"],
dest = "src",
erlc_opts = RABBITMQ_ERLC_OPTS + RABBITMQ_TEST_ERLC_OPTS,
deps = DEPS,
)
bazel_erlang_lib(
name = "test_bazel_erlang_lib",
testonly = True,
hdrs = HDRS,
app = ":app_file",
app_name = APP_NAME,
beam = [
":first_test_beam_files",
":test_beam_files",
],
visibility = ["//:__subpackages__"],
deps = DEPS + RUNTIME_DEPS,
)
erlc(
name = "rabbit_env_SUITE_beam_files",
testonly = True,
srcs = ["test/rabbit_env_SUITE.erl"],
hdrs = HDRS,
dest = "test",
erlc_opts = RABBITMQ_ERLC_OPTS + RABBITMQ_TEST_ERLC_OPTS,
deps = [
":test_bazel_erlang_lib",
],
)
ct_test(
name = "rabbit_env_SUITE",
size = "small",
compiled_suites = [":rabbit_env_SUITE_beam_files"],
deps = [
":test_bazel_erlang_lib",
"//deps/rabbit:test_bazel_erlang_lib",
"@proper//:bazel_erlang_lib",
],
)
erlc(
name = "supervisor2_SUITE_beam_files",
testonly = True,
srcs = ["test/supervisor2_SUITE.erl"],
hdrs = HDRS,
dest = "test",
erlc_opts = RABBITMQ_ERLC_OPTS + RABBITMQ_TEST_ERLC_OPTS,
deps = [
":test_bazel_erlang_lib",
],
)
ct_test(
name = "supervisor2_SUITE",
size = "small",
compiled_suites = [":supervisor2_SUITE_beam_files"],
deps = [
":test_bazel_erlang_lib",
],
)
erlc(
name = "unit_priority_queue_SUITE_beam_files",
testonly = True,
srcs = ["test/unit_priority_queue_SUITE.erl"],
hdrs = HDRS,
dest = "test",
erlc_opts = RABBITMQ_ERLC_OPTS + RABBITMQ_TEST_ERLC_OPTS,
deps = [
":test_bazel_erlang_lib",
],
)
ct_test(
name = "unit_priority_queue_SUITE",
size = "small",
compiled_suites = [":unit_priority_queue_SUITE_beam_files"],
deps = [
":test_bazel_erlang_lib",
],
)
erlc(
name = "unit_SUITE_beam_files",
testonly = True,
srcs = [
"test/gen_server2_test_server.erl",
"test/unit_SUITE.erl",
],
hdrs = HDRS,
dest = "test",
erlc_opts = RABBITMQ_ERLC_OPTS + RABBITMQ_TEST_ERLC_OPTS,
deps = [
":test_bazel_erlang_lib",
"@proper//:bazel_erlang_lib",
],
)
ct_test(
name = "unit_SUITE",
size = "medium",
compiled_suites = [":unit_SUITE_beam_files"],
deps = [
":test_bazel_erlang_lib",
"@credentials_obfuscation//:bazel_erlang_lib",
"@proper//:bazel_erlang_lib",
],
)
erlc(
name = "worker_pool_SUITE_beam_files",
testonly = True,
srcs = ["test/worker_pool_SUITE.erl"],
hdrs = HDRS,
dest = "test",
erlc_opts = RABBITMQ_ERLC_OPTS + RABBITMQ_TEST_ERLC_OPTS,
deps = [
":test_bazel_erlang_lib",
],
)
ct_test(
name = "worker_pool_SUITE",
size = "small",
compiled_suites = [":worker_pool_SUITE_beam_files"],
deps = [
":test_bazel_erlang_lib",
],
)

View File

@ -104,6 +104,10 @@ else
RMQ_PLUGINS_DIR=$(CURDIR)/$(DIST_DIR)
endif
ifdef EXTRA_PLUGINS_DIR
RMQ_PLUGINS_DIR=$(RMQ_PLUGINS_DIR):$(EXTRA_PLUGINS_DIR)
endif
define basic_script_env_settings
MAKE="$(MAKE)" \
ERL_LIBS="$(DIST_ERL_LIBS)" \

View File

@ -10,7 +10,7 @@
-include_lib("kernel/include/file.hrl").
-include_lib("kernel/include/logger.hrl").
-include("include/logging.hrl").
-include("logging.hrl").
-export([get_context/0,
get_context/1,

View File

@ -332,10 +332,11 @@ check_values_from_reachable_remote_node(Config) ->
{atom_to_list(?FUNCTION_NAME), "localhost"}),
NodeS = atom_to_list(Node),
true = os:putenv("RABBITMQ_NODENAME", NodeS),
RabbitCommonEbinDir = filename:dirname(code:which(rabbit_env)),
Args = ["-noinput",
"-sname", atom_to_list(Node),
"-pa", RabbitCommonEbinDir,
"-pa", filename:dirname(code:which(rabbit_env)),
"-pa", filename:dirname(code:where_is_file("rabbit_common.app")),
"-pa", filename:dirname(code:which(rabbit)),
"-pa", RabbitEbinDir,
"-mnesia", "dir",
rabbit_misc:format("~p", [MnesiaDir]),

186
deps/rabbitmq_amqp1_0/BUILD.bazel vendored Normal file
View File

@ -0,0 +1,186 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib", "test_erlang_lib")
load("@bazel-erlang//:ct.bzl", "ct_suite")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load("//:rabbitmq.bzl", "APP_VERSION")
APP_ENV = """[
{default_user, "guest"},
{default_vhost, <<"/">>},
{protocol_strict_mode, false}
]"""
APP_NAME = "rabbitmq_amqp1_0"
APP_DESCRIPTION = "AMQP 1.0 support for RabbitMQ"
BUILD_DEPS = [
"//deps/rabbitmq_cli:rabbitmqctl",
]
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
"//deps/amqp_client:bazel_erlang_lib",
"//deps/amqp10_common:bazel_erlang_lib",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
]
erlang_lib(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_name = APP_NAME,
app_version = APP_VERSION,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
)
test_erlang_lib(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_name = APP_NAME,
app_version = APP_VERSION,
build_deps = BUILD_DEPS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
)
TEST_ERLC_OPTS = [
"+nowarn_export_all",
]
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
":bazel_erlang_lib",
],
)
rabbitmq_run(
name = "rabbitmq-for-tests-run",
home = ":broker-for-tests-home",
)
ct_suite(
data = [
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
],
erlc_opts = TEST_ERLC_OPTS,
suite_name = "amqp10_client_SUITE",
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/rabbitmq-for-tests-run",
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/broker-for-tests-home/sbin/rabbitmqctl",
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/broker-for-tests-home/sbin/rabbitmq-plugins",
},
tools = [
":rabbitmq-for-tests-run",
],
runtime_deps = [
"//deps/amqp10_client:bazel_erlang_lib",
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:rabbitmqctl",
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
],
)
ct_suite(
data = [
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
],
erlc_opts = TEST_ERLC_OPTS,
suite_name = "command_SUITE",
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/rabbitmq-for-tests-run",
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/broker-for-tests-home/sbin/rabbitmqctl",
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/broker-for-tests-home/sbin/rabbitmq-plugins",
},
tools = [
":rabbitmq-for-tests-run",
],
runtime_deps = [
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:rabbitmqctl",
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
],
deps = [
"//deps/amqp10_common:bazel_erlang_lib",
"//deps/amqp_client:bazel_erlang_lib",
"//deps/rabbit_common:bazel_erlang_lib",
],
)
ct_suite(
data = [
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
],
erlc_opts = TEST_ERLC_OPTS,
suite_name = "proxy_protocol_SUITE",
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/rabbitmq-for-tests-run",
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/broker-for-tests-home/sbin/rabbitmqctl",
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/broker-for-tests-home/sbin/rabbitmq-plugins",
},
tools = [
":rabbitmq-for-tests-run",
],
runtime_deps = [
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:rabbitmqctl",
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
],
)
ct_suite(
data = [
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
],
erlc_opts = TEST_ERLC_OPTS,
suite_name = "system_SUITE",
# will not pass remotely until we have dotnet in the image
tags = [
"dotnet",
"exclusive",
],
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/rabbitmq-for-tests-run",
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/broker-for-tests-home/sbin/rabbitmqctl",
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_amqp1_0/broker-for-tests-home/sbin/rabbitmq-plugins",
},
tools = [
":rabbitmq-for-tests-run",
],
runtime_deps = [
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:rabbitmqctl",
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
],
)
ct_suite(
erlc_opts = TEST_ERLC_OPTS,
suite_name = "unit_SUITE",
deps = [
"//deps/amqp10_common:bazel_erlang_lib",
],
)

View File

@ -0,0 +1,131 @@
load("@bazel-erlang//:bazel_erlang_lib.bzl", "erlang_lib", "test_erlang_lib")
load("@bazel-erlang//:ct.bzl", "ct_suite")
load("//:rabbitmq_home.bzl", "rabbitmq_home")
load("//:rabbitmq_run.bzl", "rabbitmq_run")
load("//:rabbitmq.bzl", "APP_VERSION")
APP_ENV = """[
{cache_ttl, 15000},
{cache_module, rabbit_auth_cache_ets},
{cache_module_args, []},
{cached_backend, rabbit_auth_backend_internal},
{cache_refusals, false}
]"""
APP_NAME = "rabbitmq_auth_backend_cache"
APP_DESCRIPTION = "RabbitMQ Authentication Backend cache"
APP_MODULE = "rabbit_auth_backend_cache_app"
DEPS = [
"//deps/rabbit_common:bazel_erlang_lib",
]
RUNTIME_DEPS = [
"//deps/rabbit:bazel_erlang_lib",
]
FIRST_SRCS = [
"src/rabbit_auth_cache.erl",
]
erlang_lib(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
app_name = APP_NAME,
app_version = APP_VERSION,
first_srcs = FIRST_SRCS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
)
test_erlang_lib(
app_description = APP_DESCRIPTION,
app_env = APP_ENV,
app_module = APP_MODULE,
app_name = APP_NAME,
app_version = APP_VERSION,
first_srcs = FIRST_SRCS,
runtime_deps = RUNTIME_DEPS,
deps = DEPS,
)
TEST_ERLC_OPTS = [
"+nowarn_export_all",
]
rabbitmq_home(
name = "broker-for-tests-home",
plugins = [
"//deps/rabbit:bazel_erlang_lib",
":bazel_erlang_lib",
],
)
rabbitmq_run(
name = "rabbitmq-for-tests-run",
home = ":broker-for-tests-home",
)
ct_suite(
data = [
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
],
erlc_opts = TEST_ERLC_OPTS,
suite_name = "config_schema_SUITE",
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_auth_backend_cache/rabbitmq-for-tests-run",
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_auth_backend_cache/broker-for-tests-home/sbin/rabbitmqctl",
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_auth_backend_cache/broker-for-tests-home/sbin/rabbitmq-plugins",
},
tools = [
":rabbitmq-for-tests-run",
],
runtime_deps = [
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:rabbitmqctl",
"@rabbitmq_ct_client_helpers//:bazel_erlang_lib",
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
],
)
ct_suite(
data = [
"@rabbitmq_ct_helpers//tools/tls-certs:Makefile",
"@rabbitmq_ct_helpers//tools/tls-certs:openssl.cnf.in",
],
erlc_opts = TEST_ERLC_OPTS,
suite_name = "rabbit_auth_backend_cache_SUITE",
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
"RABBITMQ_RUN": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_auth_backend_cache/rabbitmq-for-tests-run",
"RABBITMQCTL": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_auth_backend_cache/broker-for-tests-home/sbin/rabbitmqctl",
"RABBITMQ_PLUGINS": "$TEST_SRCDIR/$TEST_WORKSPACE/deps/rabbitmq_auth_backend_cache/broker-for-tests-home/sbin/rabbitmq-plugins",
},
tools = [
":rabbitmq-for-tests-run",
],
runtime_deps = [
"//deps/rabbitmq_cli:elixir_as_bazel_erlang_lib",
"//deps/rabbitmq_cli:rabbitmqctl",
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
],
deps = [
"//deps/rabbit_common:bazel_erlang_lib",
],
)
ct_suite(
erlc_opts = TEST_ERLC_OPTS,
suite_name = "rabbit_auth_cache_SUITE",
test_env = {
"RABBITMQ_CT_SKIP_AS_ERROR": "true",
},
runtime_deps = [
"@rabbitmq_ct_helpers//:bazel_erlang_lib",
],
)

Some files were not shown because too many files have changed in this diff Show More