Unlike with gnu make, mixed version testing with bazel uses a package-generic-unix for the secondary umbrella rather than the source. This brings the benefit of being able to mixed version test releases built with older erlang versions (even though all nodes will run under the single version given to bazel)
This introduces new test labels, adding a `-mixed` suffix for every existing test. They can be skipped if necessary with `--test_tag_filters` (see the github actions workflow for an example)
As part of the change, it is now possible to run an old release of rabbit with rabbitmq_run rule, such as:
`bazel run @rabbitmq-server-generic-unix-3.8.17//:rabbitmq-run run-broker`
GET /api/health/checks/certificate-expiration
GET /api/health/checks/port-listener
GET /api/health/checks/protocol-listener
GET /api/health/checks/virtual-hosts
GET /api/health/checks/node-is-mirror-sync-critical
GET /api/health/checks/node-is-quorum-critical
Some tests are timing-sensitive in nature. Given enough cores,
the assumptions in some of them are no longer true.
In addition, some sample test assertions only make sense when
stats collection is disabled; removed them from the "regular" HTTP
API suite per discussion with @dcorbacho.
While at it, remove some overly opinionated assertions
and a test for the deprecated One True Health Check™.
So that they are easy to skip in mixed-version clusters where
this feature flag can't be guaranteed to be available.
References #rabbitmq/rabbitmq-server#2380.
It polluted the common_test node and caused inter-node communication
failures: a new `.erlang.cookie` file was re-generated in the overriden
$HOME directory, and this new cookie was used by RabbitMQ nodes started
after this testsuite.
With most CLI tools, command line arguments
take precedence over values in the configuration file.
This was not the case in rabbitmqadmin, and very likely
unintentionally so, at least I could not find
any evidence of the contrary.
There was a test case that implicitly depended
on this behavior. Again, no indication of this
being an intentional design choice.
While this can be a breaking change, most
users either use CLI flags or the config file;
this is why this behavior has gone unnoticed
for at least 8 years. We therefore treat
this change as low risk and worth
shipping e.g. in a patch release.
rabbitmqadmin is installed manually and
therefore won't be replaced during a node
upgrade anyway. Operators would
have to opt-in.
Closes#804.