From e9974a466ac7edcb8035f5f7bc65c4c6731e2ee2 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 20 May 2021 20:15:43 +0900 Subject: [PATCH] Get rid of sporadic WSAEACCES on Windows [ruby-dev:42661] --- test/socket/test_addrinfo.rb | 7 ++++++- test/socket/test_socket.rb | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/test/socket/test_addrinfo.rb b/test/socket/test_addrinfo.rb index 1421c153a0..e068c6c216 100644 --- a/test/socket/test_addrinfo.rb +++ b/test/socket/test_addrinfo.rb @@ -363,7 +363,12 @@ class TestSocketAddrinfo < Test::Unit::TestCase def random_port # IANA suggests dynamic port for 49152 to 65535 # http://www.iana.org/assignments/port-numbers - 49152 + rand(65535-49152+1) + case RUBY_PLATFORM + when /mingw|mswin/ + rand(50000..65535) + else + rand(49152..65535) + end end def errors_addrinuse diff --git a/test/socket/test_socket.rb b/test/socket/test_socket.rb index 77ce093101..16c359eca1 100644 --- a/test/socket/test_socket.rb +++ b/test/socket/test_socket.rb @@ -172,7 +172,10 @@ class TestSocket < Test::Unit::TestCase end def errors_addrinuse - [Errno::EADDRINUSE] + errs = [Errno::EADDRINUSE] + # MinGW fails with "Errno::EACCES: Permission denied - bind(2) for 0.0.0.0:49721" + errs << Errno::EACCES if /mingw/ =~ RUBY_PLATFORM + errs end def test_tcp_server_sockets