|
Packit |
a6a12c |
#!/usr/bin/perl -w
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
BEGIN {
|
|
Packit |
a6a12c |
unshift @INC, 't/lib';
|
|
Packit |
a6a12c |
}
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
use strict;
|
|
Packit |
a6a12c |
use warnings;
|
|
Packit |
a6a12c |
use Test::More tests => 25;
|
|
Packit |
a6a12c |
use App::Prove::State;
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
my $test_suite_data = test_suite_data();
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
#
|
|
Packit |
a6a12c |
# Test test suite results
|
|
Packit |
a6a12c |
#
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok 'App::Prove::State::Result', 'new';
|
|
Packit |
a6a12c |
isa_ok my $result = App::Prove::State::Result->new($test_suite_data),
|
|
Packit |
a6a12c |
'App::Prove::State::Result', '... and the object it returns';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
ok $result, 'state_version';
|
|
Packit |
a6a12c |
ok defined $result->state_version, '... and it should be defined';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok $result, 'generation';
|
|
Packit |
a6a12c |
is $result->generation, $test_suite_data->{generation},
|
|
Packit |
a6a12c |
'... and it should return the correct generation';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok $result, 'num_tests';
|
|
Packit |
a6a12c |
is $result->num_tests, scalar keys %{ $test_suite_data->{tests} },
|
|
Packit |
a6a12c |
'... and it should return the number of tests run';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok $result, 'raw';
|
|
Packit |
a6a12c |
is_deeply $result->raw, $test_suite_data,
|
|
Packit |
a6a12c |
'... and it should return the raw, unblessed data';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
#
|
|
Packit |
a6a12c |
# Check individual tests.
|
|
Packit |
a6a12c |
#
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok $result, 'tests';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok $result, 'test';
|
|
Packit |
a6a12c |
eval { $result->test };
|
|
Packit |
a6a12c |
my $error = $@;
|
|
Packit |
a6a12c |
like $error, qr/^\Qtest() requires a test name/,
|
|
Packit |
a6a12c |
'... and it should croak() if a test name is not supplied';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
my $name = 't/compat/failure.t';
|
|
Packit |
a6a12c |
ok my $test = $result->test('t/compat/failure.t'),
|
|
Packit |
a6a12c |
'result() should succeed if the test name is found';
|
|
Packit |
a6a12c |
isa_ok $test, 'App::Prove::State::Result::Test',
|
|
Packit |
a6a12c |
'... and the object it returns';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok $test, 'name';
|
|
Packit |
a6a12c |
is $test->name, $name, '... and it should return the test name';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok $test, 'last_pass_time';
|
|
Packit |
a6a12c |
like $test->last_pass_time, qr/^\d+\.\d+$/,
|
|
Packit |
a6a12c |
'... and it should return a numeric value';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok $test, 'last_fail_time';
|
|
Packit |
a6a12c |
ok !defined $test->last_fail_time,
|
|
Packit |
a6a12c |
'... and it should return undef if the test has never failed';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
can_ok $result, 'remove';
|
|
Packit |
a6a12c |
ok $result->remove($name), '... and calling it should succeed';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
ok $test = $result->test($name),
|
|
Packit |
a6a12c |
'... and fetching the removed test should suceed';
|
|
Packit |
a6a12c |
ok !defined $test->last_pass_time, '... and it should have clean values';
|
|
Packit |
a6a12c |
|
|
Packit |
a6a12c |
sub test_suite_data {
|
|
Packit |
a6a12c |
return {
|
|
Packit |
a6a12c |
'version' => App::Prove::State::Result->state_version,
|
|
Packit |
a6a12c |
'generation' => '51',
|
|
Packit |
a6a12c |
'tests' => {
|
|
Packit |
a6a12c |
't/compat/failure.t' => {
|
|
Packit |
a6a12c |
'last_result' => '0',
|
|
Packit |
a6a12c |
'last_run_time' => '1196371471.57738',
|
|
Packit |
a6a12c |
'last_pass_time' => '1196371471.57738',
|
|
Packit |
a6a12c |
'total_passes' => '48',
|
|
Packit |
a6a12c |
'seq' => '1549',
|
|
Packit |
a6a12c |
'gen' => '51',
|
|
Packit |
a6a12c |
'elapsed' => 0.1230,
|
|
Packit |
a6a12c |
'last_todo' => '1',
|
|
Packit |
a6a12c |
'mtime' => 1196285623,
|
|
Packit |
a6a12c |
},
|
|
Packit |
a6a12c |
't/yamlish-writer.t' => {
|
|
Packit |
a6a12c |
'last_result' => '0',
|
|
Packit |
a6a12c |
'last_run_time' => '1196371480.5761',
|
|
Packit |
a6a12c |
'last_pass_time' => '1196371480.5761',
|
|
Packit |
a6a12c |
'last_fail_time' => '1196368609',
|
|
Packit |
a6a12c |
'total_passes' => '41',
|
|
Packit |
a6a12c |
'seq' => '1578',
|
|
Packit |
a6a12c |
'gen' => '49',
|
|
Packit |
a6a12c |
'elapsed' => 12.2983,
|
|
Packit |
a6a12c |
'last_todo' => '0',
|
|
Packit |
a6a12c |
'mtime' => 1196285400,
|
|
Packit |
a6a12c |
},
|
|
Packit |
a6a12c |
't/compat/env.t' => {
|
|
Packit |
a6a12c |
'last_result' => '0',
|
|
Packit |
a6a12c |
'last_run_time' => '1196371471.42967',
|
|
Packit |
a6a12c |
'last_pass_time' => '1196371471.42967',
|
|
Packit |
a6a12c |
'last_fail_time' => '1196368608',
|
|
Packit |
a6a12c |
'total_passes' => '48',
|
|
Packit |
a6a12c |
'seq' => '1548',
|
|
Packit |
a6a12c |
'gen' => '52',
|
|
Packit |
a6a12c |
'elapsed' => 3.1290,
|
|
Packit |
a6a12c |
'last_todo' => '0',
|
|
Packit |
a6a12c |
'mtime' => 1196285739,
|
|
Packit |
a6a12c |
},
|
|
Packit |
a6a12c |
't/compat/version.t' => {
|
|
Packit |
a6a12c |
'last_result' => '2',
|
|
Packit |
a6a12c |
'last_run_time' => '1196371472.96476',
|
|
Packit |
a6a12c |
'last_pass_time' => '1196371472.96476',
|
|
Packit |
a6a12c |
'last_fail_time' => '1196368609',
|
|
Packit |
a6a12c |
'total_passes' => '47',
|
|
Packit |
a6a12c |
'seq' => '1555',
|
|
Packit |
a6a12c |
'gen' => '51',
|
|
Packit |
a6a12c |
'elapsed' => 0.2363,
|
|
Packit |
a6a12c |
'last_todo' => '4',
|
|
Packit |
a6a12c |
'mtime' => 1196285239,
|
|
Packit |
a6a12c |
},
|
|
Packit |
a6a12c |
't/compat/inc_taint.t' => {
|
|
Packit |
a6a12c |
'last_result' => '3',
|
|
Packit |
a6a12c |
'last_run_time' => '1196371471.89682',
|
|
Packit |
a6a12c |
'last_pass_time' => '1196371471.89682',
|
|
Packit |
a6a12c |
'total_passes' => '47',
|
|
Packit |
a6a12c |
'seq' => '1551',
|
|
Packit |
a6a12c |
'gen' => '51',
|
|
Packit |
a6a12c |
'elapsed' => 1.6938,
|
|
Packit |
a6a12c |
'last_todo' => '0',
|
|
Packit |
a6a12c |
'mtime' => 1196185639,
|
|
Packit |
a6a12c |
},
|
|
Packit |
a6a12c |
't/source.t' => {
|
|
Packit |
a6a12c |
'last_result' => '0',
|
|
Packit |
a6a12c |
'last_run_time' => '1196371479.72508',
|
|
Packit |
a6a12c |
'last_pass_time' => '1196371479.72508',
|
|
Packit |
a6a12c |
'total_passes' => '41',
|
|
Packit |
a6a12c |
'seq' => '1570',
|
|
Packit |
a6a12c |
'gen' => '51',
|
|
Packit |
a6a12c |
'elapsed' => 0.0143,
|
|
Packit |
a6a12c |
'last_todo' => '0',
|
|
Packit |
a6a12c |
'mtime' => 1186285639,
|
|
Packit |
a6a12c |
},
|
|
Packit |
a6a12c |
}
|
|
Packit |
a6a12c |
};
|
|
Packit |
a6a12c |
}
|