6a73ae1c2e6e91ec51f90beb3f03f5650fc5abe8
[p5sagit/p5-mst-13.2.git] / t / comp / redef.t
1 #!./perl
2 #
3 # Contributed by Graham Barr <Graham.Barr@tiuk.ti.com>
4
5 BEGIN {
6     $^W = 1;
7     $warn = "";
8     $SIG{__WARN__} = sub { $warn .= join("",@_) }
9 }
10
11 sub ok ($$) { 
12     print $_[1] ? "ok " : "not ok ", $_[0], "\n";
13 }
14
15 print "1..18\n";
16
17 sub sub0 { 1 }
18 sub sub0 { 2 }
19
20 ok 1, $warn =~ s/Subroutine sub0 redefined[^\n]+\n//s;
21
22 sub sub1    { 1 }
23 sub sub1 () { 2 }
24
25 ok 2, $warn =~ s/Prototype mismatch: \Q(none) vs ()\E[^\n]+\n//s;
26 ok 3, $warn =~ s/Subroutine sub1 redefined[^\n]+\n//s;
27
28 sub sub2     { 1 }
29 sub sub2 ($) { 2 }
30
31 ok 4, $warn =~ s/Prototype mismatch: \Q(none) vs ($)\E[^\n]+\n//s;
32 ok 5, $warn =~ s/Subroutine sub2 redefined[^\n]+\n//s;
33
34 sub sub3 () { 1 }
35 sub sub3    { 2 }
36
37 ok 6, $warn =~ s/Prototype mismatch: \Q() vs (none)\E[^\n]+\n//s;
38 ok 7, $warn =~ s/Constant subroutine sub3 redefined[^\n]+\n//s;
39
40 sub sub4 () { 1 }
41 sub sub4 () { 2 }
42
43 ok 8, $warn =~ s/Constant subroutine sub4 redefined[^\n]+\n//s;
44
45 sub sub5 ()  { 1 }
46 sub sub5 ($) { 2 }
47
48 ok  9, $warn =~ s/Prototype mismatch: \Q() vs ($)\E[^\n]+\n//s;
49 ok 10, $warn =~ s/Constant subroutine sub5 redefined[^\n]+\n//s;
50
51 sub sub6 ($) { 1 }
52 sub sub6     { 2 }
53
54 ok 11, $warn =~ s/Prototype mismatch: \Q($) vs (none)\E[^\n]+\n//s;
55 ok 12, $warn =~ s/Subroutine sub6 redefined[^\n]+\n//s;
56
57 sub sub7 ($) { 1 }
58 sub sub7 ()  { 2 }
59
60 ok 13, $warn =~ s/Prototype mismatch: \Q($) vs ()\E[^\n]+\n//s;
61 ok 14, $warn =~ s/Subroutine sub7 redefined[^\n]+\n//s;
62
63 sub sub8 ($) { 1 }
64 sub sub8 ($) { 2 }
65
66 ok 15, $warn =~ s/Subroutine sub8 redefined[^\n]+\n//s;
67
68 sub sub9 ($@) { 1 }
69 sub sub9 ($)  { 2 }
70
71 ok 16, $warn =~ s/Prototype mismatch: \(\$\Q@) vs ($)\E[^\n]+\n//s;
72 ok 17, $warn =~ s/Subroutine sub9 redefined[^\n]+\n//s;
73
74 ok 18, $_ eq '';
75
76 # If we got any errors that we were not expecting, then print them
77 print $_ if length $_;
78
79