From: Peter Rabbitson Date: Mon, 7 Jan 2013 18:43:40 +0000 (-0500) Subject: Scope::Upper somehow confuses pseudofork on older perls - investigation pending X-Git-Tag: v0.08205~12 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ee204dc35696efb66cc31c81e1a95d68c5278c80;p=dbsrgits%2FDBIx-Class.git Scope::Upper somehow confuses pseudofork on older perls - investigation pending View the patch with -w, lots of reindentation --- diff --git a/t/storage/global_destruction.t b/t/storage/global_destruction.t index 8b22c8d..4fb49cb 100644 --- a/t/storage/global_destruction.t +++ b/t/storage/global_destruction.t @@ -2,16 +2,12 @@ use strict; 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: { @@ -44,29 +40,27 @@ for my $type (qw/PG MYSQL SQLite/) { 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)");