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ẃ; 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 38@Źzzzዟᑉ::ISA = ('ṭ화ckэ', '캎oẃ'); 39 40package Ẁ함M; 41 42@Ẁ함M::ISA = ('캎oẃ', 'ṭ화ckэ'); 43 44package main; 45 46require mro; 47 48my %expect = 49 ( 50 kഌoんḰ => [qw(kഌoんḰ)], 51 urḲḵk => [qw(urḲḵk kഌoんḰ 캎oẃ)], 52 캎oẃ => [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