NAME
Test::mysqld - mysqld runner for tests
SYNOPSIS
use
DBI;
use
Test::mysqld;
use
Test::More;
my
$mysqld
= Test::mysqld->new(
my_cnf
=> {
'skip-networking'
=>
''
,
# no TCP socket
}
) or plan
skip_all
=>
$Test::mysqld::errstr
;
plan
tests
=> XXX;
my
$dbh
= DBI->
connect
(
$mysqld
->dsn(
dbname
=>
'test'
),
);
# start_mysqlds is faster than calling Test::mysqld->new twice
my
@mysqlds
= Test::mysqld->start_mysqlds(
2,
my_cnf
=> {
'skip-networking'
=>
''
,
# no TCP socket
}
) or plan
skip_all
=>
$Test::mysqld::errstr
;
Test::mysqlds->stop_mysqlds(
@mysqlds
);
DESCRIPTION
Test::mysqld
automatically setups a mysqld instance in a temporary directory, and destroys it when the perl script exits.
FUNCTIONS
new
Create and run a mysqld instance. The instance is terminated when the returned object is being DESTROYed. If required programs (mysql_install_db and mysqld) were not found, the function returns undef and sets appropriate message to $Test::mysqld::errstr.
base_dir
Returns directory under which the mysqld instance is being created. The property can be set as a parameter of the new
function, in which case the directory will not be removed at exit.
copy_data_from
If specified, uses a copy of the specified directory as the data directory of MySQL. "Mysql" database (which is used to store administrative information) is automatically created if necessary by invoking mysql_install_db.
my_cnf
A hash containing the list of name=value pairs to be written into my.cnf. The property can be set as a parameter of the new
function.
mysql_install_db
mysqld
Path to mysql_install_db
script or mysqld
program bundled to the mysqld distribution. If not set, the program is automatically search by looking up $PATH and other prefixed directories.
dsn
Builds and returns dsn by using given parameters (if any). Default username depends on a server version and a socket family. Default dbname is 'test'.
pid
Returns process id of mysqld (or undef if not running).
start
Starts mysqld.
stop
Stops mysqld.
setup
Setups the mysqld instance.
read_log
Returns the contents of the mysqld log file.
start_mysqlds
Create and run some mysqld instances, and return a list of Test::mysqld
.
stop_mysqlds
Stop some mysqld instances.
COPYRIGHT
Copyright (C) 2009 Cybozu Labs, Inc. Written by Kazuho Oku.
LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.