This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Make all warnings and error messages UTF-8 clean
[perl5.git] / t / mro / dbic_dfs_utf8.t
1 #!./perl
2
3 use strict;
4 use warnings;
5 use utf8;
6 use open qw( :utf8 :std );
7
8 require q(./test.pl); plan(tests => 1);
9
10 =pod
11
12 This example is taken from the inheritance graph of DBIx::Class::Coレ in DBIx::Class v0.07002:
13 (No ASCII art this time, this graph is insane)
14
15 The xx:: prefixes are just to be sure these bogus declarations never stomp on real ones
16
17 =cut
18
19 {
20     package Ẋẋ::ḐʙIX::Cl았::Coレ; use mro 'dfs';
21     our @ISA = qw/
22       Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ
23       Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ
24       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ
25       Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต
26       Ẋẋ::ḐʙIX::Cl았::ᛕķ
27       Ẋẋ::ḐʙIX::Cl았::ロẈ
28       Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ
29       Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ
30     /;
31
32     package Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ; use mro 'dfs';
33     our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /;
34
35     package Ẋẋ::ḐʙIX::Cl았::ロẈ; use mro 'dfs';
36     our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;
37
38     package Ẋẋ::ḐʙIX::Cl았; use mro 'dfs';
39     our @ISA = qw/
40       Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗
41       xx::Cl았::닽Ӕ::앛쳇sᚖ
42     /;
43
44     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ; use mro 'dfs';
45     our @ISA = qw/
46       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS
47       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ
48       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ
49       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś
50       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え
51       Ẋẋ::ḐʙIX::Cl았
52     /;
53
54     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS; use mro 'dfs';
55     our @ISA = qw/
56       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ
57       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn
58       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ
59       Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ
60     /;
61
62     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś; use mro 'dfs';
63     our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;
64
65     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え; use mro 'dfs';
66     our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;
67
68     package Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต; use mro 'dfs';
69     our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;
70
71     package Ẋẋ::ḐʙIX::Cl았::ᛕķ; use mro 'dfs';
72     our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /;
73
74     package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ; use mro 'dfs';
75     our @ISA = qw/
76       Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ
77       Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy
78     /;
79
80     package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy; use mro 'dfs';
81     our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /;
82
83     package xx::Cl았::닽Ӕ::앛쳇sᚖ; our @ISA = (); use mro 'dfs';
84     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ; our @ISA = (); use mro 'dfs';
85     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn; our @ISA = (); use mro 'dfs';
86     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ; our @ISA = (); use mro 'dfs';
87     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ; our @ISA = (); use mro 'dfs';
88     package Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗; our @ISA = (); use mro 'dfs';
89     package Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ; our @ISA = (); use mro 'dfs';
90     package Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ; our @ISA = (); use mro 'dfs';
91     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ; our @ISA = (); use mro 'dfs';
92     package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ; our @ISA = (); use mro 'dfs';
93 }
94
95 ok(eq_array(
96     mro::get_linear_isa('Ẋẋ::ḐʙIX::Cl았::Coレ'),
97     [qw/
98         Ẋẋ::ḐʙIX::Cl았::Coレ
99         Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ
100         Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ
101         Ẋẋ::ḐʙIX::Cl았::ロẈ
102         Ẋẋ::ḐʙIX::Cl았
103         Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗
104         xx::Cl았::닽Ӕ::앛쳇sᚖ
105         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ
106         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS
107         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ
108         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn
109         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ
110         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ
111         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ
112         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ
113         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś
114         Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え
115         Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต
116         Ẋẋ::ḐʙIX::Cl았::ᛕķ
117         Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ
118         Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ
119         Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy
120     /]
121 ), '... got the right DFS merge order for Ẋẋ::ḐʙIX::Cl았::Coレ');