diff options
author | nicholas a. evans <nicholas.evans@gmail.com> | 2020-06-09 00:30:43 -0400 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-06-09 18:57:17 +0900 |
commit | b6bae0ec4433bcea6ba94a50de344c2e3b90fee9 (patch) | |
tree | f3e38c24b533d0a590b129d09f77cc9c0ecf402d /test | |
parent | 964829495cbf7bff6ca8a03b6d90f81de4d0efba (diff) | |
download | ruby-b6bae0ec4433bcea6ba94a50de344c2e3b90fee9.tar.gz |
Return seconds slept after Thread.scheduler wait_sleep
Kernel#sleep should still return seconds slept, even when using a
Thread.scheduler. The return value of Scheduler#wait_sleep can be
ignored.
Diffstat (limited to 'test')
-rw-r--r-- | test/fiber/test_sleep.rb | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/test/fiber/test_sleep.rb b/test/fiber/test_sleep.rb index bfb892e2c6..4dadbb58bf 100644 --- a/test/fiber/test_sleep.rb +++ b/test/fiber/test_sleep.rb @@ -14,7 +14,7 @@ class TestFiberSleep < Test::Unit::TestCase 5.times do |i| Fiber do - sleep(i/100.0) + assert(sleep(i/100.0) >= 0) items << i end end @@ -27,4 +27,21 @@ class TestFiberSleep < Test::Unit::TestCase assert_equal ITEMS, items end + + def test_sleep_returns_seconds_slept + seconds = nil + + thread = Thread.new do + scheduler = Scheduler.new + Thread.current.scheduler = scheduler + Fiber do + seconds = sleep(2) + end + end + + thread.join + + assert(seconds >= 2, "actual: %p" % seconds) + end + end |