This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
mg.c: Remove poorly considered assertion
[perl5.git] / t / mro / basic_05_c3_utf8.t
CommitLineData
204e6232
BF
1#!./perl
2
3use strict;
4use warnings;
5use utf8;
6use open qw( :utf8 :std );
7
8require q(./test.pl); plan(tests => 2);
9
10=pod
11
12This tests a strange bug found by Matt S. Trout
13while building DBIx::Class. Thanks Matt!!!!
14
15 <A>
16 / \
17<C> <B>
18 \ /
19 <D>
20
21=cut
22
23{
24 package Diᚪၚd_A;
25 use mro 'c3';
26
27 sub ᕘ { 'Diᚪၚd_A::ᕘ' }
28}
29{
30 package Diᚪၚd_B;
31 use base 'Diᚪၚd_A';
32 use mro 'c3';
33
34 sub ᕘ { 'Diᚪၚd_B::ᕘ => ' . (shift)->SUPER::ᕘ }
35}
36{
37 package Diᚪၚd_C;
38 use mro 'c3';
39 use base 'Diᚪၚd_A';
40
41}
42{
43 package Diᚪၚd_D;
44 use base ('Diᚪၚd_C', 'Diᚪၚd_B');
45 use mro 'c3';
46
47 sub ᕘ { 'Diᚪၚd_D::ᕘ => ' . (shift)->SUPER::ᕘ }
48}
49
50ok(eq_array(
51 mro::get_linear_isa('Diᚪၚd_D'),
52 [ qw(Diᚪၚd_D Diᚪၚd_C Diᚪၚd_B Diᚪၚd_A) ]
53), '... got the right MRO for Diᚪၚd_D');
54
55is(Diᚪၚd_D->ᕘ,
56 'Diᚪၚd_D::ᕘ => Diᚪၚd_B::ᕘ => Diᚪၚd_A::ᕘ',
57 '... got the right next::method dispatch path');