fix(tests): disable IPv6 in e2e testnet to fix Windows/macOS CI#81
Merged
mickvandijke merged 2 commits intoWithAutonomi:mainfrom Apr 27, 2026
Merged
Conversation
The e2e test harness creates loopback-only nodes on 127.0.0.1 but left `ipv6` at its default (true), which makes saorsa-core try to bind a dual-stack v6 socket on top. On Windows GitHub Actions runners and some macOS runners that bind fails outright, producing: Failed to create node 0: Transport error: Setup failed: Failed to create dual-stack network nodes: Failed to create transport Two e2e tests visibly broke on the merged v0.11.0 RC: test replication::test_verification_with_paid_list_check ... FAILED test security_attacks::test_attack_proof_too_large ... FAILED (These tests run later in the suite, after the dual-stack failure fans out to subsequent node creations.) Fix: pin `ipv6(false)` in `CoreNodeConfig::builder()` for the test testnet. Loopback-only tests don't need v6 — the existing `SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), port)` already locks the bind to v4 anyway. Matching change is already present in ant-client's `tests/support/mod.rs` (line 246).
There was a problem hiding this comment.
Pull request overview
This PR fixes cross-platform CI failures in the e2e test harness by ensuring loopback-only testnet nodes don’t attempt to create dual-stack (IPv6) sockets on Windows/macOS runners.
Changes:
- Disable IPv6 in the e2e
TestNetworknode startup config viaCoreNodeConfig::builder().ipv6(false). - Add inline rationale explaining the Windows/macOS dual-stack bind failure and why IPv6 isn’t needed for loopback-only tests.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Same dual-stack bind issue as e2e/testnet.rs. Currently the tests in live_testnet.rs are #[ignore]'d pending a dht_put/dht_get rewrite for saorsa-core >= 0.16, so this doesn't fix anything observable today. Apply the fix preventatively so the bug doesn't resurface when those tests are revived.
mickvandijke
approved these changes
Apr 27, 2026
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
The e2e test harness creates loopback-only nodes on 127.0.0.1 but left
ipv6at its default (true), which makes saorsa-core try to bind a dual-stack v6 socket on top. Windows GitHub Actions runners — and some macOS runners — can't do that. Result: every recent CI run hitsand the testnet startup fans out into the next 70+ tests reporting the same error.
What landed
Pin
.ipv6(false)inCoreNodeConfig::builder()fortestnet.rs. Loopback-only tests don't need v6 — the bind addr is alreadyIpv4Addr::LOCALHOST. Matching change is already present in ant-client'stests/support/mod.rs:246.Visible failures this fixes
From the merged v0.11.0 release CI:
replication::test_verification_with_paid_list_checksecurity_attacks::test_attack_proof_too_largeTest plan
cargo check --tests --features test-utils: cleancargo clippy --tests --features test-utils -- -D warnings: cleancargo fmt --all -- --check: clean