summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-12 11:41:30 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-12 11:41:30 +0000
commit167f6b291f4cf697048af42820c82d8cf357e0a7 (patch)
tree750e7c085bad1a44d7856f5d650ae3a5c7a75f61 /test
parente0eaa117d2bae9968258ec0e14bab667998abe66 (diff)
merge revision(s) 33256:
* thread.c (rb_thread_select): fix to ignore an argument modification of rb_thread_fd_select(). based on a patch by Eric Wong. [Bug #5306] [ruby-core:39435] * thread.c (rb_fd_rcopy): New. for reverse fd copy. * test/-ext-/old_thread_select/test_old_thread_select.rb (test_old_select_false_positive): test for bug5306. * ext/-test-/old_thread_select/old_thread_select.c (fdset2array): New. convert fdsets to array. * ext/-test-/old_thread_select/old_thread_select.c (old_thread_select): return 'read', 'write', 'except' argument of rb_thread_select() to ruby script. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@33257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/-ext-/old_thread_select/test_old_thread_select.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/-ext-/old_thread_select/test_old_thread_select.rb b/test/-ext-/old_thread_select/test_old_thread_select.rb
index a7db7bdf99..18235b845a 100644
--- a/test/-ext-/old_thread_select/test_old_thread_select.rb
+++ b/test/-ext-/old_thread_select/test_old_thread_select.rb
@@ -23,6 +23,20 @@ class TestOldThreadSelect < Test::Unit::TestCase
end
end
+ def test_old_select_false_positive
+ bug5306 = '[ruby-core:39435]'
+ with_pipe do |r2, w2|
+ with_pipe do |r, w|
+ t0 = Time.now
+ w.syswrite '.'
+ rfds = [ r.fileno, r2.fileno ]
+ rc = IO.old_thread_select(rfds, nil, nil, nil)
+ assert_equal [ r.fileno ], rfds, bug5306
+ assert_equal 1, rc, bug5306
+ end
+ end
+ end
+
def test_old_select_read_write_check
with_pipe do |r, w|
w.syswrite('.')