This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
bump version to 5.16.0 RC0
[perl5.git] / cpan / Test / t / fail.t
CommitLineData
809908f7
MS
1# -*-perl-*-
2use strict;
3use vars qw($Expect);
711cdd39 4use Test qw($TESTOUT $TESTERR $ntest ok skip plan);
809908f7
MS
5plan tests => 14;
6
7open F, ">fails";
8$TESTOUT = *F{IO};
711cdd39 9$TESTERR = *F{IO};
809908f7
MS
10
11my $r=0;
12{
13 # Shut up deprecated usage warning.
14 local $^W = 0;
15 $r |= skip(0,0);
16}
17$r |= ok(0);
18$r |= ok(0,1);
19$r |= ok(sub { 1+1 }, 3);
20$r |= ok(sub { 1+1 }, sub { 2 * 0});
21
22my @list = (0,0);
23$r |= ok @list, 1, "\@list=".join(',',@list);
24$r |= ok @list, 1, sub { "\@list=".join ',',@list };
25$r |= ok 'segmentation fault', '/bongo/';
26
27for (1..2) { $r |= ok(0); }
28
29$r |= ok(1, undef);
30$r |= ok(undef, 1);
31
32ok($r); # (failure==success :-)
33
34close F;
35$TESTOUT = *STDOUT{IO};
711cdd39 36$TESTERR = *STDERR{IO};
809908f7
MS
37$ntest = 1;
38
39open F, "fails";
40my $O;
41while (<F>) { $O .= $_; }
42close F;
43unlink "fails";
44
45ok join(' ', map { m/(\d+)/; $1 } grep /^not ok/, split /\n+/, $O),
46 join(' ', 1..13);
47
48my @got = split /not ok \d+\n/, $O;
49shift @got;
50
51$Expect =~ s/\n+$//;
52my @expect = split /\n\n/, $Expect;
53
75fa620a
SB
54
55sub commentless {
56 my $in = $_[0];
57 $in =~ s/^#[^\n]*\n//mg;
58 $in =~ s/\n#[^\n]*$//mg;
59 return $in;
60}
61
62
809908f7 63for (my $x=0; $x < @got; $x++) {
75fa620a 64 ok commentless($got[$x]), commentless($expect[$x]."\n");
809908f7
MS
65}
66
67
68BEGIN {
69 $Expect = <<"EXPECT";
711cdd39 70# Failed test 1 in $0 at line 15
809908f7 71
711cdd39 72# Failed test 2 in $0 at line 17
809908f7 73
711cdd39 74# Test 3 got: '0' ($0 at line 18)
809908f7
MS
75# Expected: '1'
76
711cdd39 77# Test 4 got: '2' ($0 at line 19)
809908f7
MS
78# Expected: '3'
79
711cdd39 80# Test 5 got: '2' ($0 at line 20)
809908f7
MS
81# Expected: '0'
82
711cdd39 83# Test 6 got: '2' ($0 at line 23)
809908f7
MS
84# Expected: '1' (\@list=0,0)
85
711cdd39 86# Test 7 got: '2' ($0 at line 24)
809908f7
MS
87# Expected: '1' (\@list=0,0)
88
711cdd39 89# Test 8 got: 'segmentation fault' ($0 at line 25)
809908f7
MS
90# Expected: qr{bongo}
91
711cdd39 92# Failed test 9 in $0 at line 27
809908f7 93
711cdd39 94# Failed test 10 in $0 at line 27 fail #2
809908f7 95
711cdd39 96# Failed test 11 in $0 at line 29
809908f7 97
711cdd39 98# Test 12 got: <UNDEF> ($0 at line 30)
809908f7
MS
99# Expected: '1'
100
711cdd39 101# Failed test 13 in $0 at line 32
809908f7
MS
102EXPECT
103
104}