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