From 611e711085c7e3984555a79626d025c8b876eced Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Tue, 30 Mar 2021 20:31:19 +1300 Subject: Test incorrect behaviour of `rb_io_wait_readable/writable`. --- test/fiber/test_io.rb | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'test/fiber') diff --git a/test/fiber/test_io.rb b/test/fiber/test_io.rb index f01cc3af1b..fafda7c310 100644 --- a/test/fiber/test_io.rb +++ b/test/fiber/test_io.rb @@ -62,4 +62,39 @@ class TestFiberIO < Test::Unit::TestCase end end.each(&:join) end + + def test_epipe_on_read + skip "UNIXSocket is not defined!" unless defined?(UNIXSocket) + + i, o = UNIXSocket.pair + + unless i.nonblock? && o.nonblock? + i.close + o.close + skip "I/O is not non-blocking!" + end + + error = nil + + thread = Thread.new do + scheduler = Scheduler.new + Fiber.set_scheduler scheduler + + Fiber.schedule do + begin + i.close + o.write(MESSAGE) + rescue => error + # Saved into error. + end + end + end + + thread.join + + i.close + o.close + + assert_kind_of Errno::EPIPE, error + end end -- cgit v1.2.3