summaryrefslogtreecommitdiff
path: root/test/socket
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-06-04 02:40:40 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-06-04 02:40:40 +0000
commitf27ff52d1e5bbd16447544761e446fe007d3efcf (patch)
tree938648aaa2ad9628f0b1b490b49db7cc321633e6 /test/socket
parent8a85b8bef1229c3774096c6b804b0210743fb720 (diff)
add a test for file descriptor passing.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/socket')
-rw-r--r--test/socket/test_unix.rb28
1 files changed, 28 insertions, 0 deletions
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)