/usr/share/perl5/Test/Deep/Stack.pm is in libtest-deep-perl 0.108-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | use strict;
use warnings;
package Test::Deep::Stack;
use Carp qw( confess );
use Test::Deep::MM qw( new init Stack Arrow );
sub init
{
my $self = shift;
$self->SUPER::init(@_);
$self->setStack([]) unless $self->getStack;
}
sub push
{
my $self = shift;
push(@{$self->getStack}, @_);
}
sub pop
{
my $self = shift;
return pop @{$self->getStack};
}
sub render
{
my $self = shift;
my $var = shift;
my $stack = $self->getStack;
$self->setArrow(0);
foreach my $data (@$stack)
{
my $exp = $data->{exp};
if (UNIVERSAL::isa($exp, "Test::Deep::Cmp"))
{
$var = $exp->render_stack($var, $data);
$self->setArrow(0) if $exp->reset_arrow;
}
else
{
confess "Don't know how to render '$exp'";
}
}
return $var;
}
sub getLast
{
my $self = shift;
return $self->getStack->[-1];
}
sub incArrow
{
my $self = shift;
my $a = $self->getArrow;
$self->setArrow($a + 1);
return $a;
}
sub length
{
my $self = shift;
return @{$self->getStack} + 0;
}
1;
|