develooper Front page | perl.perl5.changes | Postings from July 2009

[perl.git] branch blead, updated. GitLive-blead-1667-g2788925

From:
Nicholas Clark
Date:
July 25, 2009 14:13
Subject:
[perl.git] branch blead, updated. GitLive-blead-1667-g2788925
Message ID:
E1MUoYe-0007rw-0W@camel.booking.com
In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/2788925507d099c7b1e9382ad2ddc4f3d692de28?hp=d80618d26460a93181dddc9ec53c3fceef864290>

- Log -----------------------------------------------------------------
commit 2788925507d099c7b1e9382ad2ddc4f3d692de28
Author: Bram <p5p@perl.wizbit.be>
Date:   Sat Jul 25 22:11:55 2009 +0200

    Tests for commit 1375cf1cf2085f851bb176047d5e60248542f555
-----------------------------------------------------------------------

Summary of changes:
 t/op/universal.t |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 55 insertions(+), 1 deletions(-)

diff --git a/t/op/universal.t b/t/op/universal.t
index a1ff975..a24d7aa 100644
--- a/t/op/universal.t
+++ b/t/op/universal.t
@@ -10,7 +10,7 @@ BEGIN {
     require "./test.pl";
 }
 
-plan tests => 117;
+plan tests => 123;
 
 $a = {};
 bless $a, "Bob";
@@ -253,3 +253,57 @@ use warnings "deprecated";
     like($m, qr/^UNIVERSAL->import is deprecated/,
 	"deprecation warning for UNIVERSAL->import");
 }
+
+# Test: [perl #66112]: change @ISA inside  sub isa
+{
+    package RT66112::A;
+
+    package RT66112::B;
+
+    sub isa {
+	my $self = shift;
+	@ISA = qw/RT66112::A/;
+	return $self->SUPER::isa(@_);
+    }
+
+    package RT66112::C;
+
+    package RT66112::D;
+
+    sub isa {
+	my $self = shift;
+	@RT66112::E::ISA = qw/RT66112::A/;
+	return $self->SUPER::isa(@_);
+    }
+
+    package RT66112::E;
+
+    package main;
+
+    @RT66112::B::ISA = qw//;
+    @RT66112::C::ISA = qw/RT66112::B/;
+    @RT66112::T1::ISA = qw/RT66112::C/;
+    ok(RT66112::T1->isa('RT66112::C'), "modify \@ISA in isa (RT66112::T1 isa RT66112::C)");
+
+    @RT66112::B::ISA = qw//;
+    @RT66112::C::ISA = qw/RT66112::B/;
+    @RT66112::T2::ISA = qw/RT66112::C/;
+    ok(RT66112::T2->isa('RT66112::B'), "modify \@ISA in isa (RT66112::T2 isa RT66112::B)");
+
+    @RT66112::B::ISA = qw//;
+    @RT66112::C::ISA = qw/RT66112::B/;
+    @RT66112::T3::ISA = qw/RT66112::C/;
+    ok(RT66112::T3->isa('RT66112::A'), "modify \@ISA in isa (RT66112::T3 isa RT66112::A)");
+
+    @RT66112::E::ISA = qw/RT66112::D/;
+    @RT66112::T4::ISA = qw/RT66112::E/;
+    ok(RT66112::T4->isa('RT66112::E'), "modify \@ISA in isa (RT66112::T4 isa RT66112::E)");
+
+    @RT66112::E::ISA = qw/RT66112::D/;
+    @RT66112::T5::ISA = qw/RT66112::E/;
+    ok(! RT66112::T5->isa('RT66112::D'), "modify \@ISA in isa (RT66112::T5 not isa RT66112::D)");
+
+    @RT66112::E::ISA = qw/RT66112::D/;
+    @RT66112::T6::ISA = qw/RT66112::E/;
+    ok(RT66112::T6->isa('RT66112::A'), "modify \@ISA in isa (RT66112::T6 isa RT66112::A)");
+}

--
Perl5 Master Repository



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About