summaryrefslogtreecommitdiff
path: root/t/mro/isa_c3_utf8.t
diff options
context:
space:
mode:
Diffstat (limited to 't/mro/isa_c3_utf8.t')
-rw-r--r--t/mro/isa_c3_utf8.t71
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);
+ }
+}