diff options
Diffstat (limited to 'Master/tlpkg/tlperl.straw/lib/Test/Deep/Code.pm')
-rwxr-xr-x | Master/tlpkg/tlperl.straw/lib/Test/Deep/Code.pm | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl.straw/lib/Test/Deep/Code.pm b/Master/tlpkg/tlperl.straw/lib/Test/Deep/Code.pm new file mode 100755 index 00000000000..8768a590f6d --- /dev/null +++ b/Master/tlpkg/tlperl.straw/lib/Test/Deep/Code.pm @@ -0,0 +1,58 @@ +use strict; +use warnings; + +package Test::Deep::Code; + +use Test::Deep::Cmp; + +sub init +{ + my $self = shift; + + my $code = shift || die "No coderef supplied"; + + $self->{code} = $code; +} + +sub descend +{ + my $self = shift; + my $got = shift; + + my ($ok, $diag) = &{$self->{code}}($got); + + $self->data->{diag} = $diag; + + return $ok; +} + +sub diagnostics +{ + my $self = shift; + my ($where, $last) = @_; + + my $error = $last->{diag}; + my $data = Test::Deep::render_val($last->{got}); + my $diag = <<EOM; +Ran coderef at $where on + +$data +EOM + if (defined($error)) + { + $diag .= <<EOM; +and it said +$error +EOM + } + else + { + $diag .= <<EOM; +it failed but it didn't say why. +EOM + } + + return $diag; +} + +1; |