[tapx-dev] [commit] [106] Completed implementation of TAP version and added tests for same.
andy at hexten.net
andy at hexten.net
Sat Mar 10 20:25:47 GMT 2007
Revision: 106
Author: andy
Date: 2007-03-10 20:25:47 +0000 (Sat, 10 Mar 2007)
Log Message:
-----------
Completed implementation of TAP version and added tests for same.
Modified Paths:
--------------
trunk/Changes
trunk/MANIFEST
trunk/lib/TAP/Parser.pm
trunk/t/020-regression.t
Added Paths:
-----------
trunk/t/sample-tests/version_good
trunk/t/sample-tests/version_late
trunk/t/sample-tests/version_old
Modified: trunk/Changes
===================================================================
--- trunk/Changes 2007-03-10 20:08:25 UTC (rev 105)
+++ trunk/Changes 2007-03-10 20:25:47 UTC (rev 106)
@@ -9,6 +9,7 @@
- Removed now-unused is_first / is_last methods from Iterator and
simplified remaining logic to suit.
- Removed now-redundant t/140-varsource.t.
+ - Implemented TAP version syntax.
0.50_07 5 March 2007
- Fixed bug where we erroneously checked the test number instead of number
Modified: trunk/MANIFEST
===================================================================
--- trunk/MANIFEST 2007-03-10 20:08:25 UTC (rev 105)
+++ trunk/MANIFEST 2007-03-10 20:25:47 UTC (rev 106)
@@ -122,6 +122,9 @@
t/sample-tests/todo_inline
t/sample-tests/todo_misparse
t/sample-tests/too_many
+t/sample-tests/version_good
+t/sample-tests/version_late
+t/sample-tests/version_old
t/sample-tests/vms_nit
t/sample-tests/with_comments
t/source_tests/harness
Modified: trunk/lib/TAP/Parser.pm
===================================================================
--- trunk/lib/TAP/Parser.pm 2007-03-10 20:08:25 UTC (rev 105)
+++ trunk/lib/TAP/Parser.pm 2007-03-10 20:25:47 UTC (rev 106)
@@ -961,6 +961,15 @@
my %state_globals = (
comment => {},
bailout => {},
+ version => {
+ act => sub {
+ my ( $self, $version ) = @_;
+ local *__ANON__ = '__ANON__bad_version_handler';
+ $self->_add_error(
+ "If TAP version is present it must be the first line of output"
+ );
+ },
+ },
);
# Provides default elements for transitions
@@ -1016,9 +1025,10 @@
local *__ANON__ = '__ANON__version_handler';
my $ver_num = $version->version;
if ( $ver_num <= $DEFAULT_TAP_VERSION ) {
+ my $ver_min = $DEFAULT_TAP_VERSION + 1;
$self->_add_error(
"Explicit TAP version must be at least "
- . "$DEFAULT_TAP_VERSION. Got version $ver_num"
+ . "$ver_min. Got version $ver_num"
);
}
$self->version($ver_num);
Modified: trunk/t/020-regression.t
===================================================================
--- trunk/t/020-regression.t 2007-03-10 20:08:25 UTC (rev 105)
+++ trunk/t/020-regression.t 2007-03-10 20:25:47 UTC (rev 106)
@@ -275,6 +275,7 @@
parse_errors => [],
'exit' => 0,
wait => 0,
+ version => 3,
},
simple_fail => {
results => [
@@ -665,7 +666,7 @@
plan => '1..10',
passed => [ 1 .. 4, 4 .. 9 ],
actual_passed => [ 1 .. 4, 4 .. 10 ],
- failed => [ 10 ],
+ failed => [10],
actual_failed => [],
todo => [],
todo_passed => [],
@@ -2318,6 +2319,245 @@
'exit' => 0,
wait => 0,
},
+ version_good => {
+ results => [
+ { is_version => TRUE,
+ raw => 'TAP version 4',
+ },
+ { is_plan => TRUE,
+ raw => '1..5',
+ tests_planned => 5,
+ passed => TRUE,
+ is_ok => TRUE,
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 1,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 2,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 3,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 4,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 5,
+ description => "",
+ },
+ ],
+ plan => '1..5',
+ passed => [ 1 .. 5 ],
+ actual_passed => [ 1 .. 5 ],
+ failed => [],
+ actual_failed => [],
+ todo => [],
+ todo_passed => [],
+ skipped => [],
+ good_plan => TRUE,
+ is_good_plan => TRUE,
+ tests_planned => 5,
+ tests_run => 5,
+ parse_errors => [],
+ 'exit' => 0,
+ wait => 0,
+ version => 4,
+ },
+ version_old => {
+ results => [
+ { is_version => TRUE,
+ raw => 'TAP version 3',
+ },
+ { is_plan => TRUE,
+ raw => '1..5',
+ tests_planned => 5,
+ passed => TRUE,
+ is_ok => TRUE,
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 1,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 2,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 3,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 4,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 5,
+ description => "",
+ },
+ ],
+ plan => '1..5',
+ passed => [ 1 .. 5 ],
+ actual_passed => [ 1 .. 5 ],
+ failed => [],
+ actual_failed => [],
+ todo => [],
+ todo_passed => [],
+ skipped => [],
+ good_plan => TRUE,
+ is_good_plan => TRUE,
+ tests_planned => 5,
+ tests_run => 5,
+ parse_errors =>
+ [ 'Explicit TAP version must be at least 4. Got version 3' ],
+ 'exit' => 0,
+ wait => 0,
+ version => 3,
+ },
+ version_late => {
+ results => [
+ { is_plan => TRUE,
+ raw => '1..5',
+ tests_planned => 5,
+ passed => TRUE,
+ is_ok => TRUE,
+ },
+ { is_version => TRUE,
+ raw => 'TAP version 4',
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 1,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 2,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 3,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 4,
+ description => "",
+ },
+ { actual_passed => TRUE,
+ is_actual_ok => TRUE,
+ passed => TRUE,
+ is_ok => TRUE,
+ is_test => TRUE,
+ has_skip => FALSE,
+ has_todo => FALSE,
+ number => 5,
+ description => "",
+ },
+ ],
+ plan => '1..5',
+ passed => [ 1 .. 5 ],
+ actual_passed => [ 1 .. 5 ],
+ failed => [],
+ actual_failed => [],
+ todo => [],
+ todo_passed => [],
+ skipped => [],
+ good_plan => TRUE,
+ is_good_plan => TRUE,
+ tests_planned => 5,
+ tests_run => 5,
+ parse_errors =>
+ [ 'If TAP version is present it must be the first line of output' ],
+ 'exit' => 0,
+ wait => 0,
+ version => 3,
+ },
);
my %HANDLER_FOR = (
@@ -2408,7 +2648,8 @@
}
}
}
- ok !@$results, "... and we should have the correct number of results ($test)";
+ ok !@$results,
+ "... and we should have the correct number of results ($test)";
return $parser;
}
Added: trunk/t/sample-tests/version_good
===================================================================
--- trunk/t/sample-tests/version_good (rev 0)
+++ trunk/t/sample-tests/version_good 2007-03-10 20:25:47 UTC (rev 106)
@@ -0,0 +1,9 @@
+print <<DUMMY_TEST;
+TAP version 4
+1..5
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+DUMMY_TEST
Added: trunk/t/sample-tests/version_late
===================================================================
--- trunk/t/sample-tests/version_late (rev 0)
+++ trunk/t/sample-tests/version_late 2007-03-10 20:25:47 UTC (rev 106)
@@ -0,0 +1,9 @@
+print <<DUMMY_TEST;
+1..5
+TAP version 4
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+DUMMY_TEST
Added: trunk/t/sample-tests/version_old
===================================================================
--- trunk/t/sample-tests/version_old (rev 0)
+++ trunk/t/sample-tests/version_old 2007-03-10 20:25:47 UTC (rev 106)
@@ -0,0 +1,9 @@
+print <<DUMMY_TEST;
+TAP version 3
+1..5
+ok 1
+ok 2
+ok 3
+ok 4
+ok 5
+DUMMY_TEST
More information about the tapx-dev
mailing list