X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fstorage%2Ffactory_fork.t;fp=t%2Fstorage%2Ffactory_fork.t;h=0000000000000000000000000000000000000000;hb=5945ca6b519cb62b65beb61fbdacc9c3ca1dbeec;hp=79bcdeea43dda966464cf0fb297a909663c987c5;hpb=527b57393261b6b72d64cd9f8c9befefbbd202f3;p=dbsrgits%2FDBIx-Class.git diff --git a/t/storage/factory_fork.t b/t/storage/factory_fork.t deleted file mode 100644 index 79bcdee..0000000 --- a/t/storage/factory_fork.t +++ /dev/null @@ -1,57 +0,0 @@ -use strict; -use warnings; - -use Test::More; -use Test::Exception; - -use lib qw(t/lib); -use DBICTest; - -for my $type (qw/PG MYSQL/) { - - SKIP: { - skip "Skipping $type tests without DBICTEST_${type}_DSN", 1 - unless $ENV{"DBICTEST_${type}_DSN"}; - - my $schema = DBICTest::Schema->connect (@ENV{map { "DBICTEST_${type}_${_}" } qw/DSN USER PASS/}); - - # emulate a singleton-factory, just cache the object *somewhere in a different package* - # to induce out-of-order destruction - $DBICTest::FakeSchemaFactory::schema = $schema; - - # so we can see the retry exceptions (if any) - $ENV{DBIC_DBIRETRY_DEBUG} = 1; - - ok (!$schema->storage->connected, "$type: start disconnected"); - - lives_ok (sub { - $schema->txn_do (sub { - - ok ($schema->storage->connected, "$type: transaction starts connected"); - - my $pid = fork(); - SKIP: { - skip "Fork failed: $!", 1 if (! defined $pid); - - if ($pid) { - note "Parent $$ sleeping..."; - wait(); - note "Parent $$ woken up after child $pid exit"; - } - else { - note "Child $$ terminating"; - exit 0; - } - - ok ($schema->storage->connected, "$type: parent still connected (in txn_do)"); - } - }); - }); - - ok ($schema->storage->connected, "$type: parent still connected (outside of txn_do)"); - - undef $DBICTest::FakeSchemaFactory::schema; - } -} - -done_testing;