X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F11-args.t;fp=t%2F11-args.t;h=0000000000000000000000000000000000000000;hb=05e35b66f2a12a2416a5964be485a4f741682a47;hp=a049ea765b1b01eb1ff4e53df1f7c090474e3634;hpb=55716e9a7414ca5da96259d66fd0f20c1cbba893;p=perl%2Fmodules%2FLexical-Types.git diff --git a/t/11-args.t b/t/11-args.t deleted file mode 100644 index a049ea7..0000000 --- a/t/11-args.t +++ /dev/null @@ -1,140 +0,0 @@ -#!perl -T - -use strict; -use warnings; - -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'); - (); - } - - no warnings 'once'; - *TS = \&TYPEDSCALAR; -} - -{ - package Lexical::Types::Test::LTT2; - - sub TYPEDSCALAR { 1 .. 2 } -} - -{ - package Lexical::Types::Test::LTT3; - - sub TYPEDSCALAR { die 'coconut' } -} - -{ - package LTT; - - no warnings 'once'; - *ts = \&Lexical::Types::Test::LTT::TYPEDSCALAR -} - -{ - use Lexical::Types as => 'Lexical::Types::Test'; - my LTT $x; - is $x, __LINE__-1, 'as => string, without trailing ::'; - - no Lexical::Types; - my LTT $y; - is $y, undef, 'after no'; -} - -{ - use Lexical::Types as => 'Lexical::Types::Test::'; - my LTT $x; - is $x, __LINE__-1, 'as => string, with trailing ::'; -} - -{ - use Lexical::Types as => sub { return }; - my LTT $x; - is $x, undef, 'as => code, returning nothing'; -} - -{ - use Lexical::Types as => sub { 'Lexical::Types::Test::LTT' }; - my LTT $x; - is $x, __LINE__-1, 'as => code, returning package name'; -} - -{ - use Lexical::Types as => sub { 'Lexical::Types::Test::LTT', undef }; - my LTT $x; - is $x, __LINE__-1, 'as => code, returning package name and undef'; -} - -{ - use Lexical::Types as => sub { undef, 'ts' }; - my LTT $x; - is $x, __LINE__-1, 'as => code, returning undef and method name'; -} - -{ - use Lexical::Types as => sub { 'Lexical::Types::Test::LTT', 'TS' }; - my LTT $x; - is $x, __LINE__-1, 'as => code, returning package and method name'; -} - -{ - my $expect = qr/^Invalid ARRAY reference/; - local $@; - eval q[ - use Lexical::Types as => [ qw ]; - my LTT $x; - ]; - like $@, $expect, 'as => array'; -} - -{ - my $expect = qr/^Lexical::Types mangler should return zero, one or two scalars, but got 3/; - diag 'This will throw two warnings' if "$]" >= 5.008_008 and "$]" < 5.009; - local $@; - eval q[ - use Lexical::Types as => sub { qw }; - my LTT $x; - ]; - like $@, $expect, 'as => code, returning three scalars'; -} - -{ - my $expect = qr/^Typed scalar initializer method should return zero or one scalar, but got 2/; - local $@; - eval q[ - use Lexical::Types as => sub { 'Lexical::Types::Test::LTT2' }; - my LTT $x; - ]; - 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.008_008 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';