]>
git.saurik.com Git - apple/security.git/blob - SecurityTests/regressions/inc/Test/Harness/Results.pm
1 # -*- Mode: cperl; cperl-indent-level: 4 -*-
2 package Test
::Harness
::Results
;
10 Test::Harness::Results - object for tracking results from a single test file
14 One Test::Harness::Results object represents the results from one
15 test file getting analyzed.
21 my $results = new Test::Harness::Results;
23 Create a test point object. Typically, however, you'll not create
24 one yourself, but access a Results object returned to you by
25 Test::Harness::Results.
31 my $self = bless {}, $class;
38 The following data points are defined:
40 passing true if the whole test is considered a pass
41 (or skipped), false if its a failure
43 exit the exit code of the test run, if from a file
44 wait the wait code of the test run, if from a file
46 max total tests which should have been run
47 seen total tests actually seen
48 skip_all if the whole test was skipped, this will
51 ok number of tests which passed
52 (including todo and skips)
54 todo number of todo tests seen
55 bonus number of todo tests which
58 skip number of tests skipped
60 So a successful test should have max == seen == ok.
63 There is one final item, the details.
65 details an array ref reporting the result of
66 each test looks like this:
68 $results{details}[$test_num - 1] =
69 { ok => is the test considered ok?
70 actual_ok => did it literally say 'ok'?
71 name => name of the test (if any)
72 diagnostics => test diagnostics (if any)
73 type => 'skip' or 'todo' (if any)
74 reason => reason for the above (if any)
77 Element 0 of the details is test #1. I tried it with element 1 being
78 #1 and 0 being empty, this is less awkward.
81 Each of the following fields has a getter and setter method.
91 sub set_wait
{ my $self = shift; $self->{wait} = shift }
94 return $self->{wait} || 0;
97 sub set_skip_all
{ my $self = shift; $self->{skip_all
} = shift }
100 return $self->{skip_all
};
103 sub inc_max
{ my $self = shift; $self->{max
} += (@_ ? shift : 1) }
106 return $self->{max
} || 0;
109 sub set_passing
{ my $self = shift; $self->{passing
} = shift }
112 return $self->{passing
} || 0;
115 sub inc_ok
{ my $self = shift; $self->{ok
} += (@_ ? shift : 1) }
118 return $self->{ok
} || 0;
125 use vmsish
q(status);
126 $self->{exit} = shift; # must be in same scope as pragma
130 $self->{exit} = shift;
135 return $self->{exit} || 0;
138 sub inc_bonus
{ my $self = shift; $self->{bonus
}++ }
141 return $self->{bonus
} || 0;
144 sub set_skip_reason
{ my $self = shift; $self->{skip_reason
} = shift }
147 return $self->{skip_reason
} || 0;
150 sub inc_skip
{ my $self = shift; $self->{skip
}++ }
153 return $self->{skip
} || 0;
156 sub inc_todo
{ my $self = shift; $self->{todo
}++ }
159 return $self->{todo
} || 0;
162 sub inc_seen
{ my $self = shift; $self->{seen
}++ }
165 return $self->{seen
} || 0;
173 my $array = ($self->{details
} ||= []);
174 $array->[$index-1] = $details;
179 return $self->{details
} || [];