1#!perl -w 2 3BEGIN { 4 chdir 't' if -d 't'; 5 require "./test.pl"; 6 set_up_inc('../lib'); 7} 8 9use strict; 10use utf8; 11use open qw( :utf8 :std ); 12 13plan 'no_plan'; 14 15# package klonk doesn't have a stash. 16 17package ���o���; 18use mro 'c3'; 19 20# No parents 21 22package ur���������; 23use mro 'c3'; 24 25# 1 parent 26@ur���������::ISA = 'k���o������'; 27 28package ��; 29use mro 'c3'; 30 31# 2 parents 32@ur���������::ISA = ('k���o������', '���o���'); 33 34package ������ck��; 35use mro 'c3'; 36 37# No parents, has @ISA 38@������ck��::ISA = (); 39 40package ��zzz������; 41use mro 'c3'; 42 43@��zzz������::ISA = ('������ck��', '���o���'); 44 45package ���������; 46use mro 'c3'; 47 48@���������::ISA = ('���o���', '������ck��'); 49 50package main; 51 52my %expect = 53 ( 54 k���o������ => [qw(k���o������)], 55 ur��������� => [qw(ur��������� k���o������ ���o���)], 56 ���o��� => [qw(���o���)], 57 �� => [qw(��)], 58 ������ck�� => [qw(������ck��)], 59 ��zzz������ => [qw(��zzz������ ������ck�� ���o���)], 60 ��������� => [qw(��������� ���o��� ������ck��)], 61 ); 62 63foreach my $package (qw(k���o������ ur��������� ���o��� �� ������ck�� ��zzz������ ���������)) { 64 my $ref = bless [], $package; 65 my $isa = $expect{$package}; 66 is("@{mro::get_linear_isa($package)}", "@$isa", "\@ISA for $package"); 67 68 foreach my $class ($package, @$isa, 'UNIVERSAL') { 69 object_ok($ref, $class, $package); 70 } 71} 72