From eb76cd907a0ec3bb2ef1dcf8936b95e7bd4bef19 Mon Sep 17 00:00:00 2001 From: "sgjesse@google.com" Date: Mon, 8 Apr 2013 10:04:45 +0000 Subject: [PATCH] Add more tests and argument check to Process.sleep R=ager@google.com Review URL: https://codereview.chromium.org//13497008 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21054 260f80e4-7a28-3924-810f-c04153c831b5 --- sdk/lib/io/process.dart | 6 +++++- tests/standalone/io/sleep_test.dart | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/sdk/lib/io/process.dart b/sdk/lib/io/process.dart index 8ceb41d9e7d..1c9fddb985e 100644 --- a/sdk/lib/io/process.dart +++ b/sdk/lib/io/process.dart @@ -46,7 +46,11 @@ set exitCode(int status) { * in a isolate while it is blocked in a [sleep] call. */ void sleep(Duration duration) { - _ProcessUtils._sleep(duration.inMilliseconds); + int milliseconds = duration.inMilliseconds; + if (milliseconds < 0) { + throw new ArgumentError("sleep: duration cannot be negative"); + } + _ProcessUtils._sleep(milliseconds); } /** diff --git a/tests/standalone/io/sleep_test.dart b/tests/standalone/io/sleep_test.dart index d953bf9f1a2..26646fa87a6 100644 --- a/tests/standalone/io/sleep_test.dart +++ b/tests/standalone/io/sleep_test.dart @@ -13,7 +13,10 @@ test(int milliseconds) { } main() { + test(0); test(1); test(10); test(100); + Expect.throws(() => sleep(new Duration(milliseconds: -1)), + (e) => e is ArgumentError); }