diff options
Diffstat (limited to 't/release-pp-22-overload-can-bug.t')
-rw-r--r-- | t/release-pp-22-overload-can-bug.t | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/t/release-pp-22-overload-can-bug.t b/t/release-pp-22-overload-can-bug.t new file mode 100644 index 0000000..44acf60 --- /dev/null +++ b/t/release-pp-22-overload-can-bug.t @@ -0,0 +1,50 @@ + + +use Test::More; + +BEGIN { + unless ( $ENV{RELEASE_TESTING} ) { + plan skip_all => 'these tests are for release testing'; + } + + $ENV{PV_TEST_PERL} = 1; +} + +use strict; +use warnings; + +use Params::Validate qw(validate); +use Test::More; + +{ + package Overloaded; + + use overload 'bool' => sub {0}; + + sub new { bless {} } + + sub foo {1} +} + +my $ovl = Overloaded->new; + +{ + eval { + my @p = ( object => $ovl ); + validate( @p, { object => { isa => 'Overloaded' } } ); + }; + + is( $@, q{}, 'overloaded object->isa' ); +} + +{ + eval { + my @p = ( object => $ovl ); + validate( @p, { object => { can => 'foo' } } ); + }; + + is( $@, q{}, 'overloaded object->foo' ); +} + +done_testing(); + |