]> git.vpit.fr Git - perl/modules/Lexical-Types.git/blobdiff - t/11-args.t
Replace $] by "$]"
[perl/modules/Lexical-Types.git] / t / 11-args.t
index 36047c5f66455574f67e5b00928e85096544740e..a1018905af479f52071db03dff4b5c8e74eb4bdd 100644 (file)
@@ -3,13 +3,14 @@
 use strict;
 use warnings;
 
-use Test::More tests => 12 + 6;
+use Test::More tests => 14 + 6;
 
 {
  package Lexical::Types::Test::LTT;
 
  sub TYPEDSCALAR {
   $_[1] = (caller(0))[2];
+  local $Test::Builder::Level = $Test::Builder::Level + 1;
   Test::More::is($_[2], 'LTT', 'original type is ok');
   ();
  }
@@ -24,6 +25,12 @@ use Test::More tests => 12 + 6;
  sub TYPEDSCALAR { 1 .. 2 }
 }
 
+{
+ package Lexical::Types::Test::LTT3;
+
+ sub TYPEDSCALAR { die 'coconut' }
+}
+
 {
  package LTT;
 
@@ -81,7 +88,7 @@ use Test::More tests => 12 + 6;
  my $expect = qr/^Invalid ARRAY reference/;
  local $@;
  eval q[
-  use Lexical::Types as => [ qw/a b c/ ];
+  use Lexical::Types as => [ qw<a b c> ];
   my LTT $x;
  ];
  like $@, $expect, 'as => array';
@@ -89,10 +96,10 @@ use Test::More tests => 12 + 6;
 
 {
  my $expect = qr/^Lexical::Types mangler should return zero, one or two scalars, but got 3/;
- diag 'This will throw two warnings' if $] >= 5.008008 and $] < 5.009;
+ diag 'This will throw two warnings' if "$]" >= 5.008008 and "$]" < 5.009;
  local $@;
  eval q[
-  use Lexical::Types as => sub { qw/a b c/ };
+  use Lexical::Types as => sub { qw<a b c> };
   my LTT $x;
  ];
  like $@, $expect, 'as => code, returning three scalars';
@@ -108,5 +115,26 @@ use Test::More tests => 12 + 6;
  like $@, $expect, 'as => code, initializing by returning two scalars';
 }
 
+{
+ my $expect = qr/^banana at \(eval \d+\) line 2/;
+ diag 'This will throw two more warnings' if "$]" >= 5.008008 and "$]" < 5.009;
+ local $@;
+ eval q[
+  use Lexical::Types as => sub { die 'banana' };
+  my LTT $x;
+ ];
+ like $@, $expect, 'as => sub { die }';
+}
+
+{
+ my $expect = qr/^coconut at \Q$0\E line 31/;
+ local $@;
+ eval q[
+  use Lexical::Types;
+  my Lexical::Types::Test::LTT3 $x;
+ ];
+ like $@, $expect, 'die in TYPEDSCALAR';
+}
+
 my LTT $x;
 is $x, undef, 'out of scope';