diff options
author | Eric Wong <normalperson@yhbt.net> | 2010-12-24 18:11:04 -0800 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2010-12-24 18:12:03 -0800 |
commit | 31dee76d5ef41ec5524c3e4dfb802db4a7a468ef (patch) | |
tree | 118425e0b84920c716e85366678d8cefef846781 /test | |
parent | 748d4aa2d3ece18db7d48c355ce77c877e4d3bb9 (diff) | |
download | ruby_posix_mq-31dee76d5ef41ec5524c3e4dfb802db4a7a468ef.tar.gz |
This function isn't exported in the standard Ruby headers, it returns an aggregate value and isn't available in Rubinius, either, so nuke it. While we're at it, use clock_gettime() instead of gettimeofday() to avoid unnecessary timeval usage since mq_send/mq_receive rely on higher-precision timespecs instead.
Diffstat (limited to 'test')
-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 |