use warnings;
use Test::More;
use Test::Exception;
-use DBIx::Class::Schema::Loader::Utils 'warnings_exist_silent';
+use DBIx::Class::Optional::Dependencies;
+use DBIx::Class::Schema::Loader::Utils qw/warnings_exist_silent sigwarn_silencer/;
use Try::Tiny;
use File::Path 'rmtree';
use DBIx::Class::Schema::Loader 'make_schema_at';
for (qw/MSSQL MSSQL_ODBC MSSQL_ADO/) {
next unless $ENV{"DBICTEST_${_}_DSN"};
+ (my $dep_group = lc "rdbms_$_") =~ s/mssql$/mssql_sybase/;
+ if (!DBIx::Class::Optional::Dependencies->req_ok_for($dep_group)) {
+ diag 'You need to install ' . DBIx::Class::Optional::Dependencies->req_missing_for($dep_group)
+ . " to test with $_";
+ next;
+ }
+
$dsns->{$_}{dsn} = $ENV{"DBICTEST_${_}_DSN"};
$dsns->{$_}{user} = $ENV{"DBICTEST_${_}_USER"};
$dsns->{$_}{password} = $ENV{"DBICTEST_${_}_PASS"};
SKIP: {
# for ADO
- my $warn_handler = $SIG{__WARN__} || sub { warn @_ };
- local $SIG{__WARN__} = sub {
- $warn_handler->(@_) unless $_[0] =~ /Changed database context/;
- };
+ local $SIG{__WARN__} = sigwarn_silencer(
+ qr/Changed database context/
+ );
my $dbh = $schema->storage->dbh;
return if $ENV{SCHEMA_LOADER_TESTS_NOCLEANUP};
# for ADO
- my $warn_handler = $SIG{__WARN__} || sub { warn @_ };
- local $SIG{__WARN__} = sub {
- $warn_handler->(@_) unless $_[0] =~ /Changed database context/;
- };
+ local $SIG{__WARN__} = sigwarn_silencer(
+ qr/Changed database context/
+ );
my $dbh = $schema->storage->dbh;