use strict; use warnings; use Test::More; use Test::Database; # hardcoded sorted list of our drivers my @all_drivers = sort qw( CSV DBM Pg SQLite SQLite2 mysql ); # intersection with DBI->available_drivers my %all_drivers = map { $_ => 1 } @all_drivers; my @available_drivers = sort grep { exists $all_drivers{$_} } DBI->available_drivers; plan tests => 3; # minimal setup Test::Database->clean_config(); Test::Database->load_drivers(); # existing Test::Database::Driver:: drivers is_deeply( [ Test::Database->list_drivers('all') ], \@all_drivers, q{list_drivers('all')} ); # available DBI drivers is_deeply( [ Test::Database->list_drivers('available') ], \@available_drivers, q{list_drivers('available')} ); # available DBI drivers we could load (should only be file-based) my @filebased = grep { "Test::Database::Driver::$_"->is_filebased() } @available_drivers; is_deeply( [ Test::Database->list_drivers() ], \@filebased, 'list_drivers()' );