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, ">", "mix";
10$TESTOUT = *F{IO};
11$TESTERR = *F{IO};
12
13plan tests => 4, todo => [2,3];
14
15# line 15
16ok(sub { 
17       my $r = 0;
18       for (my $x=0; $x < 10; $x++) {
19	   $r += $x*($r+1);
20       }
21       $r
22   }, 3628799);
23
24ok(0);
25ok(1);
26
27skip(1,0);
28
29close F;
30$TESTOUT = *STDOUT{IO};
31$TESTERR = *STDERR{IO};
32$ntest = 1;
33
34open F, "<", "mix";
35my $out = join '', <F>;
36close F;
37unlink "mix";
38
39my $expect = <<"EXPECT";
401..4 todo 2 3;
41ok 1
42not ok 2
43# Failed test 2 in $0 at line 23 *TODO*
44ok 3 # ($0 at line 24 TODO?!)
45ok 4 # skip
46EXPECT
47
48
49sub commentless {
50  my $in = $_[0];
51  $in =~ s/^#[^\n]*\n//mg;
52  $in =~ s/\n#[^\n]*$//mg;
53  return $in;
54}
55
56
57print "1..1\n";
58ok( commentless($out), commentless($expect) );
59