use
constant
REDISSERVER
=>
'localhost:63379'
;
sub
startRedis {
note
"Starting Redis server"
;
mkdir
't/redis/run'
;
system
(
'redis-server'
,
't/redis/redis.conf'
);
waitForRedis();
}
sub
stopRedis {
my
$p
= pid();
note
"Stopping Redis server ($p)"
;
kill
'KILL'
,
$p
;
note
'Cleaning redis database'
;
`rm -rf t/redis/run`;
}
sub
pid {
open
F,
't/redis/run/pid'
or
die
$!;
my
$pid
= <F>;
close
F;
chomp
$pid
;
return
$pid
;
}
sub
waitForRedis {
my
$waitloop
= 0;
note
"Waiting for Redis server to be available"
;
while
(
$waitloop
< 100 ) {
my
$r
= Redis->new(
server
=> REDISSERVER);
last
if
(
$r
and
$r
->set(
'test'
,
'test'
) );
$waitloop
++;
usleep 100000;
}
die
"Timed out waiting for LDAP server to start"
if
$waitloop
== 100;
note
"Redis server available at localhost:63379"
;
}
1;