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* | traces* | ||||||
| callgrand* | 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()). |       ] ++ rabbit_ct_broker_helpers:teardown_steps()). | ||||||
| 
 | 
 | ||||||
| ensure_amqp_client_srcdir(Config) -> | ensure_amqp_client_srcdir(Config) -> | ||||||
|     rabbit_ct_helpers:ensure_application_srcdir(Config, |     case rabbit_ct_helpers:get_config(Config, rabbitmq_run_cmd) of | ||||||
|                                                 amqp_client, amqp_client). |         undefined -> | ||||||
|  |             rabbit_ct_helpers:ensure_application_srcdir(Config, | ||||||
|  |                                                         amqp_client, amqp_client); | ||||||
|  |         _ -> Config | ||||||
|  |     end. | ||||||
| 
 | 
 | ||||||
| create_unauthorized_user(Config) -> | create_unauthorized_user(Config) -> | ||||||
|     Cmd = ["add_user", ?UNAUTHORIZED_USER, ?UNAUTHORIZED_USER], |     Cmd = ["add_user", ?UNAUTHORIZED_USER, ?UNAUTHORIZED_USER], | ||||||
|  | @ -1568,30 +1572,28 @@ wait_until_net_ticktime(NetTicktime) -> | ||||||
|             throw({error, {net_ticktime_not_set, NetTicktime}}) |             throw({error, {net_ticktime_not_set, NetTicktime}}) | ||||||
|     end. |     end. | ||||||
| 
 | 
 | ||||||
| set_resource_alarm(memory, Config) -> | set_resource_alarm(Resource, Config) | ||||||
|  |   when Resource =:= memory orelse Resource =:= disk -> | ||||||
|     SrcDir = ?config(amqp_client_srcdir, Config), |     SrcDir = ?config(amqp_client_srcdir, Config), | ||||||
|     Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), |     Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), | ||||||
|     {ok, _} = rabbit_ct_helpers:make(Config, SrcDir, [ |     Cmd = [{"RABBITMQ_NODENAME=~s", [Nodename]}, | ||||||
|         {"RABBITMQ_NODENAME=~s", [Nodename]}, |            "set-resource-alarm", | ||||||
|         "set-resource-alarm", "SOURCE=memory"]); |            {"SOURCE=~s", [Resource]}], | ||||||
| set_resource_alarm(disk, Config) -> |     {ok, _} = case os:getenv("RABBITMQ_RUN") of | ||||||
|     SrcDir = ?config(amqp_client_srcdir, Config), |         false -> rabbit_ct_helpers:make(Config, SrcDir, Cmd); | ||||||
|     Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), |         Run -> rabbit_ct_helpers:exec([Run | Cmd]) | ||||||
|     {ok, _} = rabbit_ct_helpers:make(Config, SrcDir, [ |     end. | ||||||
|         {"RABBITMQ_NODENAME=~s", [Nodename]}, |  | ||||||
|         "set-resource-alarm", "SOURCE=disk"]). |  | ||||||
| 
 | 
 | ||||||
| clear_resource_alarm(memory, Config) -> | clear_resource_alarm(Resource, Config) | ||||||
|  |   when Resource =:= memory orelse Resource =:= disk -> | ||||||
|     SrcDir = ?config(amqp_client_srcdir, Config), |     SrcDir = ?config(amqp_client_srcdir, Config), | ||||||
|     Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), |     Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), | ||||||
|     {ok, _}= rabbit_ct_helpers:make(Config, SrcDir, [ |     Cmd = [{"RABBITMQ_NODENAME=~s", [Nodename]}, | ||||||
|         {"RABBITMQ_NODENAME=~s", [Nodename]}, |            "clear-resource-alarm", | ||||||
|         "clear-resource-alarm", "SOURCE=memory"]); |            {"SOURCE=~s", [Resource]}], | ||||||
| clear_resource_alarm(disk, Config) -> |     {ok, _} = case os:getenv("RABBITMQ_RUN") of | ||||||
|     SrcDir = ?config(amqp_client_srcdir, Config), |         false -> rabbit_ct_helpers:make(Config, SrcDir, Cmd); | ||||||
|     Nodename = rabbit_ct_broker_helpers:get_node_config(Config, 0, nodename), |         Run -> rabbit_ct_helpers:exec([Run | Cmd]) | ||||||
|     {ok, _}= rabbit_ct_helpers:make(Config, SrcDir, [ |     end. | ||||||
|         {"RABBITMQ_NODENAME=~s", [Nodename]}, |  | ||||||
|         "clear-resource-alarm", "SOURCE=disk"]). |  | ||||||
| 
 | 
 | ||||||
| fmt(Fmt, Args) -> list_to_binary(rabbit_misc:format(Fmt, Args)). | 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_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -define(APPS, [os_mon, mnesia, rabbit_common, rabbitmq_prelaunch, ra, sysmon_handler, rabbit, osiris]). | -define(APPS, [os_mon, mnesia, rabbit_common, rabbitmq_prelaunch, ra, sysmon_handler, rabbit, osiris]). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_access_control). | -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, | -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]). |          check_vhost_access/4, check_resource_access/4, check_topic_access/4]). | ||||||
|  |  | ||||||
|  | @ -13,7 +13,7 @@ | ||||||
| 
 | 
 | ||||||
| -export([init/1]). | -export([init/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %%---------------------------------------------------------------------------- | %%---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -15,7 +15,7 @@ | ||||||
| 
 | 
 | ||||||
| -export([init/1]). | -export([init/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -define(SERVER, ?MODULE). | -define(SERVER, ?MODULE). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_auth_backend_internal). | -module(rabbit_auth_backend_internal). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_authn_backend). | -behaviour(rabbit_authn_backend). | ||||||
| -behaviour(rabbit_authz_backend). | -behaviour(rabbit_authz_backend). | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_auth_mechanism_amqplain). | -module(rabbit_auth_mechanism_amqplain). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_auth_mechanism). | -behaviour(rabbit_auth_mechanism). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_auth_mechanism_cr_demo). | -module(rabbit_auth_mechanism_cr_demo). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_auth_mechanism). | -behaviour(rabbit_auth_mechanism). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_auth_mechanism_plain). | -module(rabbit_auth_mechanism_plain). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_auth_mechanism). | -behaviour(rabbit_auth_mechanism). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,8 +6,8 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_basic). | -module(rabbit_basic). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([publish/4, publish/5, publish/1, | -export([publish/4, publish/5, publish/1, | ||||||
|          message/3, message/4, properties/1, prepend_table_header/3, |          message/3, message/4, properties/1, prepend_table_header/3, | ||||||
|  |  | ||||||
|  | @ -7,8 +7,8 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_channel_interceptor). | -module(rabbit_channel_interceptor). | ||||||
| 
 | 
 | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([init/1, intercept_in/3]). | -export([init/1, intercept_in/3]). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ | ||||||
| 
 | 
 | ||||||
| -export([init/1]). | -export([init/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %%---------------------------------------------------------------------------- | %%---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ | ||||||
| 
 | 
 | ||||||
| -export([init/1]). | -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, |          get_all_tracked_channel_table_names_for_node/1, | ||||||
|          delete_tracked_channel_user_entry/1]). |          delete_tracked_channel_user_entry/1]). | ||||||
| 
 | 
 | ||||||
| -include_lib("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -import(rabbit_misc, [pget/2]). | -import(rabbit_misc, [pget/2]). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ | ||||||
| -export([init/1, handle_call/2, handle_event/2, handle_info/2, | -export([init/1, handle_call/2, handle_event/2, handle_info/2, | ||||||
|          terminate/2, code_change/3]). |          terminate/2, code_change/3]). | ||||||
| 
 | 
 | ||||||
| -include_lib("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -rabbit_boot_step({?MODULE, | -rabbit_boot_step({?MODULE, | ||||||
|                    [{description, "channel tracking event handler"}, |                    [{description, "channel tracking event handler"}, | ||||||
|  |  | ||||||
|  | @ -13,7 +13,7 @@ | ||||||
| 
 | 
 | ||||||
| -export([init/1]). | -export([init/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %%---------------------------------------------------------------------------- | %%---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -24,7 +24,7 @@ | ||||||
| 
 | 
 | ||||||
| -export([init/1]). | -export([init/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %%---------------------------------------------------------------------------- | %%---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ | ||||||
| 
 | 
 | ||||||
| -export([init/1]). | -export([init/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %%---------------------------------------------------------------------------- | %%---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -53,7 +53,7 @@ | ||||||
|          lookup/1, |          lookup/1, | ||||||
|          count/0]). |          count/0]). | ||||||
| 
 | 
 | ||||||
| -include_lib("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -import(rabbit_misc, [pget/2]). | -import(rabbit_misc, [pget/2]). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ | ||||||
| %% for compatibility with previous versions of CLI tools | %% for compatibility with previous versions of CLI tools | ||||||
| -export([close_connections/3]). | -export([close_connections/3]). | ||||||
| 
 | 
 | ||||||
| -include_lib("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -rabbit_boot_step({?MODULE, | -rabbit_boot_step({?MODULE, | ||||||
|                    [{description, "connection tracking event handler"}, |                    [{description, "connection tracking event handler"}, | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_credential_validation). | -module(rabbit_credential_validation). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %% used for backwards compatibility | %% used for backwards compatibility | ||||||
| -define(DEFAULT_BACKEND, rabbit_credential_validator_accept_everything). | -define(DEFAULT_BACKEND, rabbit_credential_validator_accept_everything). | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_credential_validator). | -module(rabbit_credential_validator). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %% Validates a password. Used by `rabbit_auth_backend_internal`. | %% Validates a password. Used by `rabbit_auth_backend_internal`. | ||||||
| %% | %% | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_credential_validator_accept_everything). | -module(rabbit_credential_validator_accept_everything). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_credential_validator). | -behaviour(rabbit_credential_validator). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_credential_validator_min_password_length). | -module(rabbit_credential_validator_min_password_length). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_credential_validator). | -behaviour(rabbit_credential_validator). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ | ||||||
| %% password against a pre-configured regular expression. | %% password against a pre-configured regular expression. | ||||||
| -module(rabbit_credential_validator_password_regexp). | -module(rabbit_credential_validator_password_regexp). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_credential_validator). | -behaviour(rabbit_credential_validator). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,8 +9,8 @@ | ||||||
| 
 | 
 | ||||||
| -export([publish/5]). | -export([publish/5]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| 
 | 
 | ||||||
| %%---------------------------------------------------------------------------- | %%---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -18,8 +18,8 @@ | ||||||
| %% For testing only | %% For testing only | ||||||
| -export([extract_extra_auth_props/4]). | -export([extract_extra_auth_props/4]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_misc.hrl"). | -include_lib("rabbit_common/include/rabbit_misc.hrl"). | ||||||
| 
 | 
 | ||||||
| %%---------------------------------------------------------------------------- | %%---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,8 +6,8 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_exchange). | -module(rabbit_exchange). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([recover/1, policy_changed/2, callback/4, declare/7, | -export([recover/1, policy_changed/2, callback/4, declare/7, | ||||||
|          assert_equivalence/6, assert_args_equivalence/2, check_type/1, |          assert_equivalence/6, assert_args_equivalence/2, check_type/1, | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_exchange_decorator). | -module(rabbit_exchange_decorator). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([select/2, set/1]). | -export([select/2, set/1]). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_runtime_parameter). | -behaviour(rabbit_runtime_parameter). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([register/0]). | -export([register/0]). | ||||||
| -export([validate/5, notify/5, notify_clear/4]). | -export([validate/5, notify/5, notify_clear/4]). | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_exchange_type_direct). | -module(rabbit_exchange_type_direct). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_exchange_type). | -behaviour(rabbit_exchange_type). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_exchange_type_fanout). | -module(rabbit_exchange_type_fanout). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_exchange_type). | -behaviour(rabbit_exchange_type). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,8 +6,8 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_exchange_type_headers). | -module(rabbit_exchange_type_headers). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_exchange_type). | -behaviour(rabbit_exchange_type). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_exchange_type_invalid). | -module(rabbit_exchange_type_invalid). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_exchange_type). | -behaviour(rabbit_exchange_type). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_exchange_type_topic). | -module(rabbit_exchange_type_topic). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_exchange_type). | -behaviour(rabbit_exchange_type). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -110,7 +110,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_limiter). | -module(rabbit_limiter). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(gen_server2). | -behaviour(gen_server2). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_maintenance). | -module(rabbit_maintenance). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([ | -export([ | ||||||
|     is_enabled/0, |     is_enabled/0, | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_mirror_queue_mode_all). | -module(rabbit_mirror_queue_mode_all). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_mirror_queue_mode). | -behaviour(rabbit_mirror_queue_mode). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_mirror_queue_mode_exactly). | -module(rabbit_mirror_queue_mode_exactly). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_mirror_queue_mode). | -behaviour(rabbit_mirror_queue_mode). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_mirror_queue_mode_nodes). | -module(rabbit_mirror_queue_mode_nodes). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_mirror_queue_mode). | -behaviour(rabbit_mirror_queue_mode). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_mnesia_rename). | -module(rabbit_mnesia_rename). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([rename/2]). | -export([rename/2]). | ||||||
| -export([maybe_finish/1]). | -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_BYTES,      8). | ||||||
| -define(INTEGER_SIZE_BITS,       (8 * ?INTEGER_SIZE_BYTES)). | -define(INTEGER_SIZE_BITS,       (8 * ?INTEGER_SIZE_BYTES)). | ||||||
|  |  | ||||||
|  | @ -10,8 +10,8 @@ | ||||||
|          message_annotation/3 |          message_annotation/3 | ||||||
|          ]). |          ]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| -include_lib("amqp10_common/include/amqp10_framing.hrl"). | -include_lib("amqp10_common/include/amqp10_framing.hrl"). | ||||||
| 
 | 
 | ||||||
| -type maybe(T) :: T | undefined. | -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(SYNC_INTERVAL,  25).   %% milliseconds | ||||||
| -define(CLEAN_FILENAME, "clean.dot"). | -define(CLEAN_FILENAME, "clean.dot"). | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_msg_store_ets_index). | -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). | -behaviour(rabbit_msg_store_index). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -22,7 +22,7 @@ | ||||||
|           msg_store_state |           msg_store_state | ||||||
|         }). |         }). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %%---------------------------------------------------------------------------- | %%---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -52,8 +52,8 @@ | ||||||
|     connections_local/0 |     connections_local/0 | ||||||
| ]). | ]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_misc.hrl"). | -include_lib("rabbit_common/include/rabbit_misc.hrl"). | ||||||
| 
 | 
 | ||||||
| %% IANA-suggested ephemeral port range is 49152 to 65535 | %% IANA-suggested ephemeral port range is 49152 to 65535 | ||||||
| -define(FIRST_TEST_BIND_PORT, 49152). | -define(FIRST_TEST_BIND_PORT, 49152). | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| %% | %% | ||||||
| 
 | 
 | ||||||
| -module(rabbit_password). | -module(rabbit_password). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -define(DEFAULT_HASHING_MODULE, rabbit_password_hashing_sha256). | -define(DEFAULT_HASHING_MODULE, rabbit_password_hashing_sha256). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ | ||||||
| -module(rabbit_peer_discovery_classic_config). | -module(rabbit_peer_discovery_classic_config). | ||||||
| -behaviour(rabbit_peer_discovery_backend). | -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, | -export([list_nodes/0, supports_registration/0, register/0, unregister/0, | ||||||
|          post_registration/0, lock/1, unlock/1]). |          post_registration/0, lock/1, unlock/1]). | ||||||
|  |  | ||||||
|  | @ -8,7 +8,7 @@ | ||||||
| -module(rabbit_peer_discovery_dns). | -module(rabbit_peer_discovery_dns). | ||||||
| -behaviour(rabbit_peer_discovery_backend). | -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, | -export([list_nodes/0, supports_registration/0, register/0, unregister/0, | ||||||
|          post_registration/0, lock/1, unlock/1]). |          post_registration/0, lock/1, unlock/1]). | ||||||
|  |  | ||||||
|  | @ -13,7 +13,7 @@ | ||||||
| -behaviour(rabbit_policy_validator). | -behaviour(rabbit_policy_validator). | ||||||
| -behaviour(rabbit_policy_merge_strategy). | -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]). | -export([register/0, validate_policy/1, merge_policy_value/3]). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -212,7 +212,7 @@ | ||||||
|   unacked |   unacked | ||||||
| }). | }). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %%---------------------------------------------------------------------------- | %%---------------------------------------------------------------------------- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -23,7 +23,7 @@ | ||||||
|          check_non_durable/1, |          check_non_durable/1, | ||||||
|          run_checks/2]). |          run_checks/2]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("amqqueue.hrl"). | -include("amqqueue.hrl"). | ||||||
| 
 | 
 | ||||||
| args_policy_lookup(Name, Resolve, Q) when ?is_amqqueue(Q) -> | args_policy_lookup(Name, Resolve, Q) when ?is_amqqueue(Q) -> | ||||||
|  |  | ||||||
|  | @ -70,7 +70,7 @@ | ||||||
|                                  qname_to_internal_name/1]). |                                  qname_to_internal_name/1]). | ||||||
| 
 | 
 | ||||||
| -include_lib("stdlib/include/qlc.hrl"). | -include_lib("stdlib/include/qlc.hrl"). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("amqqueue.hrl"). | -include("amqqueue.hrl"). | ||||||
| 
 | 
 | ||||||
| -type msg_id() :: non_neg_integer(). | -type msg_id() :: non_neg_integer(). | ||||||
|  |  | ||||||
|  | @ -45,8 +45,8 @@ | ||||||
| %% | %% | ||||||
| %% Reader processes are special processes (in the OTP sense). | %% Reader processes are special processes (in the OTP sense). | ||||||
| 
 | 
 | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([start_link/2, info_keys/0, info/1, info/2, force_event_refresh/2, | -export([start_link/2, info_keys/0, info/1, info/2, force_event_refresh/2, | ||||||
|          shutdown/2]). |          shutdown/2]). | ||||||
|  |  | ||||||
|  | @ -26,7 +26,7 @@ | ||||||
| -rabbit_upgrade({upgrade_recovery_terms, local, []}). | -rabbit_upgrade({upgrade_recovery_terms, local, []}). | ||||||
| -rabbit_upgrade({persistent_bytes, local, [upgrade_recovery_terms]}). | -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]). | -export([init/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -define(DELAY, 2). | -define(DELAY, 2). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_router). | -module(rabbit_router). | ||||||
| -include_lib("stdlib/include/qlc.hrl"). | -include_lib("stdlib/include/qlc.hrl"). | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([match_bindings/2, match_routing_key/2]). | -export([match_bindings/2, match_routing_key/2]). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ | ||||||
| %%  * rabbit_registry | %%  * rabbit_registry | ||||||
| %%  * rabbit_event | %%  * 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, | -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, |          list_component/1, list/2, list_formatted/1, list_formatted/3, | ||||||
|  |  | ||||||
|  | @ -18,7 +18,7 @@ | ||||||
| 
 | 
 | ||||||
| -export([init/1]). | -export([init/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -define(SERVER, ?MODULE). | -define(SERVER, ?MODULE). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,8 +9,8 @@ | ||||||
| 
 | 
 | ||||||
| -export([init/1, enabled/1, tap_in/6, tap_out/5, start/1, stop/1]). | -export([init/1, enabled/1, tap_in/6, tap_out/5, start/1, stop/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| 
 | 
 | ||||||
| -define(TRACE_VHOSTS, trace_vhosts). | -define(TRACE_VHOSTS, trace_vhosts). | ||||||
| -define(XNAME, <<"amq.rabbitmq.trace">>). | -define(XNAME, <<"amq.rabbitmq.trace">>). | ||||||
|  |  | ||||||
|  | @ -11,7 +11,7 @@ | ||||||
|          maybe_migrate_queues_to_per_vhost_storage/0, |          maybe_migrate_queues_to_per_vhost_storage/0, | ||||||
|          nodes_running/1, secondary_upgrade/1]). |          nodes_running/1, secondary_upgrade/1]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -define(VERSION_FILENAME, "schema_version"). | -define(VERSION_FILENAME, "schema_version"). | ||||||
| -define(LOCK_FILENAME, "schema_upgrade_lock"). | -define(LOCK_FILENAME, "schema_upgrade_lock"). | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ | ||||||
| 
 | 
 | ||||||
| -behaviour(rabbit_runtime_parameter). | -behaviour(rabbit_runtime_parameter). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([register/0]). | -export([register/0]). | ||||||
| -export([parse_set/3, set/3, clear/2]). | -export([parse_set/3, set/3, clear/2]). | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_vhost_msg_store). | -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([start/4, stop/2, client_init/5, successfully_recovered_state/2]). | ||||||
| -export([vhost_store_pid/2]). | -export([vhost_store_pid/2]). | ||||||
|  |  | ||||||
|  | @ -25,7 +25,7 @@ | ||||||
| %% use the now recommended try/catch syntax for obtaining the stack trace. | %% use the now recommended try/catch syntax for obtaining the stack trace. | ||||||
| -compile(nowarn_deprecated_function). | -compile(nowarn_deprecated_function). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -define(TICKTIME_RATIO, 4). | -define(TICKTIME_RATIO, 4). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_vhost_sup). | -module(rabbit_vhost_sup). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| %% Each vhost gets an instance of this supervisor that supervises | %% Each vhost gets an instance of this supervisor that supervises | ||||||
| %% message stores and queues (via rabbit_amqqueue_sup_sup). | %% message stores and queues (via rabbit_amqqueue_sup_sup). | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_vhost_sup_sup). | -module(rabbit_vhost_sup_sup). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(supervisor2). | -behaviour(supervisor2). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(rabbit_vhost_sup_wrapper). | -module(rabbit_vhost_sup_wrapper). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -behaviour(supervisor2). | -behaviour(supervisor2). | ||||||
| -export([init/1]). | -export([init/1]). | ||||||
|  |  | ||||||
|  | @ -7,7 +7,7 @@ | ||||||
| 
 | 
 | ||||||
| -module(term_to_binary_compat). | -module(term_to_binary_compat). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([term_to_binary_1/1]). | -export([term_to_binary_1/1]). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -107,8 +107,8 @@ | ||||||
|         }). |         }). | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| 
 | 
 | ||||||
| -define(QUEUE, lqueue). | -define(QUEUE, lqueue). | ||||||
| -define(TIMEOUT_TEST_MSG, <<"timeout_test_msg!">>). | -define(TIMEOUT_TEST_MSG, <<"timeout_test_msg!">>). | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ | ||||||
| 
 | 
 | ||||||
| -include_lib("common_test/include/ct.hrl"). | -include_lib("common_test/include/ct.hrl"). | ||||||
| -include_lib("amqp_client/include/amqp_client.hrl"). | -include_lib("amqp_client/include/amqp_client.hrl"). | ||||||
| -include("include/amqqueue.hrl"). | -include("amqqueue.hrl"). | ||||||
| 
 | 
 | ||||||
| -compile(export_all). | -compile(export_all). | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -12,7 +12,7 @@ | ||||||
| -export([init/1, handle_call/2, handle_event/2, handle_info/2, | -export([init/1, handle_call/2, handle_event/2, handle_info/2, | ||||||
|          terminate/2, code_change/3]). |          terminate/2, code_change/3]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| 
 | 
 | ||||||
| start(Pid, Nodes, Types) -> | start(Pid, Nodes, Types) -> | ||||||
|     Oks = [ok || _ <- Nodes], |     Oks = [ok || _ <- Nodes], | ||||||
|  |  | ||||||
|  | @ -117,7 +117,7 @@ init_per_group(clustering, Config) -> | ||||||
|                  {rmq_nodes_clustered, false}, |                  {rmq_nodes_clustered, false}, | ||||||
|                  {start_rmq_with_plugins_disabled, true}]), |                  {start_rmq_with_plugins_disabled, true}]), | ||||||
|     rabbit_ct_helpers:run_setup_steps(Config1, [ |     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 |         fun work_around_cli_and_rabbit_circular_dep/1 | ||||||
|       ]); |       ]); | ||||||
| init_per_group(activating_plugin, Config) -> | init_per_group(activating_plugin, Config) -> | ||||||
|  | @ -127,7 +127,7 @@ init_per_group(activating_plugin, Config) -> | ||||||
|                  {rmq_nodes_clustered, true}, |                  {rmq_nodes_clustered, true}, | ||||||
|                  {start_rmq_with_plugins_disabled, true}]), |                  {start_rmq_with_plugins_disabled, true}]), | ||||||
|     rabbit_ct_helpers:run_setup_steps(Config1, [ |     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 |         fun work_around_cli_and_rabbit_circular_dep/1 | ||||||
|       ]); |       ]); | ||||||
| init_per_group(_, Config) -> | init_per_group(_, Config) -> | ||||||
|  | @ -985,6 +985,17 @@ activating_plugin_with_new_ff_enabled(Config) -> | ||||||
| %% Internal helpers. | %% 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) -> | build_my_plugin(Config) -> | ||||||
|     PluginSrcDir = filename:join(?config(data_dir, Config), "my_plugin"), |     PluginSrcDir = filename:join(?config(data_dir, Config), "my_plugin"), | ||||||
|     PluginsDir = filename:join(PluginSrcDir, "plugins"), |     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(_) -> | node_discovery_with_long_node_names(_) -> | ||||||
|     Result = rabbit_peer_discovery_dns:discover_nodes(?DISCOVERY_ENDPOINT_RECORD_A, true), |     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(_) -> | node_discovery_with_short_node_names(_) -> | ||||||
|     Result = rabbit_peer_discovery_dns:discover_nodes(?DISCOVERY_ENDPOINT_RECORD_A, false), |     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([ | -export([ | ||||||
|          ]). |          ]). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include("rabbit_framing.hrl"). | -include_lib("rabbit_common/include/rabbit_framing.hrl"). | ||||||
| -include_lib("common_test/include/ct.hrl"). | -include_lib("common_test/include/ct.hrl"). | ||||||
| -include_lib("eunit/include/eunit.hrl"). | -include_lib("eunit/include/eunit.hrl"). | ||||||
| -include_lib("amqp10_common/include/amqp10_framing.hrl"). | -include_lib("amqp10_common/include/amqp10_framing.hrl"). | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ | ||||||
| 
 | 
 | ||||||
| -compile(export_all). | -compile(export_all). | ||||||
| 
 | 
 | ||||||
| -include("rabbit.hrl"). | -include_lib("rabbit_common/include/rabbit.hrl"). | ||||||
| -include_lib("common_test/include/ct.hrl"). | -include_lib("common_test/include/ct.hrl"). | ||||||
| -include_lib("proper/include/proper.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) | RMQ_PLUGINS_DIR=$(CURDIR)/$(DIST_DIR) | ||||||
| endif | endif | ||||||
| 
 | 
 | ||||||
|  | ifdef EXTRA_PLUGINS_DIR | ||||||
|  | RMQ_PLUGINS_DIR=$(RMQ_PLUGINS_DIR):$(EXTRA_PLUGINS_DIR) | ||||||
|  | endif | ||||||
|  | 
 | ||||||
| define basic_script_env_settings | define basic_script_env_settings | ||||||
| MAKE="$(MAKE)" \
 | MAKE="$(MAKE)" \
 | ||||||
| ERL_LIBS="$(DIST_ERL_LIBS)" \
 | ERL_LIBS="$(DIST_ERL_LIBS)" \
 | ||||||
|  |  | ||||||
|  | @ -10,7 +10,7 @@ | ||||||
| -include_lib("kernel/include/file.hrl"). | -include_lib("kernel/include/file.hrl"). | ||||||
| -include_lib("kernel/include/logger.hrl"). | -include_lib("kernel/include/logger.hrl"). | ||||||
| 
 | 
 | ||||||
| -include("include/logging.hrl"). | -include("logging.hrl"). | ||||||
| 
 | 
 | ||||||
| -export([get_context/0, | -export([get_context/0, | ||||||
|          get_context/1, |          get_context/1, | ||||||
|  |  | ||||||
|  | @ -332,10 +332,11 @@ check_values_from_reachable_remote_node(Config) -> | ||||||
|              {atom_to_list(?FUNCTION_NAME), "localhost"}), |              {atom_to_list(?FUNCTION_NAME), "localhost"}), | ||||||
|     NodeS = atom_to_list(Node), |     NodeS = atom_to_list(Node), | ||||||
|     true = os:putenv("RABBITMQ_NODENAME", NodeS), |     true = os:putenv("RABBITMQ_NODENAME", NodeS), | ||||||
|     RabbitCommonEbinDir = filename:dirname(code:which(rabbit_env)), |  | ||||||
|     Args = ["-noinput", |     Args = ["-noinput", | ||||||
|             "-sname", atom_to_list(Node), |             "-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, |             "-pa", RabbitEbinDir, | ||||||
|             "-mnesia", "dir", |             "-mnesia", "dir", | ||||||
|             rabbit_misc:format("~p", [MnesiaDir]), |             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