File: 35-execute_cache.t

package info (click to toggle)
libtext-micromason-perl 2.13-3
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 624 kB
  • ctags: 180
  • sloc: perl: 3,222; makefile: 23
file content (68 lines) | stat: -rw-r--r-- 2,278 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/perl -w

use strict;
use Test::More tests => 17;

use_ok 'Text::MicroMason';

######################################################################

{
    ok my $m = Text::MicroMason->new();

    use vars qw( $sub_fib $count_fib );
    $count_fib = 0;
    my $scr_fib = q{<% my $x = shift; ++ $::count_fib; $x < 3 ? 1 : &$::sub_fib( $x - 1 ) + &$::sub_fib( $x - 2 ) %>};
    ok $sub_fib = $m->compile( text => $scr_fib );

    is $sub_fib->(10), 55;  # Fibonaci calculation works
    is $count_fib, 109;     # Without caching we need to do this a lot
}

######################################################################

{ 
    ok my $m = Text::MicroMason->new( -ExecuteCache );

    use vars qw( $sub_fib $count_fib );
    $count_fib = 0;
    my $scr_fib = q{<% my $x = shift; ++ $::count_fib; $x < 3 ? 1 : &$::sub_fib( $x - 1 ) + &$::sub_fib( $x - 2 ) %>};
    ok $sub_fib = $m->compile( text => $scr_fib );

    is $sub_fib->(10), 55;  # Fibonaci calculation works
    is $count_fib, 10;      # With caching we only do this a few times
}


######################################################################

{ 
    require Text::MicroMason::Cache::Null;
    ok my $m = Text::MicroMason->new( -ExecuteCache,
                                      execute_cache => Text::MicroMason::Cache::Null->new );

    use vars qw( $sub_fib $count_fib );
    $count_fib = 0;
    my $scr_fib = q{<% my $x = shift; ++ $::count_fib; $x < 3 ? 1 : &$::sub_fib( $x - 1 ) + &$::sub_fib( $x - 2 ) %>};
    ok $sub_fib = $m->compile( text => $scr_fib );

    is $sub_fib->(10), 55;  # Fibonaci calculation works
    is $count_fib, 109;     # Without caching we need to do this a lot
}


######################################################################

{
    ok my $m = Text::MicroMason->new( -ExecuteCache, -CompileCache );

    use vars qw( $sub_fib $count_fib );
    $count_fib = 0;
    my $scr_fib = q{<% my $x = shift; ++ $::count_fib; $x < 3 ? 1 : &$::sub_fib( $x - 1 ) + &$::sub_fib( $x - 2 ) %>};
    ok $sub_fib = sub { $m->execute( text => $scr_fib, @_ ) };

    is $sub_fib->(10), 55;  # Fibonaci calculation works
    is $count_fib, 10;      # With caching we only do this a few times
}

######################################################################