Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Two rmcp tests fail on Windows: connection-refused text check and `npm` spawn in test_with_js

Đang mở
#1,364 1 bình luận 0 reaction 1 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 2 ngày

@bolinfest đang làm issue này rồi.

Từ ngày 15/10/2026.

Đánh giá

Issue này chưa được đánh giá.

Mô tả

bug P2 ready for work T-test

Describe the bug
I ran rmcp's tests on Windows (CI only runs Linux). Two tests fail there. Both problems are in the tests; the SDK code behaves correctly.

  1. transport::auth::tests::default_http_client_preserves_connection_failure_cause (lib, --all-features) checks for the English text connection refused. Windows describes a refused connection differently, so the assertion fails although the error chain is correct:

    unexpected discovery error: Metadata error: OAuth metadata discovery failed for http://127.0.0.1:34350/mcp
      Caused by: error sending request for url (http://127.0.0.1:34350/mcp)
      Caused by: client error (Connect)
      Caused by: tcp connect error
      Caused by: No connection could be made because the target machine actively refused it. (os error 10061)
    
  2. All three test_with_js tests (no-local feature set) fail with Error: program not found. install_js_dependencies runs Command::new("npm"), but on Windows npm is the shim npm.cmd, and Command doesn't resolve a bare name to a .cmd file. (node is node.exe, so the other spawns work.)

To Reproduce
On Windows 11 with rustc 1.96 (the version rust-toolchain.toml pins), Node 24 and uv:

  1. cargo test -p rmcp --all-features --lib default_http_client_preserves_connection_failure_cause
  2. cargo test -p rmcp --features "<all rmcp features except local, as in CI>" --test test_with_js

Expected behavior
Both pass, as they do on Linux.

Proposed fix (test-only, 8 lines added, 3 removed)

  • auth test: before the request, connect to the same dropped address with std::net::TcpStream::connect(addr), and assert that the reason contains that error's to_string(). That way the test expects whatever text the OS uses, instead of a hard-coded English phrase.
  • test_with_js: let npm = if cfg!(windows) { "npm.cmd" } else { "npm" };. Another option is to dogfood rmcp::transport::which_command("npm"), but then which-command has to be added to the test's required-features.

Patch: https://github.com/modelcontextprotocol/rust-sdk/compare/main...RafalOfficial:rust-sdk:fix/windows-test-portability. With it, both tests pass on Windows. These all pass unchanged on Windows: the other 606 lib tests, test_with_python, test_stdio_response_concurrency, test_close_connection and test_async_rw_max_line_length. The patch is formatted with cargo +nightly fmt. If you're happy with this, I can open the PR. If you don't want Windows-only test fixes while CI is Linux-only, just close this.

Additional context
Main at 8d226f4. This report and the proposed patch were written with Claude Code (AI-assisted). I ran the commands above on a real Windows machine.

Ngôn ngữ chính
Rust
Star
4k
Fork
662
Merge trung bình
3 ngày 20 giờ
Pull request đã merge (30 ngày)
30

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của modelcontextprotocol/rust-sdk

Tất cả issue của modelcontextprotocol/rust-sdk

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.