fix: full PHPUnit suite passing on Linux with PHP 8.4 + RabbitMQ - #1
Merged
Merged
Conversation
- Permit transient non-exclusive queues in CI RabbitMQ 4.x config - Route Toxiproxy upstream through host.docker.internal for reliable broker access when container DNS networking is unavailable - Export TOXIPROXY_* defaults from gha-setup.sh - Harden ToxiProxy test helper for stale proxies and longer API timeouts - Fix PHP 8.4 strict type issues in test config and auth helper Co-authored-by: ecartz <ecartz@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Runs the complete PHPUnit suite (864 tests) on Linux with PHP 8.4, RabbitMQ 4.x, ext-sockets, and Toxiproxy. All tests pass with zero failures and zero skips.
Test results
JUnit report:
./vendor/bin/phpunit --no-coverage --log-junit build/report.junit.xmlFixes
RabbitMQ 4.x compatibility — Added
deprecated_features.permit.transient_nonexcl_queues = trueto.ci/ubuntu/rabbitmq.confso functional tests that declare transient non-exclusive queues (AMQP defaults) are not rejected by RabbitMQ 4.3+.Toxiproxy upstream routing — Changed
TOXIPROXY_AMQP_TARGETfromphp-amqplib-rabbitmqtohost.docker.internaland added--add-host=host.docker.internal:host-gatewayto the Toxiproxy container. This routes proxy traffic through the host-published RabbitMQ port, which works reliably when Docker inter-container DNS is unavailable.Toxiproxy test helper hardening —
ToxiProxynow removes stale proxies before creating new ones, uses longer HTTP timeouts (5s), and performs best-effort cleanup on close.PHP 8.4 strict type fixes — Cast
PORTand Toxiproxy listen port toint; castmt_rand()tostringbeforemd5()inConnectionAuthTest.gha-setup.sh — Exports
TOXIPROXY_*environment variable defaults after starting services.