summaryrefslogtreecommitdiff
path: root/dist/Carp/t/Carp.t
diff options
context:
space:
mode:
Diffstat (limited to 'dist/Carp/t/Carp.t')
-rw-r--r--dist/Carp/t/Carp.t19
1 files changed, 5 insertions, 14 deletions
diff --git a/dist/Carp/t/Carp.t b/dist/Carp/t/Carp.t
index 2e041841ec..b12c482ae8 100644
--- a/dist/Carp/t/Carp.t
+++ b/dist/Carp/t/Carp.t
@@ -310,13 +310,15 @@ cluck_undef( 0, "undef", 2, undef, 4 );
# check that Carp respects CORE::GLOBAL::caller override after Carp
# has been compiled
-require B; # For older Test::More versions that do not auto-load it
for my $bodge_job ( 2, 1, 0 ) { SKIP: {
skip "can't safely detect incomplete caller override on perl $]", 6
if $bodge_job && !Carp::CALLER_OVERRIDE_CHECK_OK;
print '# ', ( $bodge_job ? 'Not ' : '' ),
"setting \@DB::args in caller override\n";
-
+ if ( $bodge_job == 1 ) {
+ require B;
+ print "# required B\n";
+ }
my $accum = '';
local *CORE::GLOBAL::caller = sub {
local *__ANON__ = "fakecaller";
@@ -332,22 +334,11 @@ for my $bodge_job ( 2, 1, 0 ) { SKIP: {
return CORE::caller( ( $_[0] || 0 ) + 1 );
}
};
-
eval "scalar caller()";
like( $accum, qr/main::fakecaller/,
"test CORE::GLOBAL::caller override in eval" );
-
$accum = '';
- my $got;
- {
- # Test::Builder loads B now, so we have to pretend it is not loaded.
- # Carp simply wraps a call to svref_2object in an eval, so if that
- # method does not exist we emulate not having B. Localizing the glob
- # temporarily removes the sub.
- local *B::svref_2object unless $bodge_job == 1;
- $got = XA::long(42);
- }
-
+ my $got = XA::long(42);
like( $accum, qr/main::fakecaller/,
"test CORE::GLOBAL::caller override in Carp" );
my $package = 'XA';