tests: minor patchbay test improvements#4091
Conversation
|
Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/4091/docs/iroh/ Last updated: 2026-04-09T20:15:51Z |
matheus23
left a comment
There was a problem hiding this comment.
I don't understand where we call Endpoint::close in this version.
We should be calling Endpoint::close to ensure we actually properly send the close frame.
With the current version this kinda works out because you can "wait" for the conn.closed().await on the other side "out-of-band" via the barrier as the communication mechanism.
But we don't need the barrier at all, if we just endpoint.close().await on both sides of Pair::run.
You seem to intentionally avoid doing this, what's the reasoning for that?
We don't. We also don't on main. I removed it after a suggestion from @flub that we don't need it, because we are not testing for closing behavior but for holepunching here. Removing the endpoint close makes the tests run faster, too. All tests await I can change it back to calling |
I see. I intentionally added it back, thinking "we don't close properly, so obviously this will take longer than necessary". The idea being here that if we don't close properly, we might not even send the close message, leaving the other side hanging. Can you add a comment next the barrier use, essentially explaining that we use this as an alternative mechanism to |
|
FWIW I'd love those patchbay close tests on noq ;) |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [iroh](https://github.com/n0-computer/iroh) | workspace.dependencies | minor | `0.97.0` → `0.98.0` | --- ### Release Notes <details> <summary>n0-computer/iroh (iroh)</summary> ### [`v0.98.0`](https://github.com/n0-computer/iroh/blob/HEAD/CHANGELOG.md#0980---2026-04-17) [Compare Source](n0-computer/iroh@v0.97.0...v0.98.0) ##### ⛰️ Features - *(iroh)* Avoid allocations in `AddrFilter` ([#​4018](n0-computer/iroh#4018)) - ([d26cbd2](n0-computer/iroh@d26cbd2)) - *(iroh)* Pluggable crypto backends ([#​3992](n0-computer/iroh#3992)) - ([387c2e4](n0-computer/iroh@387c2e4)) - *(iroh)* Add ability to configure external addrs ([#​4098](n0-computer/iroh#4098)) - ([372aab9](n0-computer/iroh@372aab9)) - *(iroh)* Do not advertise deprecated IPv6 addrs ([#​4106](n0-computer/iroh#4106)) - ([b2b1d46](n0-computer/iroh@b2b1d46)) - *(iroh-relay)* Expose more metrics on the relay server ([#​4085](n0-computer/iroh#4085)) - ([ee844a6](n0-computer/iroh@ee844a6)) - Expose the new fn decrypt on noq. ([#​4002](n0-computer/iroh#4002)) - ([197d8db](n0-computer/iroh@197d8db)) - Update noq and net-tools to latest ([#​4088](n0-computer/iroh#4088)) - ([159a5cf](n0-computer/iroh@159a5cf)) - Rate limiting in router ([#​3951](n0-computer/iroh#3951)) - ([ea7a634](n0-computer/iroh@ea7a634)) - Update relay protocol to iroh-relay-v2, add new Health frame, test protocol update mechanism ([#​3955](n0-computer/iroh#3955)) - ([0a22d76](n0-computer/iroh@0a22d76)) - Update to noq\@​0.18 ([#​4121](n0-computer/iroh#4121)) - ([72e4538](n0-computer/iroh@72e4538)) - Vendor pkarr implementation ([#​4026](n0-computer/iroh#4026)) - ([3ab6222](n0-computer/iroh@3ab6222)) ##### 🐛 Bug Fixes - *(ci)* Install cmake and nasm for aws-lc-sys on Windows ([#​4032](n0-computer/iroh#4032)) - ([405de1d](n0-computer/iroh@405de1d)) - *(iroh)* \[**breaking**] Faster relay health check after network change ([#​4041](n0-computer/iroh#4041)) - ([b11b0eb](n0-computer/iroh@b11b0eb)) - *(iroh)* `Endpoint::online` should only return once connected to a relay ([#​4115](n0-computer/iroh#4115)) - ([3424c6d](n0-computer/iroh@3424c6d)) - *(iroh)* \[**breaking**] Don't stop address lookup when one service errors ([#​4126](n0-computer/iroh#4126)) - ([321443d](n0-computer/iroh@321443d)) - *(iroh)* Don't falsely report home relay as connected on change ([#​4136](n0-computer/iroh#4136)) - ([1b04d34](n0-computer/iroh@1b04d34)) - *(iroh-relay)* Send EndpointGone message to the right peers ([#​4079](n0-computer/iroh#4079)) - ([6be4b3c](n0-computer/iroh@6be4b3c)) - *(iroh-relay)* Treat frames not allowed in a protocol version as error ([#​4127](n0-computer/iroh#4127)) - ([1c92a39](n0-computer/iroh@1c92a39)) - Improve holepunching after network changes ([#​3928](n0-computer/iroh#3928)) - ([cc21f51](n0-computer/iroh@cc21f51)) - Poll for default route with exponential backoff after network change ([#​4039](n0-computer/iroh#4039)) - ([dc01a77](n0-computer/iroh@dc01a77)) - Modify test\_ip\_wins\_over\_custom so it is a noop if no ip transport is… ([#​4048](n0-computer/iroh#4048)) - ([b141e02](n0-computer/iroh@b141e02)) - Increase path idle timeouts and configure relay paths ([#​4038](n0-computer/iroh#4038)) - ([eba6afc](n0-computer/iroh@eba6afc)) - Handle wine properly ([#​3902](n0-computer/iroh#3902)) - ([8bf7002](n0-computer/iroh@8bf7002)) - Set default crypto provider for iroh-relay binary ([#​4087](n0-computer/iroh#4087)) - ([2433645](n0-computer/iroh@2433645)) ##### 🚜 Refactor - *(iroh)* \[**breaking**] Improve address lookup registry ([#​4130](n0-computer/iroh#4130)) - ([481c870](n0-computer/iroh@481c870)) - *(iroh, iroh-relay)* \[**breaking**] Mark public types as non\_exhaustive ([#​4107](n0-computer/iroh#4107)) - ([86d3ac6](n0-computer/iroh@86d3ac6)) - *(iroh-base)* \[**breaking**] Don't expose third-party error types in iroh-base ([#​4073](n0-computer/iroh#4073)) - ([d803dfe](n0-computer/iroh@d803dfe)) - *(iroh-base)* \[**breaking**] Rename `CustomAddr::as_vec` to `CustomAddr::to_vec` and improve docs ([#​4074](n0-computer/iroh#4074)) - ([3077f17](n0-computer/iroh@3077f17)) - *(iroh-base)* \[**breaking**] Change `SecretKey::generate` to not take an `Rng` arg ([#​4075](n0-computer/iroh#4075)) - ([36781ad](n0-computer/iroh@36781ad)) - *(iroh-relay)* \[**breaking**] Proper timeouts on relay connections ([#​4083](n0-computer/iroh#4083)) - ([79bb0e4](n0-computer/iroh@79bb0e4)) - Use latest noq api ([#​4057](n0-computer/iroh#4057)) - ([8af8370](n0-computer/iroh@8af8370)) - Remove needless alloc in relay server ([#​4084](n0-computer/iroh#4084)) - ([40b50a1](n0-computer/iroh@40b50a1)) - Move to\_z32/from\_z32 into iroh-base and remove EndpointIdExt trait ([#​4133](n0-computer/iroh#4133)) - ([382bf36](n0-computer/iroh@382bf36)) ##### 🧪 Testing - *(iroh)* Add patchbay test matrix for switching uplinks ([#​4095](n0-computer/iroh#4095)) - ([d72f1cb](n0-computer/iroh@d72f1cb)) - *(iroh)* Add more patchbay tests and improve existing tests ([#​4118](n0-computer/iroh#4118)) - ([f5ec24a](n0-computer/iroh@f5ec24a)) - *(iroh)* Improve patchbay NAT matrix ([#​4135](n0-computer/iroh#4135)) - ([2ad657a](n0-computer/iroh@2ad657a)) - Fix ip\_wins\_over\_custom flakiness ([#​4047](n0-computer/iroh#4047)) - ([174b58b](n0-computer/iroh@174b58b)) - Add patchbay tests ([#​3986](n0-computer/iroh#3986)) - ([2ab1240](n0-computer/iroh@2ab1240)) - Improve patchbay test setup ([#​4078](n0-computer/iroh#4078)) - ([9b01751](n0-computer/iroh@9b01751)) - Minor patchbay test improvements ([#​4091](n0-computer/iroh#4091)) - ([0cc2441](n0-computer/iroh@0cc2441)) ##### ⚙️ Miscellaneous Tasks - *(ci)* Move more CI jobs to self hosted runners ([#​4072](n0-computer/iroh#4072)) - ([54442c3](n0-computer/iroh@54442c3)) - *(iroh)* Update hickory to 0.26.0-beta.4 and use exact-version deps for prereleased crates ([#​4117](n0-computer/iroh#4117)) - ([f829593](n0-computer/iroh@f829593)) - *(iroh-bench)* Allow configuring the number of worker threads for each endpoint in iroh-bench ([#​4063](n0-computer/iroh#4063)) - ([065b448](n0-computer/iroh@065b448)) - Update to netwatch\@​0.16 and portmapper\@​0.16 ([#​4128](n0-computer/iroh#4128)) - ([24efedf](n0-computer/iroh@24efedf)) - Fix changelog generation - ([08c6454](n0-computer/iroh@08c6454)) ##### Deps - *(iroh)* Update patchbay to 0.5 ([#​4097](n0-computer/iroh#4097)) - ([811a062](n0-computer/iroh@811a062)) - Bump noq and net-tools ([#​4113](n0-computer/iroh#4113)) - ([184e378](n0-computer/iroh@184e378)) ##### Examples - *(iroh)* Allow to configure the receive window in the transfer example ([#​4082](n0-computer/iroh#4082)) - ([c865251](n0-computer/iroh@c865251)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL21pbm9yIl19--> Reviewed-on: https://git.erwanleboucher.dev/eleboucher/towonel/pulls/19
Description
info!line length in async blocks so thatrustfmtdoesn't silently ignore the block