diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-07-19 02:02:33 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-07-19 02:02:33 -0400 |
commit | be8cfb28cb18499cf6ddfff9eff256d08537dd18 (patch) | |
tree | 375f7525e6ee6f39d1ed952edb4be17c88c9a0f6 /t/try/context.t | |
parent | 56de12a2999763ca14aefdf4ac1af1d527ccbc71 (diff) | |
download | parse-keyword-be8cfb28cb18499cf6ddfff9eff256d08537dd18.tar.gz parse-keyword-be8cfb28cb18499cf6ddfff9eff256d08537dd18.zip |
add some (failing) tests
Diffstat (limited to 't/try/context.t')
-rw-r--r-- | t/try/context.t | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/t/try/context.t b/t/try/context.t new file mode 100644 index 0000000..d5ebfe6 --- /dev/null +++ b/t/try/context.t @@ -0,0 +1,55 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use lib 't/try/lib'; + +use Try; + +my $ctx_index = { + VOID => undef, + LIST => 1, + SCALAR => '', +}; +my ($ctx, $die); + +for (sort keys %$ctx_index) { + $ctx = $_; + for (0,1) { + $die = $_; + if ($ctx_index->{$ctx}) { + is_deeply( + [ run() ], + [ $die ? 'catch' : 'try' ], + ); + } + elsif (defined $ctx_index->{$ctx}) { + is_deeply( + [ scalar run() ], + [ $die ? 'catch' : 'try' ], + ); + } + else { + run(); + 1; + } + } +} + +sub run { + try { + is (wantarray, $ctx_index->{$ctx}, "Proper context $ctx in try{}"); + die if $die; + return 'try'; + } + catch { + is (wantarray, $ctx_index->{$ctx}, "Proper context $ctx in catch{}"); + return 'catch'; + } + finally { + is (wantarray, undef, "Proper VOID context in finally{}"); + return 'finally'; + } +} + +done_testing; |