diff --git a/test/socket/test_unix.rb b/test/socket/test_unix.rb new file mode 100644 index 0000000000..1314fca1f8 --- /dev/null +++ b/test/socket/test_unix.rb @@ -0,0 +1,28 @@ +begin + require "socket" + require "test/unit" +rescue LoadError +end + +class TestUNIXSocket < Test::Unit::TestCase + def test_fd_passing + r1, w = IO.pipe + s1, s2 = UNIXSocket.pair + begin + s1.send_io r1 + rescue NotImplementedError + s1.close + assert_raise(NotImplementedError) { s2.recv_io } + return + end + r2 = s2.recv_io + assert_equal(r1.stat.ino, r2.stat.ino) + assert_not_equal(r1.fileno, r2.fileno) + ensure + s1.close if s1 + s2.close if s2 + r1.close if r1 + r2.close if r2 + w.close if w + end +end if defined?(UNIXSocket)