diff options
Diffstat (limited to 'contrib/perl5/t/op/die.t')
-rwxr-xr-x | contrib/perl5/t/op/die.t | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/contrib/perl5/t/op/die.t b/contrib/perl5/t/op/die.t new file mode 100755 index 0000000..d473ed6 --- /dev/null +++ b/contrib/perl5/t/op/die.t @@ -0,0 +1,43 @@ +#!./perl + +print "1..10\n"; + +$SIG{__DIE__} = sub { print ref($_[0]) ? ("ok ",$_[0]->[0]++,"\n") : @_ } ; + +$err = "ok 1\n"; +eval { + die $err; +}; + +print "not " unless $@ eq $err; +print "ok 2\n"; + +$x = [3]; +eval { die $x; }; + +print "not " unless $x->[0] == 4; +print "ok 4\n"; + +eval { + eval { + die [ 5 ]; + }; + die if $@; +}; + +eval { + eval { + die bless [ 7 ], "Error"; + }; + die if $@; +}; + +print "not " unless ref($@) eq "Out"; +print "ok 10\n"; + +package Error; + +sub PROPAGATE { + print "ok ",$_[0]->[0]++,"\n"; + bless [$_[0]->[0]], "Out"; +} |