EV-Redis
view release on metacpan or search on metacpan
t/options.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::RedisServer;
use EV;
use EV::Redis;
use lib 't/lib';
use RedisTestHelper qw(get_redis_version);
my $redis_server;
eval {
$redis_server = Test::RedisServer->new;
} or plan skip_all => 'redis-server is required to this test';
my %connect_info = $redis_server->connect_info;
# --- keepalive ---
{
my $r = EV::Redis->new;
is $r->keepalive, 0, 'keepalive default is 0';
$r->keepalive(15);
is $r->keepalive, 15, 'keepalive setter/getter roundtrip';
$r->keepalive(0);
is $r->keepalive, 0, 'keepalive can be disabled';
}
{
my $r = EV::Redis->new(keepalive => 30);
is $r->keepalive, 30, 'keepalive via constructor';
}
{
eval { EV::Redis->new->keepalive(-1) };
like $@, qr/non-negative/, 'keepalive rejects negative';
eval { EV::Redis->new->keepalive(2_000_001) };
like $@, qr/too large/, 'keepalive rejects too large';
}
# keepalive set while connected
{
my $r = EV::Redis->new(
path => $connect_info{sock},
on_error => sub { },
);
my $t; $t = EV::timer 0.1, 0, sub {
undef $t;
$r->keepalive(10);
is $r->keepalive, 10, 'keepalive set while connected';
$r->disconnect;
};
EV::run;
}
# --- prefer_ipv4 / prefer_ipv6 ---
{
my $r = EV::Redis->new;
is $r->prefer_ipv4, 0, 'prefer_ipv4 default is 0';
is $r->prefer_ipv6, 0, 'prefer_ipv6 default is 0';
$r->prefer_ipv4(1);
is $r->prefer_ipv4, 1, 'prefer_ipv4 set to 1';
is $r->prefer_ipv6, 0, 'prefer_ipv6 cleared when ipv4 set';
$r->prefer_ipv6(1);
is $r->prefer_ipv6, 1, 'prefer_ipv6 set to 1';
is $r->prefer_ipv4, 0, 'prefer_ipv4 cleared when ipv6 set';
$r->prefer_ipv6(0);
is $r->prefer_ipv6, 0, 'prefer_ipv6 cleared';
is $r->prefer_ipv4, 0, 'prefer_ipv4 still 0';
}
{
my $r = EV::Redis->new(prefer_ipv4 => 1);
is $r->prefer_ipv4, 1, 'prefer_ipv4 via constructor';
is $r->prefer_ipv6, 0, 'prefer_ipv6 not set';
}
{
my $r = EV::Redis->new(prefer_ipv6 => 1);
is $r->prefer_ipv6, 1, 'prefer_ipv6 via constructor';
is $r->prefer_ipv4, 0, 'prefer_ipv4 not set';
}
# --- source_addr ---
{
my $r = EV::Redis->new;
ok !defined $r->source_addr, 'source_addr default is undef';
$r->source_addr('192.168.1.1');
is $r->source_addr, '192.168.1.1', 'source_addr setter/getter roundtrip';
$r->source_addr('10.0.0.1');
is $r->source_addr, '10.0.0.1', 'source_addr can be changed';
$r->source_addr(undef);
ok !defined $r->source_addr, 'source_addr cleared with undef';
}
{
my $r = EV::Redis->new(source_addr => '127.0.0.1');
is $r->source_addr, '127.0.0.1', 'source_addr via constructor';
}
# --- tcp_user_timeout ---
( run in 1.313 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )