MRO tests for isa() and package aliases
Torsten Schoenfeld [Sat, 15 Nov 2008 21:24:40 +0000 (22:24 +0100)]
Message-ID: <491F3008.4060205@gmx.de>

p4raw-id: //depot/perl@34839

MANIFEST
t/mro/package_aliases.t [new file with mode: 0644]

index b0593d9..5ddeec6 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -3919,6 +3919,7 @@ t/mro/next_NEXT.t         mro tests
 t/mro/next_skip.t              mro tests
 t/mro/overload_c3.t            mro tests
 t/mro/overload_dfs.t           mro tests
+t/mro/package_aliases.t                mro tests
 t/mro/pkg_gen.t                mro tests
 t/mro/recursion_c3.t           mro tests
 t/mro/recursion_dfs.t          mro tests
diff --git a/t/mro/package_aliases.t b/t/mro/package_aliases.t
new file mode 100644 (file)
index 0000000..b8d0316
--- /dev/null
@@ -0,0 +1,33 @@
+#!./perl
+
+BEGIN {
+    unless (-d 'blib') {
+        chdir 't' if -d 't';
+        @INC = '../lib';
+    }
+}
+
+use strict;
+use warnings;
+require q(./test.pl); plan(tests => 4);
+
+{
+    package New;
+    use strict;
+    use warnings;
+
+    package Old;
+    use strict;
+    use warnings;
+
+    {
+      no strict 'refs';
+      *{'Old::'} = *{'New::'};
+    }
+}
+
+ok (Old->isa (New::), 'Old inherits from New');
+ok (New->isa (Old::), 'New inherits from Old');
+
+isa_ok (bless ({}, Old::), New::, 'Old object');
+isa_ok (bless ({}, New::), Old::, 'New object');