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 is 'root', and 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.