Skip to content

Commit ccc72c7

Browse files
committed
Skip some new specs for reading from a closed socket on Windows
These specs fails with error: ``` Errno::EINVAL: Invalid argument - recvmsg(2) ``` on calling the following methods: ```ruby client.recvmsg(10) # or client.recvmsg_nonblock(10) ```
1 parent 0ba6deb commit ccc72c7

File tree

2 files changed

+46
-40
lines changed

2 files changed

+46
-40
lines changed

library/socket/basicsocket/recvmsg_nonblock_spec.rb

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -263,26 +263,28 @@
263263
end
264264

265265
ruby_version_is "3.3" do
266-
it "returns nil on a closed stream socket" do
267-
ready = false
266+
platform_is_not :windows do
267+
it "returns nil on a closed stream socket" do
268+
ready = false
268269

269-
t = Thread.new do
270-
client = @server.accept
270+
t = Thread.new do
271+
client = @server.accept
271272

272-
Thread.pass while !ready
273-
client.recvmsg_nonblock(10)
274-
ensure
275-
client.close if client
276-
end
273+
Thread.pass while !ready
274+
client.recvmsg_nonblock(10)
275+
ensure
276+
client.close if client
277+
end
277278

278-
Thread.pass while t.status and t.status != "sleep"
279-
t.status.should_not be_nil
279+
Thread.pass while t.status and t.status != "sleep"
280+
t.status.should_not be_nil
280281

281-
socket = TCPSocket.new('127.0.0.1', @port)
282-
socket.close
283-
ready = true
282+
socket = TCPSocket.new('127.0.0.1', @port)
283+
socket.close
284+
ready = true
284285

285-
t.value.should be_nil
286+
t.value.should be_nil
287+
end
286288
end
287289
end
288290
end

library/socket/basicsocket/recvmsg_spec.rb

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -209,41 +209,45 @@
209209
end
210210

211211
ruby_version_is ""..."3.3" do
212-
it "returns an empty String as received data on a closed stream socket" do
213-
t = Thread.new do
214-
client = @server.accept
215-
client.recvmsg(10)
216-
ensure
217-
client.close if client
218-
end
212+
platform_is_not :windows do
213+
it "returns an empty String as received data on a closed stream socket" do
214+
t = Thread.new do
215+
client = @server.accept
216+
client.recvmsg(10)
217+
ensure
218+
client.close if client
219+
end
219220

220-
Thread.pass while t.status and t.status != "sleep"
221-
t.status.should_not be_nil
221+
Thread.pass while t.status and t.status != "sleep"
222+
t.status.should_not be_nil
222223

223-
socket = TCPSocket.new('127.0.0.1', @port)
224-
socket.close
224+
socket = TCPSocket.new('127.0.0.1', @port)
225+
socket.close
225226

226-
t.value.should.is_a? Array
227-
t.value[0].should == ""
227+
t.value.should.is_a? Array
228+
t.value[0].should == ""
229+
end
228230
end
229231
end
230232

231233
ruby_version_is "3.3" do
232-
it "returns nil on a closed stream socket" do
233-
t = Thread.new do
234-
client = @server.accept
235-
client.recvmsg(10)
236-
ensure
237-
client.close if client
238-
end
234+
platform_is_not :windows do
235+
it "returns nil on a closed stream socket" do
236+
t = Thread.new do
237+
client = @server.accept
238+
client.recvmsg(10)
239+
ensure
240+
client.close if client
241+
end
239242

240-
Thread.pass while t.status and t.status != "sleep"
241-
t.status.should_not be_nil
243+
Thread.pass while t.status and t.status != "sleep"
244+
t.status.should_not be_nil
242245

243-
socket = TCPSocket.new('127.0.0.1', @port)
244-
socket.close
246+
socket = TCPSocket.new('127.0.0.1', @port)
247+
socket.close
245248

246-
t.value.should be_nil
249+
t.value.should be_nil
250+
end
247251
end
248252
end
249253
end

0 commit comments

Comments
 (0)