use strict; use warnings; use Test::Deep; use Test::More; use DBI; use DBD::MariaDB; use vars qw($test_user $test_password $test_db $test_dsn); use lib 't', '.'; require 'lib.pl'; my @parts = DBI->parse_dsn($test_dsn); my $driver_dsn = DBD::MariaDB->parse_dsn($parts[4]); my %attributes = %{$driver_dsn}; %attributes = (%attributes, %{$parts[3]}) if defined $parts[3]; $attributes{user} = $test_user; $attributes{password} = $test_password; delete $attributes{database}; my $dbh = DbiTestConnect($test_dsn, $test_user, $test_password, { RaiseError => 1, PrintError => 0, AutoCommit => 0 }); plan tests => 2; my @dsns1 = $dbh->data_sources(); cmp_deeply(\@dsns1, supersetof("DBI:MariaDB:$test_db"), '$dbh->data_sources() contains current used database'); my @dsns2 = DBI->data_sources('MariaDB', \%attributes); cmp_deeply(\@dsns2, supersetof("DBI:MariaDB:$test_db"), 'DBI->data_sources(\'MariaDB\') contains current used database');