Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Test::MyApp::mysqld;
- use strict;
- use warnings;
- use Test::mysqld;
- use JSON;
- use DBI;
- our $SKIP_DROP_DB_MAP = {
- information_schema => 1,
- mysql => 1,
- test => 1,
- };
- sub setup {
- my ($class, %config) = @_;
- my $mysqld;
- if (my $json = $ENV{TEST_MYSQLD}) {
- my $obj = decode_json $json;
- $mysqld = bless $obj, 'Test::mysqld';
- }
- else {
- $mysqld = Test::mysqld->new(my_cnf => {
- 'skip-networking' => '',
- %config,
- }) or die $Test::mysqld::errstr;
- }
- return $mysqld;
- }
- sub cleanup {
- my ($class, $mysqld) = @_;
- my $dbh = DBI->connect($mysqld->dsn, '', '', {
- AutoCommit => 1,
- RaiseError => 1,
- });
- my $rs = $dbh->selectall_hashref('SHOW DATABASES', 'Database');
- for my $dbname (keys %$rs) {
- next if $SKIP_DROP_DB_MAP->{$dbname};
- $dbh->do("DROP DATABASE $dbname");
- }
- }
- 1;
Add Comment
Please, Sign In to add comment