/usr/share/perl5/CHI/t/Driver/FastMmap.pm is in libchi-perl 0.60-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 69 70 71 72 73 74 75 76 77 78 79 80 | package CHI::t::Driver::FastMmap;
$CHI::t::Driver::FastMmap::VERSION = '0.60';
use strict;
use warnings;
use CHI::Test;
use Encode;
use File::Temp qw(tempdir);
use base qw(CHI::t::Driver);
my $root_dir;
sub required_modules {
return { 'Cache::FastMmap' => undef };
}
sub new_cache_options {
my $self = shift;
$root_dir ||=
tempdir( "chi-driver-fastmmap-XXXX", TMPDIR => 1, CLEANUP => 1 );
return ( $self->SUPER::new_cache_options(), root_dir => $root_dir );
}
sub test_fm_cache : Tests {
my ($self) = @_;
# Create brand new cache and check defaults
my $cache =
$self->new_cache( root_dir =>
tempdir( "chi-driver-fastmmap-XXXX", TMPDIR => 1, CLEANUP => 1 ) );
my $fm_cache = $cache->fm_cache();
isa_ok( $fm_cache, 'Cache::FastMmap' );
my %defaults = (
unlink_on_exit => 0,
empty_on_exit => 0,
raw_values => 1,
);
while ( my ( $key, $value ) = each(%defaults) ) {
is( $fm_cache->{$key} || 0, $value, "$key = $value by default" );
}
}
sub test_parameter_passthrough : Tests {
my ($self) = @_;
my $cache = $self->new_cache( cache_size => '500k' );
# The number gets munged by FastMmap so it's not equal to 500 * 1024
is( $cache->fm_cache()->{cache_size},
589824,
'cache_size parameter is passed to Cache::FastMmap constructor' );
$cache = $self->new_cache( page_size => 5000, num_pages => 11 );
# Same here, it won't be equal to 5000 * 11
is( $cache->fm_cache()->{cache_size}, 45056,
'page_size and num_pages parameters are passed to Cache::FastMmap constructor'
);
}
sub test_value_too_large : Tests {
my ($self) = @_;
my $cache = $self->new_cache(
page_size => '4k',
num_pages => 11,
on_set_error => 'die'
);
my %values;
$values{small} = 'x' x 3 x 1024;
$values{large} = 'x' x 10 x 1024;
$cache->set( 'small', $values{small} );
is( $cache->get('small'), $values{small}, "got small" );
throws_ok { $cache->set( 'large', $values{large} ) }
qr/error during cache set.*fastmmap set failed/;
}
1;
|