diff options
| author | KOBAYASHI Shuji <[email protected]> | 2019-01-26 18:37:53 +0900 |
|---|---|---|
| committer | KOBAYASHI Shuji <[email protected]> | 2019-01-26 18:37:53 +0900 |
| commit | 1cd57006f37c9f86b85491ceacf6ab285bb85475 (patch) | |
| tree | 976d885cffeddf97228b0b0338d3eef2b80b0af3 | |
| parent | aee67eaf62235196a2d81712bee801e4134108a5 (diff) | |
| download | mruby-1cd57006f37c9f86b85491ceacf6ab285bb85475.tar.gz mruby-1cd57006f37c9f86b85491ceacf6ab285bb85475.zip | |
Refine error message for time interval
Time interval value can be zero, and float (in `Kernel#sleep`)
| -rw-r--r-- | mrbgems/mruby-sleep/src/mrb_sleep.c | 6 | ||||
| -rw-r--r-- | mrbgems/mruby-sleep/test/sleep_test.rb | 16 |
2 files changed, 18 insertions, 4 deletions
diff --git a/mrbgems/mruby-sleep/src/mrb_sleep.c b/mrbgems/mruby-sleep/src/mrb_sleep.c index 0428f29eb..3f8ef90cf 100644 --- a/mrbgems/mruby-sleep/src/mrb_sleep.c +++ b/mrbgems/mruby-sleep/src/mrb_sleep.c @@ -51,7 +51,7 @@ mrb_f_sleep(mrb_state *mrb, mrb_value self) usleep(sec * 1000000); } else { - mrb_raise(mrb, E_ARGUMENT_ERROR, "time interval must be positive integer"); + mrb_raise(mrb, E_ARGUMENT_ERROR, "time interval must not be negative"); } #else mrb_int sec; @@ -60,7 +60,7 @@ mrb_f_sleep(mrb_state *mrb, mrb_value self) if (sec >= 0) { sleep(sec); } else { - mrb_raise(mrb, E_ARGUMENT_ERROR, "time interval must be positive integer"); + mrb_raise(mrb, E_ARGUMENT_ERROR, "time interval must not be negative"); } #endif end = time(0) - beg; @@ -94,7 +94,7 @@ mrb_f_usleep(mrb_state *mrb, mrb_value self) if (usec >= 0) { usleep(usec); } else { - mrb_raise(mrb, E_ARGUMENT_ERROR, "time interval must be positive integer"); + mrb_raise(mrb, E_ARGUMENT_ERROR, "time interval must not be negative integer"); } #ifdef _WIN32 diff --git a/mrbgems/mruby-sleep/test/sleep_test.rb b/mrbgems/mruby-sleep/test/sleep_test.rb index 06a6d73fa..f05b7a30b 100644 --- a/mrbgems/mruby-sleep/test/sleep_test.rb +++ b/mrbgems/mruby-sleep/test/sleep_test.rb @@ -1,13 +1,27 @@ assert("sleep works") do assert_nothing_raised { sleep(1) } + assert_nothing_raised { sleep(0) } end -assert("sleep would not accept negative value") do +assert("sleep would accept non-negative float value") do + skip unless Object.const_defined?(:Float) + assert_nothing_raised { sleep(0.01) } + assert_nothing_raised { sleep(0.0) } + assert_nothing_raised { sleep(-0.0) } +end + +assert("sleep would not accept negative integer value") do assert_raise(ArgumentError) { sleep(-1) } end +assert("sleep would not accept negative float value") do + skip unless Object.const_defined?(:Float) + assert_raise(ArgumentError) { sleep(-0.1) } +end + assert("usleep works") do assert_nothing_raised { usleep(100) } + assert_nothing_raised { usleep(0) } end assert("usleep would not accept negative value") do |
