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:
		
							parent
							
								
									51666bd3a5
								
							
						
					
					
						commit
						18e663cb7b
					
				|  | @ -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
											
										
									
								
							|  | @ -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 | ||||
|  | @ -72,3 +72,6 @@ rabbitmq-server-*.zip | |||
| 
 | ||||
| traces* | ||||
| callgrand* | ||||
| 
 | ||||
| /.bazelrc | ||||
| /bazel-* | ||||
|  |  | |||
|  | @ -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` | ||||
|  | @ -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"], | ||||
| ) | ||||
|  | @ -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", | ||||
| ) | ||||
|  | @ -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, | ||||
| ) | ||||
|  | @ -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, | ||||
| ) | ||||
|  | @ -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() | ||||
|  | @ -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", | ||||
|     ], | ||||
| ) | ||||
|  | @ -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"], | ||||
| ) | ||||
| """, | ||||
|     ) | ||||
|  | @ -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", | ||||
| ) | ||||
|  | @ -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, | ||||
| ) | ||||
|  | @ -129,8 +129,12 @@ end_per_suite(Config) -> | |||
|       ] ++ rabbit_ct_broker_helpers:teardown_steps()). | ||||
| 
 | ||||
| ensure_amqp_client_srcdir(Config) -> | ||||
|     case rabbit_ct_helpers:get_config(Config, rabbitmq_run_cmd) of | ||||
|         undefined -> | ||||
|             rabbit_ct_helpers:ensure_application_srcdir(Config, | ||||
|                                                 amqp_client, amqp_client). | ||||
|                                                         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)). | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -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, | ||||
| ) | ||||
|  | @ -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]). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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]). | ||||
|  |  | |||
|  | @ -13,7 +13,7 @@ | |||
| 
 | ||||
| -export([init/1]). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -15,7 +15,7 @@ | |||
| 
 | ||||
| -export([init/1]). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -define(SERVER, ?MODULE). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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). | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| %% | ||||
| 
 | ||||
| -module(rabbit_auth_mechanism_amqplain). | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(rabbit_auth_mechanism). | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| %% | ||||
| 
 | ||||
| -module(rabbit_auth_mechanism_cr_demo). | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(rabbit_auth_mechanism). | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| %% | ||||
| 
 | ||||
| -module(rabbit_auth_mechanism_plain). | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(rabbit_auth_mechanism). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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, | ||||
|  |  | |||
|  | @ -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]). | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ | |||
| 
 | ||||
| -export([init/1]). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ | |||
| 
 | ||||
| -export([init/1]). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -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]). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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"}, | ||||
|  |  | |||
|  | @ -13,7 +13,7 @@ | |||
| 
 | ||||
| -export([init/1]). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -24,7 +24,7 @@ | |||
| 
 | ||||
| -export([init/1]). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,7 +23,7 @@ | |||
| 
 | ||||
| -export([init/1]). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -53,7 +53,7 @@ | |||
|          lookup/1, | ||||
|          count/0]). | ||||
| 
 | ||||
| -include_lib("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -import(rabbit_misc, [pget/2]). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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"}, | ||||
|  |  | |||
|  | @ -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). | ||||
|  |  | |||
|  | @ -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`. | ||||
| %% | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| 
 | ||||
| -module(rabbit_credential_validator_accept_everything). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(rabbit_credential_validator). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -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"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -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, | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| 
 | ||||
| -module(rabbit_exchange_decorator). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -export([select/2, set/1]). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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]). | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| %% | ||||
| 
 | ||||
| -module(rabbit_exchange_type_direct). | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(rabbit_exchange_type). | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| %% | ||||
| 
 | ||||
| -module(rabbit_exchange_type_fanout). | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(rabbit_exchange_type). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,7 +6,7 @@ | |||
| %% | ||||
| 
 | ||||
| -module(rabbit_exchange_type_invalid). | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(rabbit_exchange_type). | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| 
 | ||||
| -module(rabbit_exchange_type_topic). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(rabbit_exchange_type). | ||||
| 
 | ||||
|  |  | |||
|  | @ -110,7 +110,7 @@ | |||
| 
 | ||||
| -module(rabbit_limiter). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(gen_server2). | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| 
 | ||||
| -module(rabbit_maintenance). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -export([ | ||||
|     is_enabled/0, | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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]). | ||||
|  |  | |||
|  | @ -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)). | ||||
|  |  | |||
|  | @ -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. | ||||
|  |  | |||
|  | @ -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"). | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ | |||
|           msg_store_state | ||||
|         }). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -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). | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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]). | ||||
|  |  | |||
|  | @ -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]). | ||||
|  |  | |||
|  | @ -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]). | ||||
| 
 | ||||
|  |  | |||
|  | @ -212,7 +212,7 @@ | |||
|   unacked | ||||
| }). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -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) -> | ||||
|  |  | |||
|  | @ -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(). | ||||
|  |  | |||
|  | @ -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]). | ||||
|  |  | |||
|  | @ -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"). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
|  |  | |||
|  | @ -13,7 +13,7 @@ | |||
| 
 | ||||
| -export([init/1]). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -define(DELAY, 2). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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]). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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, | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ | |||
| 
 | ||||
| -export([init/1]). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -define(SERVER, ?MODULE). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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">>). | ||||
|  |  | |||
|  | @ -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"). | ||||
|  |  | |||
|  | @ -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]). | ||||
|  |  | |||
|  | @ -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]). | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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). | ||||
|  |  | |||
|  | @ -7,7 +7,7 @@ | |||
| 
 | ||||
| -module(rabbit_vhost_sup_sup). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(supervisor2). | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ | |||
| 
 | ||||
| -module(rabbit_vhost_sup_wrapper). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| -include_lib("rabbit_common/include/rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(supervisor2). | ||||
| -export([init/1]). | ||||
|  |  | |||
|  | @ -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]). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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!">>). | ||||
|  |  | |||
|  | @ -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). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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], | ||||
|  |  | |||
|  | @ -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"), | ||||
|  |  | |||
|  | @ -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, | ||||
| ) | ||||
|  | @ -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. | ||||
|  |  | |||
|  | @ -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"). | ||||
|  |  | |||
|  | @ -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"). | ||||
| 
 | ||||
|  |  | |||
|  | @ -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", | ||||
|     ], | ||||
| ) | ||||
|  | @ -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)" \
 | ||||
|  |  | |||
|  | @ -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, | ||||
|  |  | |||
|  | @ -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]), | ||||
|  |  | |||
|  | @ -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", | ||||
|     ], | ||||
| ) | ||||
|  | @ -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
		Loading…
	
		Reference in New Issue