--- /dev/null
+use lib qw(t/lib);
+use strict;
+use Test::More tests => 3;
+
+BEGIN { use_ok('Sub::Uplevel'); }
+
+sub get_caller_args {
+ package DB;
+ my @x = caller(1);
+ return @DB::args;
+}
+
+sub addition {
+ my $x;
+ $x += $_ for @_;
+ return $x;
+}
+
+sub wrap_addition {
+ my @args = get_caller_args();
+ my $sum = uplevel 1, \&addition, @_;
+ return ($sum, @args);
+}
+
+my ($sum, @args) = wrap_addition(1, 2, 3);
+
+is($sum, 6, "wrapper returned value correct");
+is_deeply( \@args, [1, 2, 3], "wrapper returned args correct" );
+
+
+