X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Fglobal_destruction.t;h=8b22c8d5ce410f5a2bc787ac5f27db7f30f096db;hb=7e1ca6dd06c5e53e7afa3433da0f59e41ce791e8;hp=79bcdeea43dda966464cf0fb297a909663c987c5;hpb=5945ca6b519cb62b65beb61fbdacc9c3ca1dbeec;p=dbsrgits%2FDBIx-Class.git diff --git a/t/storage/global_destruction.t b/t/storage/global_destruction.t index 79bcdee..8b22c8d 100644 --- a/t/storage/global_destruction.t +++ b/t/storage/global_destruction.t @@ -4,16 +4,36 @@ use warnings; use Test::More; use Test::Exception; +use DBIx::Class::Optional::Dependencies (); + use lib qw(t/lib); use DBICTest; -for my $type (qw/PG MYSQL/) { +plan skip_all => 'Test segfaults on Win32 - investigation pending' + if $^O eq 'MSWin32' && DBICTest::RunMode->is_plain; - SKIP: { - skip "Skipping $type tests without DBICTEST_${type}_DSN", 1 - unless $ENV{"DBICTEST_${type}_DSN"}; +for my $type (qw/PG MYSQL SQLite/) { - my $schema = DBICTest::Schema->connect (@ENV{map { "DBICTEST_${type}_${_}" } qw/DSN USER PASS/}); + SKIP: { + my @dsn = $type eq 'SQLite' + ? DBICTest->_database(sqlite_use_file => 1) + : do { + skip "Skipping $type tests without DBICTEST_${type}_DSN", 1 + unless $ENV{"DBICTEST_${type}_DSN"}; + @ENV{map { "DBICTEST_${type}_${_}" } qw/DSN USER PASS/} + } + ; + + if ($type eq 'PG') { + skip "skipping Pg tests without dependencies installed", 1 + unless DBIx::Class::Optional::Dependencies->req_ok_for('test_rdbms_pg'); + } + elsif ($type eq 'MYSQL') { + skip "skipping MySQL tests without dependencies installed", 1 + unless DBIx::Class::Optional::Dependencies->req_ok_for('test_rdbms_mysql'); + } + + my $schema = DBICTest::Schema->connect (@dsn); # emulate a singleton-factory, just cache the object *somewhere in a different package* # to induce out-of-order destruction @@ -40,6 +60,7 @@ for my $type (qw/PG MYSQL/) { } else { note "Child $$ terminating"; + undef $DBICTest::FakeSchemaFactory::schema; exit 0; }