X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Ffuture.t;fp=t%2Ffuture.t;h=1f61397571be6319ff207bf5f1b756a8ab582ef6;hb=c7db0954d5c41fd117a7cbce5e88f9a89a9a4a54;hp=28cfd7a1c541b7a4a8f540977449dbbef32b2f6b;hpb=b0dd297177ca9b7daaa3028ea4da1524ed3316ff;p=scpubgit%2FTenDotTcl.git diff --git a/t/future.t b/t/future.t index 28cfd7a..1f61397 100644 --- a/t/future.t +++ b/t/future.t @@ -8,11 +8,14 @@ ok {![f1 is_ready]} "Future not yet ready" set ready_args "" set done_args "" +set do_not_set_this "" f1 on_ready [list set "[namespace current]::ready_args"] f1 on_done [list set "[namespace current]::done_args"] +f1 on_fail [list set "[namespace current]::do_not_set_this"] + f1 done foo bar ok {[f1 is_ready]} "Future ready" @@ -25,6 +28,32 @@ is [lindex $done_args 0] foo "Right first arg" is [lindex $done_args 1] bar "Right second arg" +is $do_not_set_this "" "on_fail not called" + is [f1 get] "foo bar" "get return ok" +f1 destroy + +ten::future f2 + +f2 done one two three + +set done_args "" + +f2 on_done [list set "[namespace current]::done_args"] + +is $done_args "one two three" "on_done called on completed future" + +set ready_args "" + +f2 on_ready [list set "[namespace current]::ready_args"] + +is $ready_args {::f2} "on_ready called on completed future" + +set do_not_set_this "" + +f2 on_fail [list set "[namespace current]::do_not_set_this"] + +is $do_not_set_this "" "on_fail not called on completed future" + done_testing