diff options
Diffstat (limited to 't/mro/isa_c3_utf8.t')
-rw-r--r-- | t/mro/isa_c3_utf8.t | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/t/mro/isa_c3_utf8.t b/t/mro/isa_c3_utf8.t new file mode 100644 index 0000000000..0e69e04eba --- /dev/null +++ b/t/mro/isa_c3_utf8.t @@ -0,0 +1,71 @@ +#!perl -w + +BEGIN { + chdir 't' if -d 't'; + @INC = '../lib'; + require "./test.pl"; +} + +use strict; +use utf8; +use open qw( :utf8 :std ); + +plan 'no_plan'; + +# package klonk doesn't have a stash. + +package 캎oẃ; +use mro 'c3'; + +# No parents + +package urḲḵk; +use mro 'c3'; + +# 1 parent +@urḲḵk::ISA = 'kഌoんḰ'; + +package к; +use mro 'c3'; + +# 2 parents +@urḲḵk::ISA = ('kഌoんḰ', '캎oẃ'); + +package ṭ화ckэ; +use mro 'c3'; + +# No parents, has @ISA +@ṭ화ckэ::ISA = (); + +package Źzzzዟᑉ; +use mro 'c3'; + +@Źzzzዟᑉ::ISA = ('ṭ화ckэ', '캎oẃ'); + +package Ẁ함M; +use mro 'c3'; + +@Ẁ함M::ISA = ('캎oẃ', 'ṭ화ckэ'); + +package main; + +my %expect = + ( + kഌoんḰ => [qw(kഌoんḰ)], + urḲḵk => [qw(urḲḵk kഌoんḰ 캎oẃ)], + 캎oẃ => [qw(캎oẃ)], + к => [qw(к)], + ṭ화ckэ => [qw(ṭ화ckэ)], + Źzzzዟᑉ => [qw(Źzzzዟᑉ ṭ화ckэ 캎oẃ)], + Ẁ함M => [qw(Ẁ함M 캎oẃ ṭ화ckэ)], + ); + +foreach my $package (qw(kഌoんḰ urḲḵk 캎oẃ к ṭ화ckэ Źzzzዟᑉ Ẁ함M)) { + my $ref = bless [], $package; + my $isa = $expect{$package}; + is("@{mro::get_linear_isa($package)}", "@$isa", "\@ISA for $package"); + + foreach my $class ($package, @$isa, 'UNIVERSAL') { + isa_ok($ref, $class, $package); + } +} |