diff options
Diffstat (limited to 'test/test_posix_mq.rb')
-rw-r--r-- | test/test_posix_mq.rb | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/test/test_posix_mq.rb b/test/test_posix_mq.rb index 7e6ad9d..1f5c9b4 100644 --- a/test/test_posix_mq.rb +++ b/test/test_posix_mq.rb @@ -49,14 +49,40 @@ class Test_POSIX_MQ < Test::Unit::TestCase assert_equal @mq.object_id, clone.object_id end - def test_timed_receive + def test_timed_receive_float interval = 0.01 @mq = POSIX_MQ.new(@path, :rw) assert ! @mq.nonblock? t0 = Time.now assert_raises(Errno::ETIMEDOUT) { @mq.receive "", interval } elapsed = Time.now - t0 - assert elapsed > interval + assert elapsed > interval, elapsed.inspect + assert elapsed < 0.02, elapsed.inspect + end + + def test_timed_receive_divmod + interval = Object.new + def interval.divmod(num) + num == 1 ? [ 0, 0.01 ] : nil + end + @mq = POSIX_MQ.new(@path, :rw) + assert ! @mq.nonblock? + t0 = Time.now + assert_raises(Errno::ETIMEDOUT) { @mq.receive "", interval } + elapsed = Time.now - t0 + assert elapsed >= 0.01, elapsed.inspect + assert elapsed <= 0.02, elapsed.inspect + end + + def test_timed_receive_fixnum + interval = 1 + @mq = POSIX_MQ.new(@path, :rw) + assert ! @mq.nonblock? + t0 = Time.now + assert_raises(Errno::ETIMEDOUT) { @mq.receive "", interval } + elapsed = Time.now - t0 + assert elapsed >= interval, elapsed.inspect + assert elapsed < 1.10, elapsed.inspect end def test_timed_send |