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