X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Faccessors_pp.t;fp=t%2Faccessors_pp.t;h=8f208129d2d1ad4145d5728e588ea5980901e92a;hb=40f3dfeb3711b97a0e182ee9ac6910d9f26bb722;hp=b3cb9cc3de1421f20d78f6a9f65f32cba31f8a4d;hpb=5c87a5b19e42365de81b3ef9cf6af82a74206f0f;p=p5sagit%2FClass-Accessor-Grouped.git diff --git a/t/accessors_pp.t b/t/accessors_pp.t index b3cb9cc..8f20812 100644 --- a/t/accessors_pp.t +++ b/t/accessors_pp.t @@ -42,26 +42,46 @@ for my $tname (qw/accessors.t accessors_ro.t accessors_wo.t/) { my ($tfn) = catfile($Bin, $tname) =~ /(.+)/; - delete $INC{$_} for ( - qw/AccessorGroups.pm AccessorGroupsRO.pm AccessorGroupsSubclass.pm AccessorGroupsParent.pm AccessorGroupsWO.pm/, + for ( + qw|AccessorGroups.pm AccessorGroups/BeenThereDoneThat.pm AccessorGroupsRO.pm AccessorGroupsSubclass.pm AccessorGroupsParent.pm AccessorGroupsWO.pm|, File::Spec::Unix->catfile ($tfn), - ); + ) { + delete $INC{$_}; + no strict 'refs'; + if (my ($mod) = $_ =~ /(.+)\.pm$/ ) { + %{"${mod}::"} = (); + } + } local $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /subroutine .+ redefined/i }; do($tfn); + + 666; }; if ($has_threads) { - threads->create(sub { - threads->create(sub { - $todo->() for (1,2) } - )->join; - $todo->() for (1,2); - })->join for (1,2) + for (1,2) { + is ( + threads->create(sub { + is ( + threads->create(sub { + $todo->(); + })->join, + 666, + 'Innner thread joined ok', + ); + 777; + })->join, + 777, + 'Outer thread joined ok', + ); + + is ($todo->(), 666, "Unthreaded run ok") for (1,2); + } } else { - $todo->() for (1, 2); + is ($todo->(), 666, "Unthreaded run ok") for (1,2); } }