]> git.vpit.fr Git - perl/modules/indirect.git/blob - t/10-good.t
6559b5410a41f3ffa53fce7d106b5e78157c24e3
[perl/modules/indirect.git] / t / 10-good.t
1 #!perl -T
2
3 package Dongs;
4
5 sub new;
6
7 package main;
8
9 use strict;
10 use warnings;
11
12 use Test::More tests => 53 * 4;
13
14 use feature 'state';
15
16 my ($obj, $pkg, $cb, $x, @a);
17 our $y;
18 state $z;
19 sub meh;
20
21 {
22  local $/ = "####\n";
23  while (<DATA>) {
24   chomp;
25   s/\s*$//;
26   local $SIG{__WARN__} = sub { die 'warn:' . join(' ', @_) };
27   {
28    use indirect;
29    eval "die qq{ok\\n}; $_";
30   }
31   is($@, "ok\n", "use indirect: $_");
32   {
33    no indirect;
34    eval "die qq{ok\n}; $_";
35   }
36   is($@, "ok\n", "no indirect: $_");
37   s/Hlagh/Dongs/g;
38   {
39    use indirect;
40    eval "die qq{ok\\n}; $_";
41   }
42   is($@, "ok\n", "use indirect, defined: $_");
43   {
44    no indirect;
45    eval "die qq{ok\\n}; $_";
46   }
47   is($@, "ok\n", "no indirect, defined: $_");
48  }
49 }
50
51 __DATA__
52 $obj = Hlagh->new;
53 ####
54 $obj = Hlagh->new();
55 ####
56 $obj = Hlagh->new(1);
57 ####
58 $obj = Hlagh->new(q{foo}, bar => $obj);
59 ####
60 $obj = Hlagh   ->   new   ;
61 ####
62 $obj = Hlagh   ->   new   (   )   ;
63 ####
64 $obj = Hlagh   ->   new   (   1   )   ;
65 ####
66 $obj = Hlagh   ->   new   (   'foo'   ,   bar =>   $obj   );
67 ####
68 $obj = Hlagh
69             ->
70                           new   ;
71 ####
72 $obj = Hlagh  
73
74       ->   
75 new   ( 
76  )   ;
77 ####
78 $obj = Hlagh
79                                        ->   new   ( 
80                1   )   ;
81 ####
82 $obj = Hlagh   ->
83                               new   (   "foo"
84   ,    bar     
85                =>        $obj       );
86 ####
87 $obj = Hlagh->$cb;
88 ####
89 $obj = Hlagh->$cb();
90 ####
91 $obj = Hlagh->$cb($pkg);
92 ####
93 $obj = Hlagh->$cb(sub { 'foo' },  bar => $obj);
94 ####
95 $obj = $pkg->new   ;
96 ####
97 $obj = $pkg  ->   new  (   );
98 ####
99 $obj = $pkg       
100            -> 
101         new ( $pkg );
102 ####
103 $obj = 
104          $pkg
105 ->
106 new        (     qr/foo/,
107       foo => qr/bar/   );
108 ####
109 $obj 
110   =  
111 $pkg
112 ->
113 $cb
114 ;
115 ####
116 $obj = $pkg    ->   ($cb)   ();
117 ####
118 $obj = $pkg->$cb( $obj  );
119 ####
120 $obj = $pkg->$cb(qw/foo bar baz/);
121 ####
122 $obj = new { $x };
123 ####
124 $obj = new
125   {
126      $x  }
127   ();
128 ####
129 $obj = new {
130   $x  } qq/foo/;
131 ####
132 $obj = new
133    {
134       $x
135     }(qw/bar baz/);
136 ####
137 meh;
138 ####
139 meh $_;
140 ####
141 meh $x;
142 ####
143 meh $x, 1, 2;
144 ####
145 meh $y;
146 ####
147 meh $y, 1, 2;
148 ####
149 meh $z;
150 ####
151 meh $z, 1, 2;
152 ####
153 print;
154 ####
155 print $_;
156 ####
157 print $x;
158 ####
159 print $x "oh hai\n";
160 ####
161 print $y;
162 ####
163 print $y "dongs\n";
164 ####
165 print $z;
166 ####
167 print $z "hlagh\n";
168 ####
169 print STDOUT "bananananananana\n";
170 ####
171 $x->foo($pkg->$cb)
172 ####
173 $obj = "apple ${\(new Hlagh)} pear"
174 ####
175 $obj = "apple @{[new Hlagh]} pear"
176 ####
177 s/dongs/new Hlagh/e;
178 ####
179 exec $x $x, @a;
180 ####
181 exec { $a[0] } @a;
182 ####
183 system $x $x, @a;
184 ####
185 system { $a[0] } @a;