This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
41ac361dac929321f33d53c7ff4b139e2bd4eb97
[perl5.git] / t / uni / cache.t
1 BEGIN {
2     chdir 't' if -d 't';
3     require './test.pl';
4     set_up_inc('../lib');
5     skip_all_without_unicode_tables();
6 }
7
8 plan tests => 1;
9
10 # Looks to see if a "do 'unicore/lib/Scx/Hira.pl'" is called more than once, by
11 # putting a compile sub first on the library path;
12 # XXX Kludge: requires exact path, which might change, and has deep knowledge
13 # of how utf8_heavy.pl works, which might also change.
14
15 BEGIN { # Make sure catches compile time references
16     $::count = 0;
17     unshift @INC, sub {
18        $::count++ if $_[1] eq 'unicore/lib/Scx/Hira.pl';
19     };
20 }
21
22 my $s = 'foo';
23
24 # The second value is to prevent an optimization that exists at the time this
25 # is written to re-use a property without trying to look it up if it is the
26 # only thing in a character class.  They differ in order to make sure that any
27 # future optimizations that don't re-use identical character classes don't come
28 # into play
29 $s =~ m/[\p{Hiragana}\x{101}]/;
30 $s =~ m/[\p{Hiragana}\x{102}]/;
31 $s =~ m/[\p{Hiragana}\x{103}]/;
32 $s =~ m/[\p{Hiragana}\x{104}]/;
33
34 is($::count, 1, "Swatch hash caching kept us from reloading swatch hash.");