use warnings;
use Test::More;
-use Test::Exception;
use DBIx::Class::Optional::Dependencies ();
use lib qw(t/lib);
use DBICTest;
-plan skip_all => 'Test segfaults on Win32 - investigation pending'
- if $^O eq 'MSWin32' && DBICTest::RunMode->is_plain;
-
for my $type (qw/PG MYSQL SQLite/) {
SKIP: {
ok (!$schema->storage->connected, "$type: start disconnected");
- lives_ok (sub {
- $schema->txn_do (sub {
-
- ok ($schema->storage->connected, "$type: transaction starts connected");
+ $schema->txn_do (sub {
- my $pid = fork();
- SKIP: {
- skip "Fork failed: $!", 1 if (! defined $pid);
+ ok ($schema->storage->connected, "$type: transaction starts connected");
- if ($pid) {
- note "Parent $$ sleeping...";
- wait();
- note "Parent $$ woken up after child $pid exit";
- }
- else {
- note "Child $$ terminating";
- undef $DBICTest::FakeSchemaFactory::schema;
- exit 0;
- }
+ my $pid = fork();
+ SKIP: {
+ skip "Fork failed: $!", 1 if (! defined $pid);
- ok ($schema->storage->connected, "$type: parent still connected (in txn_do)");
+ if ($pid) {
+ note "Parent $$ sleeping...";
+ wait();
+ note "Parent $$ woken up after child $pid exit";
+ }
+ else {
+ note "Child $$ terminating";
+ undef $DBICTest::FakeSchemaFactory::schema;
+ 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)");