File: magic.t

package info (click to toggle)
libcache-memcached-fast-perl 0.28-3
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 664 kB
  • sloc: ansic: 8,001; perl: 671; makefile: 13; sh: 6
file content (55 lines) | stat: -rw-r--r-- 1,370 bytes parent folder | download | duplicates (2)
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
use lib 't';

use Config;
use Memd;
use Test2::V0 -target => 'Cache::Memcached::Fast';
use Tie::Array;
use Tie::Hash;
use Tie::Scalar;

tie my $scalar, 'Tie::StdScalar';
tie my @array,  'Tie::StdArray';
tie my %hash,   'Tie::StdHash';

%hash          = %Memd::params;
@array         = @{ $hash{servers} };
$hash{servers} = \@array;

my $memd = CLASS->new( \%hash );

my $key = "Кириллица.в.UTF-8";
$scalar = $key;
ok $memd->set( $scalar, $scalar );
ok exists $memd->get_multi($scalar)->{$scalar};
is $memd->get($scalar), $key;
is $memd->get($key),    $scalar;

@MyScalar::ISA = 'Tie::StdScalar';
sub MyScalar::FETCH {'Другой.ключ'}
tie my $scalar2, 'MyScalar';

ok $memd->set( $scalar2 => $scalar2 );
is $memd->get($scalar2), $scalar2;

SKIP: {
    eval { require Readonly };
    skip "Skipping Readonly tests because the module is not present", 3
        if $@;

    # 'require Readonly' as above can be used to test if the module is
    # present, but won't actually work.  So below we 'use Readonly',
    # but in a string eval.
    eval q{
        use Readonly;

        Readonly my $expires => 3;

        Readonly my $key2 => "Третий.ключ";
        ok $memd->set($key2, $key2, $expires);
        ok exists $memd->get_multi($key2)->{$key2};
        sleep 4;
        ok !exists $memd->get_multi($key2)->{$key2};
    };
}

done_testing;