]> git.vpit.fr Git - perl/modules/indirect.git/blob - t/20-bad.t
No longer fork to test. IPC::Cmd is no longer required
[perl/modules/indirect.git] / t / 20-bad.t
1 #!perl -T
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 28 * 2;
7
8 my ($obj, $pkg, $cb, $x);
9
10 {
11  local $/ = "####\n";
12  while (<DATA>) {
13   chomp;
14   {
15    use indirect;
16    local $SIG{__WARN__} = sub { die 'warn:' . join(' ', @_) };
17    eval "die qq{ok\\n}; $_";
18   }
19   is($@, "ok\n", $_);
20   {
21    no indirect;
22    local $SIG{__WARN__} = sub { die 'warn:' . join(' ', @_) };
23    eval "die qq{the code compiled but it shouldn't have\n}; $_";
24   }
25   like($@, qr/^warn:Indirect\s+call\s+of\s+method\s+"(?:new|meh|HlaghHlagh)"\s+on\s+object\s+"(?:Hlagh|newnew|\$x|\$_)"/, $_);
26  }
27 }
28
29 __DATA__
30 $obj = new Hlagh;
31 ####
32 $obj = new Hlagh();
33 ####
34 $obj = new Hlagh(1);
35 ####
36 $obj = new Hlagh(1, 2);
37 ####
38 $obj = new        Hlagh            ;
39 ####
40 $obj = new        Hlagh     (      )      ;
41 ####
42 $obj = new        Hlagh     (      1        )     ;
43 ####
44 $obj = new        Hlagh     (      1        ,       2        )     ;
45 ####
46 $obj = new    
47                       Hlagh             
48         ;
49 ####
50 $obj = new   
51                                        Hlagh     (    
52                   )      ;
53 ####
54 $obj =
55               new    
56     Hlagh     (      1   
57             )     ;
58 ####
59 $obj =
60 new      
61 Hlagh    
62                    (      1        ,  
63                 2        )     ;
64 ####
65 $obj = new $x;
66 ####
67 $obj = new $x();
68 ####
69 $obj = new $x('foo');
70 ####
71 $obj = new $x qq{foo}, 1;
72 ####
73 $obj = new $x qr{foo\s+bar}, 1 .. 1;
74 ####
75 $obj = new $x(qw/bar baz/);
76 ####
77 $obj = new
78           $_;
79 ####
80 $obj = new
81              $_     (        );
82 ####
83 $obj = new $_      qr/foo/  ;
84 ####
85 $obj = new $_     qq(bar baz);
86 ####
87 meh $x;
88 ####
89 meh $x, 1, 2;
90 ####
91 $obj = HlaghHlagh Hlagh;
92 ####
93 $obj = HlaghHlagh Hlagh; # HlaghHlagh Hlagh
94 ####
95 $obj = new newnew;
96 ####
97 $obj = new newnew; # new newnew