Blame t/06_db_args.t

Packit cde0b4
#!/usr/bin/perl
Packit cde0b4
Packit cde0b4
use strict;
Packit cde0b4
BEGIN { $^W = 1 }
Packit cde0b4
Packit cde0b4
use Test::More tests => 3;
Packit cde0b4
Packit cde0b4
BEGIN { use_ok('Sub::Uplevel'); }
Packit cde0b4
Packit cde0b4
sub get_caller_args {
Packit cde0b4
    package DB;
Packit cde0b4
    my @x = caller(1);
Packit cde0b4
    return @DB::args;
Packit cde0b4
}
Packit cde0b4
Packit cde0b4
sub addition {
Packit cde0b4
    my $x;
Packit cde0b4
    $x += $_ for @_;
Packit cde0b4
    return $x;
Packit cde0b4
}
Packit cde0b4
Packit cde0b4
sub wrap_addition {
Packit cde0b4
    my @args = get_caller_args();
Packit cde0b4
    my $sum = uplevel 1, \&addition, @_;
Packit cde0b4
    return ($sum, @args);
Packit cde0b4
}
Packit cde0b4
Packit cde0b4
my ($sum, @args) = wrap_addition(1, 2, 3);
Packit cde0b4
Packit cde0b4
is($sum, 6, "wrapper returned value correct");
Packit cde0b4
is_deeply( \@args, [1, 2, 3], "wrapper returned args correct" );
Packit cde0b4
Packit cde0b4
Packit cde0b4