summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-10-11 02:33:33 +0000
committerkosaki <kosaki@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-10-11 02:33:33 +0000
commit62b1932820059be02452176006d0c09dc12b1ba0 (patch)
tree76ec9f0c276eb8f188e8d6212aefe55c958b072c
parent82f2c168494be1905115fe5398a3ff0da4bc2b05 (diff)
downloadruby-62b1932820059be02452176006d0c09dc12b1ba0.tar.gz
merge revision(s) 33296:
* test/-ext-/old_thread_select/test_old_thread_select.rb: select() with timeout may return early in old Linux kernels with 250 Hz tickrate and no dynticks, so skip everything older than 2.6.32 (which has long term support). And, Make the timing assertions consistently use assert_operator with timing difference in error message Patch by Eric Wong. [Bug #5335] [ruby-core:39618] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@33456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--test/-ext-/old_thread_select/test_old_thread_select.rb19
2 files changed, 22 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 94998dd1f8..c4ea779a3c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Mon Oct 10 22:33:12 2011 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
+
+ * test/-ext-/old_thread_select/test_old_thread_select.rb:
+ select() with timeout may return early in old Linux kernels
+ with 250 Hz tickrate and no dynticks, so skip everything older
+ than 2.6.32 (which has long term support).
+ And, Make the timing assertions consistently use assert_operator with
+ timing difference in error message
+ Patch by Eric Wong. [Bug #5335] [ruby-core:39618]
+
Tue Oct 4 16:17:50 2011 NARUSE, Yui <naruse@ruby-lang.org>
* lib/time.rb (Time.strptime): use Time.at if d[:seconds] is set.
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 b70e1d3862..5653dbc021 100644
--- a/test/-ext-/old_thread_select/test_old_thread_select.rb
+++ b/test/-ext-/old_thread_select/test_old_thread_select.rb
@@ -3,6 +3,8 @@ require 'test/unit'
class TestOldThreadSelect < Test::Unit::TestCase
require '-test-/old_thread_select/old_thread_select'
+ ANCIENT_LINUX = RUBY_PLATFORM =~ /linux/ && `uname -r`.chomp < '2.6.32'
+
def with_pipe
r, w = IO.pipe
begin
@@ -19,9 +21,9 @@ class TestOldThreadSelect < Test::Unit::TestCase
rc = IO.old_thread_select([r.fileno], nil, nil, 0.001)
diff = Time.now - t0
assert_equal 0, rc
- assert_operator diff, :>=, 0.001, "returned too early"
+ assert_operator diff, :>=, 0.001, "returned too early: diff=#{diff}"
end
- end
+ end unless ANCIENT_LINUX
def test_old_select_error_timeout
bug5299 = '[ruby-core:39380]'
@@ -30,9 +32,9 @@ class TestOldThreadSelect < Test::Unit::TestCase
rc = IO.old_thread_select(nil, nil, [r.fileno], 0.001)
diff = Time.now - t0
assert_equal 0, rc, bug5299
- assert_operator diff, :>=, 0.001, "returned too early"
+ assert_operator diff, :>=, 0.001, "returned too early: diff=#{diff}"
end
- end
+ end unless ANCIENT_LINUX
def test_old_select_false_positive
bug5306 = '[ruby-core:39435]'
@@ -76,15 +78,18 @@ class TestOldThreadSelect < Test::Unit::TestCase
end
rc = nil
- t0 = Time.now
+ diff = nil
with_pipe do |r,w|
assert_nothing_raised do
+ t0 = Time.now
rc = IO.old_thread_select([r.fileno], nil, nil, 1)
+ diff = Time.now - t0
end
end
- diff = Time.now - t0
- assert_operator diff, :>=, 1.0, "interrupted or short wait"
+ unless ANCIENT_LINUX
+ assert_operator diff, :>=, 1, "interrupted or short wait: diff=#{diff}"
+ end
assert_equal 0, rc
assert_equal true, thr.value
assert_not_equal false, received, "SIGINT not received"