root/branches/release-40/t/lib/Test/Deep/Code.pm @ 2583

Revision 2583, 0.7 kB (checked in by mpaschal, 18 months ago)

Add Test::Deep to t/lib, since we already use it in driver-tests.pl
BugzID: 79953

Line 
1use strict;
2use warnings;
3
4package Test::Deep::Code;
5
6use Test::Deep::Cmp;
7
8sub init
9{
10        my $self = shift;
11
12        my $code = shift || die "No coderef supplied";
13
14        $self->{code} = $code;
15}
16
17sub descend
18{
19        my $self = shift;
20        my $got = shift;
21
22        my ($ok, $diag) = &{$self->{code}}($got);
23
24        $self->data->{diag} = $diag;
25
26        return $ok;
27}
28
29sub diagnostics
30{
31        my $self = shift;
32        my ($where, $last) = @_;
33
34        my $error = $last->{diag};
35        my $data = Test::Deep::render_val($last->{got});
36        my $diag = <<EOM;
37Ran coderef at $where on
38
39$data
40EOM
41  if (defined($error))
42  {
43    $diag .= <<EOM;
44and it said
45$error
46EOM
47  }
48  else
49  {
50    $diag .= <<EOM;
51it failed but it didn't say why.
52EOM
53  }
54
55        return $diag;
56}
57
581;
Note: See TracBrowser for help on using the browser.