Skip to content

Conversation

@ryanbreen
Copy link
Owner

Summary

  • Combines named Unix socket tests into unix_socket_test.rs to fix CI flakiness
  • Adds EISCONN and accept-on-non-listener edge case tests (validation recommendations)
  • Adds boot stage marker for Unix socket test

Problem

The standalone unix_named_socket_test binary was causing CI flakiness - different tests would timeout on different runs due to scheduler contention from too many concurrent test processes.

Solution

Combine both socketpair tests (phases 1-12) and named socket tests (phases 13-18) into a single binary (unix_socket_test.rs). This eliminates the concurrent process issue while maintaining full test coverage.

New Test Phases

Phase Test
13 Basic server-client with bind/listen/accept/connect
14 ECONNREFUSED on non-existent path
15 EADDRINUSE on duplicate bind
16 Non-blocking accept (EAGAIN)
17 EISCONN on already-connected socket
18 Accept on non-listener socket

Test plan

  • CI passes all boot stages including new Unix socket test marker
  • No timing-related test failures

🤖 Generated with Claude Code

This commit addresses the CI flakiness from the removed unix_named_socket_test
by combining the named socket tests (bind/listen/accept/connect) into the
existing unix_socket_test.rs binary. Running all socket tests in a single
process eliminates scheduler contention that was causing timing-related
failures.

Changes:
- Add phases 13-18 to unix_socket_test.rs for named socket functionality:
  - Phase 13: Basic server-client with bind/listen/accept/connect
  - Phase 14: ECONNREFUSED on non-existent path
  - Phase 15: EADDRINUSE on duplicate bind
  - Phase 16: Non-blocking accept (EAGAIN)
  - Phase 17: EISCONN on already-connected socket (validation recommendation)
  - Phase 18: Accept on non-listener socket (validation recommendation)

- Update xtask boot stages to include UNIX_SOCKET_TEST_PASSED marker

- Add EISCONN and accept-on-non-listener tests to standalone
  unix_named_socket_test.rs for manual testing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@ryanbreen ryanbreen merged commit 9c3ea2e into main Jan 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants