1# -*-perl-*-
2use strict;
3use Test qw(:DEFAULT $TESTOUT $TESTERR $ntest);
4
5### This test is crafted in such a way as to prevent Test::Harness from
6### seeing the todo tests, otherwise you get people sending in bug reports
7### about Test.pm having "UNEXPECTEDLY SUCCEEDED" tests.
8
9open F, ">", "todo";
10$TESTOUT = *F{IO};
11$TESTERR = *F{IO};
12my $tests = 5; 
13plan tests => $tests, todo => [2..$tests]; 
14
15
16# tests to go to the output file
17ok(1);
18ok(1);
19ok(0,1);
20ok(0,1,"need more tuits");
21ok(1,1);
22
23close F;
24$TESTOUT = *STDOUT{IO};
25$TESTERR = *STDERR{IO};
26$ntest = 1;
27
28open F, "<", "todo";
29my $out = join '', <F>;
30close F;
31unlink "todo";
32
33my $expect = <<"EXPECT";
341..5 todo 2 3 4 5;
35ok 1
36ok 2 # ($0 at line 18 TODO?!)
37not ok 3
38# Test 3 got: '0' ($0 at line 19 *TODO*)
39#   Expected: '1'
40not ok 4
41# Test 4 got: '0' ($0 at line 20 *TODO*)
42#   Expected: '1' (need more tuits)
43ok 5 # ($0 at line 21 TODO?!)
44EXPECT
45
46
47sub commentless {
48  my $in = $_[0];
49  $in =~ s/^#[^\n]*\n//mg;
50  $in =~ s/\n#[^\n]*$//mg;
51  return $in;
52}
53
54print "1..1\n";
55ok( commentless($out), commentless($expect) );
56