1use lib qw(t/lib);
2use strict;
3use Test::More tests => 3;
4
5BEGIN { use_ok('Sub::Uplevel'); }
6
7sub get_caller_args {
8    package DB;
9    my @x = caller(1);
10    return @DB::args;
11}
12
13sub addition {
14    my $x;
15    $x += $_ for @_;
16    return $x;
17}
18
19sub wrap_addition {
20    my @args = get_caller_args();
21    my $sum = uplevel 1, \&addition, @_;
22    return ($sum, @args);
23}
24
25my ($sum, @args) = wrap_addition(1, 2, 3);
26
27is($sum, 6, "wrapper returned value correct");
28is_deeply( \@args, [1, 2, 3], "wrapper returned args correct" );
29
30
31
32