This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fix NAME of perl5125delta.pod
[perl5.git] / t / mro / pkg_gen_utf8.t
CommitLineData
204e6232
BF
1#!./perl
2
3use strict;
4use warnings;
5use utf8;
6use open qw( :utf8 :std );
7
8chdir 't' if -d 't';
9require q(./test.pl); plan(tests => 7);
10
11require mro;
12
13{
14 package ᕘ;
15 our @ISA = qw//;
16}
17
18ok(!mro::get_pkg_gen('레알ឭ되s놑Eξsᴛ'),
19 "pkg_gen 0 for non-existent pkg");
20
21my $f_gen = mro::get_pkg_gen('ᕘ');
22ok($f_gen > 0, 'ᕘ pkg_gen > 0');
23
24{
25 no warnings 'once';
26 *ᕘ::ᕘ_Ƒ운ℭ = sub { 123 };
27}
28my $new_f_gen = mro::get_pkg_gen('ᕘ');
29ok($new_f_gen > $f_gen, 'ᕘ pkg_gen incs for methods');
30$f_gen = $new_f_gen;
31
32@ᕘ::ISA = qw/Bar/;
33$new_f_gen = mro::get_pkg_gen('ᕘ');
34ok($new_f_gen > $f_gen, 'ᕘ pkg_gen incs for @ISA');
35
36undef %ᕘ::;
37is(mro::get_pkg_gen('ᕘ'), 1, "pkg_gen 1 for undef %Pkg::");
38
39delete $::{"ᕘ::"};
40is(mro::get_pkg_gen('ᕘ'), 0, 'pkg_gen 0 for delete $::{Pkg::}');
41
42delete $::{"ㄑଊx::"};
43push @ㄑଊx::ISA, "Woot"; # should not segfault
44ok(1, "No segfault on modification of ISA in a deleted stash");