+++ /dev/null
-#!/usr/bin/perl -Tw
-
-use lib qw(t/lib);
-use strict;
-use Test::More tests => 7;
-
-# Goal of these tests: confirm that Sub::Uplevel will honor (use) a
-# CORE::GLOBAL::caller override that occurs prior to Sub::Uplevel loading
-
-#--------------------------------------------------------------------------#
-# define a custom caller function that reverses the package name
-#--------------------------------------------------------------------------#
-
-sub _reverse_caller(;$) {
- my $height = $_[0];
- my @caller = CORE::caller(++$height);
- $caller[0] = reverse $caller[0];
- if( wantarray and !@_ ) {
- return @caller[0..2];
- }
- elsif (wantarray) {
- return @caller;
- }
- else {
- return $caller[0];
- }
-}
-
-#--------------------------------------------------------------------------#
-# redefine CORE::GLOBAL::caller then load Sub::Uplevel
-#--------------------------------------------------------------------------#
-
-BEGIN {
- ok( ! defined *CORE::GLOBAL::caller{CODE},
- "no global override yet"
- );
-
- {
- # old style no warnings 'redefine'
- my $old_W = $^W;
- $^W = 0;
- *CORE::GLOBAL::caller = \&_reverse_caller;
- $^W = $old_W;
- }
-
- is( *CORE::GLOBAL::caller{CODE}, \&_reverse_caller,
- "added custom caller override"
- );
-
- use_ok('Sub::Uplevel');
-
- is( *CORE::GLOBAL::caller{CODE}, \&_reverse_caller,
- "custom caller override still in place"
- );
-
-
-}
-
-#--------------------------------------------------------------------------#
-# define subs *after* caller has been redefined in BEGIN
-#--------------------------------------------------------------------------#
-
-sub test_caller { return scalar caller }
-
-sub uplevel_caller { return uplevel 1, \&test_caller }
-
-sub test_caller_w_uplevel { return uplevel_caller }
-
-#--------------------------------------------------------------------------#
-# Test for reversed package name both inside and outside an uplevel call
-#--------------------------------------------------------------------------#
-
-is( scalar caller(), '',
- "caller from main package is empty string"
-);
-
-is( test_caller(), reverse("main"),
- "caller from subroutine calls custom routine"
-);
-
-is( test_caller_w_uplevel(), reverse("main"),
- "caller from uplevel subroutine calls custom routine"
-);
-