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
17packageoẃ;
18
19# No parents
20
21package urḲḵk;
22
23# 1 parent
24@urḲḵk::ISA = 'kഌoんḰ';
25
26package к;
27
28# 2 parents
29@urḲḵk::ISA = ('kഌoんḰ', '캎oẃ');
30
31package ṭ화ckэ;
32
33# No parents, has @ISA
34@ṭ화ckэ::ISA = ();
35
36package Źzzzዟᑉ;
37
38zzzዟᑉ::ISA = ('ṭ화ckэ', '캎oẃ');
39
40package Ẁ함M;
41
42@Ẁ함M::ISA = ('캎oẃ', 'ṭ화ckэ');
43
44package main;
45
46require mro;
47
48my %expect =
49    (
50     koんḰ => [qw(kഌoんḰ)],
51     urḲḵk => [qw(urḲḵk kഌoんḰ 캎oẃ)],
52oẃ => [qw(캎oẃ)],
53     к => [qw(к)],
54     ṭ화ckэ => [qw(ṭ화ckэ)],
55     Źzzzዟᑉ => [qw(Źzzzዟᑉ ṭ화ckэ 캎oẃ)],
56     Ẁ함M => [qw(Ẁ함M 캎oẃ ṭ화ckэ)],
57    );
58
59foreach my $package (qw(kഌoんḰ urḲḵk 캎oẃ к ṭ화ckэ Źzzzዟᑉ Ẁ함M)) {
60    my $ref = bless [], $package;
61    my $isa = $expect{$package};
62    is("@{mro::get_linear_isa($package)}", "@$isa", "\@ISA for $package");
63
64    foreach my $class ($package, @$isa, 'UNIVERSAL') {
65	object_ok($ref, $class, $package);
66    }
67}
68