Commit | Line | Data |
---|---|---|
8d93267c GS |
1 | Check warnings::enabled & warnings::warn |
2 | ||
3 | __END__ | |
4 | ||
a95b6808 JH |
5 | --FILE-- abc0.pm |
6 | package abc0 ; | |
8d93267c | 7 | use warnings "io" ; |
d3a7d8c7 | 8 | print "ok1\n" if ! warnings::enabled('all') ; |
8d93267c GS |
9 | print "ok2\n" if ! warnings::enabled("io") ; |
10 | 1; | |
a95b6808 | 11 | --FILE-- |
8d93267c | 12 | no warnings; |
a95b6808 | 13 | use abc0 ; |
8d93267c GS |
14 | EXPECT |
15 | ok1 | |
16 | ok2 | |
17 | ######## | |
18 | ||
a95b6808 JH |
19 | --FILE-- abc1.pm |
20 | package abc1 ; | |
8d93267c | 21 | no warnings ; |
d3a7d8c7 | 22 | print "ok1\n" if !warnings::enabled('all') ; |
8d93267c GS |
23 | print "ok2\n" if warnings::enabled("syntax") ; |
24 | 1; | |
a95b6808 | 25 | --FILE-- |
8d93267c | 26 | use warnings 'syntax' ; |
a95b6808 | 27 | use abc1 ; |
8d93267c GS |
28 | EXPECT |
29 | ok1 | |
30 | ok2 | |
31 | ######## | |
32 | ||
a95b6808 JH |
33 | --FILE-- abc2.pm |
34 | package abc2 ; | |
8d93267c | 35 | use warnings 'syntax' ; |
d3a7d8c7 | 36 | print "ok1\n" if warnings::enabled('io') ; |
8d93267c GS |
37 | print "ok2\n" if ! warnings::enabled("syntax") ; |
38 | 1; | |
a95b6808 | 39 | --FILE-- |
8d93267c | 40 | use warnings 'io' ; |
a95b6808 | 41 | use abc2 ; |
8d93267c GS |
42 | EXPECT |
43 | ok1 | |
44 | ok2 | |
45 | ######## | |
46 | ||
a95b6808 | 47 | --FILE-- abc3 |
8d93267c | 48 | no warnings ; |
d3a7d8c7 | 49 | print "ok1\n" if !warnings::enabled('all') ; |
4f527b71 | 50 | print "ok2\n" if !warnings::enabled("syntax") ; |
8d93267c | 51 | 1; |
a95b6808 | 52 | --FILE-- |
8d93267c | 53 | use warnings 'syntax' ; |
a95b6808 | 54 | require "abc3" ; |
8d93267c GS |
55 | EXPECT |
56 | ok1 | |
57 | ok2 | |
58 | ######## | |
59 | ||
a95b6808 | 60 | --FILE-- abc4 |
8d93267c | 61 | use warnings 'syntax' ; |
d3a7d8c7 | 62 | print "ok1\n" if ! warnings::enabled('all') ; |
8d93267c | 63 | print "ok2\n" if ! warnings::enabled("syntax") ; |
4f527b71 | 64 | print "ok3\n" if ! warnings::enabled("io") ; |
8d93267c | 65 | 1; |
a95b6808 | 66 | --FILE-- |
8d93267c | 67 | use warnings 'io' ; |
a95b6808 | 68 | require "abc4" ; |
8d93267c GS |
69 | EXPECT |
70 | ok1 | |
71 | ok2 | |
72 | ok3 | |
73 | ######## | |
74 | ||
a95b6808 JH |
75 | --FILE-- abc5.pm |
76 | package abc5 ; | |
8d93267c GS |
77 | no warnings ; |
78 | sub check { | |
d3a7d8c7 | 79 | print "ok1\n" if !warnings::enabled('all') ; |
8d93267c GS |
80 | print "ok2\n" if warnings::enabled("syntax") ; |
81 | } | |
82 | 1; | |
a95b6808 | 83 | --FILE-- |
8d93267c | 84 | use warnings 'syntax' ; |
a95b6808 JH |
85 | use abc5 ; |
86 | abc5::check() ; | |
8d93267c GS |
87 | EXPECT |
88 | ok1 | |
89 | ok2 | |
90 | ######## | |
91 | ||
a95b6808 JH |
92 | --FILE-- abc6.pm |
93 | package abc6 ; | |
8d93267c GS |
94 | use warnings 'io' ; |
95 | sub check { | |
d3a7d8c7 GS |
96 | print "ok1\n" if ! warnings::enabled('all') ; |
97 | print "ok2\n" if warnings::enabled("syntax") ; | |
8d93267c GS |
98 | print "ok3\n" if ! warnings::enabled("io") ; |
99 | } | |
100 | 1; | |
a95b6808 | 101 | --FILE-- |
8d93267c | 102 | use warnings 'syntax' ; |
a95b6808 JH |
103 | use abc6 ; |
104 | abc6::check() ; | |
8d93267c GS |
105 | EXPECT |
106 | ok1 | |
107 | ok2 | |
108 | ok3 | |
109 | ######## | |
110 | ||
a95b6808 JH |
111 | --FILE-- abc7 |
112 | package abc7 ; | |
8d93267c GS |
113 | no warnings ; |
114 | sub check { | |
d3a7d8c7 | 115 | print "ok1\n" if !warnings::enabled('all') ; |
8d93267c GS |
116 | print "ok2\n" if warnings::enabled("syntax") ; |
117 | } | |
118 | 1; | |
a95b6808 | 119 | --FILE-- |
8d93267c | 120 | use warnings 'syntax' ; |
a95b6808 JH |
121 | require "abc7" ; |
122 | abc7::check() ; | |
8d93267c GS |
123 | EXPECT |
124 | ok1 | |
125 | ok2 | |
126 | ######## | |
127 | ||
a95b6808 JH |
128 | --FILE-- abc8 |
129 | package abc8 ; | |
8d93267c GS |
130 | use warnings 'io' ; |
131 | sub check { | |
d3a7d8c7 GS |
132 | print "ok1\n" if ! warnings::enabled('all') ; |
133 | print "ok2\n" if warnings::enabled("syntax") ; | |
8d93267c GS |
134 | print "ok3\n" if ! warnings::enabled("io") ; |
135 | } | |
136 | 1; | |
a95b6808 | 137 | --FILE-- |
8d93267c | 138 | use warnings 'syntax' ; |
a95b6808 JH |
139 | require "abc8" ; |
140 | abc8::check() ; | |
8d93267c GS |
141 | EXPECT |
142 | ok1 | |
143 | ok2 | |
144 | ok3 | |
145 | ######## | |
146 | ||
a95b6808 JH |
147 | --FILE-- abc9.pm |
148 | package abc9 ; | |
8d93267c | 149 | use warnings "io" ; |
d3a7d8c7 | 150 | print "ok1\n" if ! warnings::enabled('all') ; |
8d93267c GS |
151 | print "ok2\n" if ! warnings::enabled("io") ; |
152 | 1; | |
153 | --FILE-- def.pm | |
f89e79d6 | 154 | package def; |
8d93267c | 155 | no warnings; |
a95b6808 | 156 | use abc9 ; |
8d93267c | 157 | 1; |
a95b6808 | 158 | --FILE-- |
8d93267c GS |
159 | use warnings; |
160 | use def ; | |
161 | EXPECT | |
162 | ok1 | |
163 | ok2 | |
164 | ######## | |
165 | ||
a95b6808 JH |
166 | --FILE-- abc10.pm |
167 | package abc10 ; | |
8d93267c | 168 | no warnings ; |
d3a7d8c7 | 169 | print "ok1\n" if ! warnings::enabled('all') ; |
8d93267c GS |
170 | print "ok2\n" if warnings::enabled("syntax") ; |
171 | print "ok3\n" if !warnings::enabled("io") ; | |
172 | 1; | |
173 | --FILE-- def.pm | |
174 | use warnings 'syntax' ; | |
d3a7d8c7 | 175 | print "ok4\n" if !warnings::enabled('all') ; |
4f527b71 | 176 | print "ok5\n" if !warnings::enabled("io") ; |
a95b6808 | 177 | use abc10 ; |
8d93267c GS |
178 | 1; |
179 | --FILE-- | |
180 | use warnings 'io' ; | |
181 | use def ; | |
182 | EXPECT | |
183 | ok1 | |
184 | ok2 | |
185 | ok3 | |
186 | ok4 | |
187 | ok5 | |
188 | ######## | |
189 | ||
a95b6808 JH |
190 | --FILE-- abc11.pm |
191 | package abc11 ; | |
8d93267c GS |
192 | no warnings ; |
193 | sub check { | |
d3a7d8c7 | 194 | print "ok1\n" if !warnings::enabled('all') ; |
8d93267c GS |
195 | print "ok2\n" if warnings::enabled("syntax") ; |
196 | } | |
197 | 1; | |
a95b6808 | 198 | --FILE-- |
8d93267c | 199 | use warnings 'syntax' ; |
a95b6808 JH |
200 | use abc11 ; |
201 | eval { | |
202 | abc11::check() ; | |
c3186b65 | 203 | }; |
8d93267c GS |
204 | print $@ ; |
205 | EXPECT | |
206 | ok1 | |
207 | ok2 | |
208 | ######## | |
209 | ||
a95b6808 JH |
210 | --FILE-- abc12.pm |
211 | package abc12 ; | |
8d93267c GS |
212 | use warnings 'io' ; |
213 | sub check { | |
d3a7d8c7 GS |
214 | print "ok1\n" if ! warnings::enabled('all') ; |
215 | print "ok2\n" if warnings::enabled("syntax") ; | |
8d93267c GS |
216 | print "ok3\n" if ! warnings::enabled("io") ; |
217 | } | |
218 | 1; | |
a95b6808 | 219 | --FILE-- |
8d93267c | 220 | use warnings 'syntax' ; |
a95b6808 JH |
221 | use abc12 ; |
222 | eval { | |
223 | abc12::check() ; | |
c3186b65 | 224 | } ; |
8d93267c GS |
225 | print $@ ; |
226 | EXPECT | |
227 | ok1 | |
228 | ok2 | |
229 | ok3 | |
230 | ######## | |
231 | ||
a95b6808 JH |
232 | --FILE-- abc13 |
233 | package abc13 ; | |
8d93267c GS |
234 | no warnings ; |
235 | sub check { | |
d3a7d8c7 | 236 | print "ok1\n" if !warnings::enabled('all') ; |
8d93267c GS |
237 | print "ok2\n" if warnings::enabled("syntax") ; |
238 | } | |
239 | 1; | |
a95b6808 | 240 | --FILE-- |
8d93267c | 241 | use warnings 'syntax' ; |
a95b6808 JH |
242 | require "abc13" ; |
243 | eval { | |
244 | abc13::check() ; | |
c3186b65 | 245 | } ; |
8d93267c GS |
246 | print $@ ; |
247 | EXPECT | |
248 | ok1 | |
249 | ok2 | |
250 | ######## | |
251 | ||
a95b6808 JH |
252 | --FILE-- abc14 |
253 | package abc14 ; | |
8d93267c GS |
254 | use warnings 'io' ; |
255 | sub check { | |
d3a7d8c7 | 256 | print "ok1\n" if !warnings::enabled('all') ; |
8d93267c GS |
257 | print "ok2\n" if warnings::enabled("syntax") ; |
258 | print "ok3\n" if warnings::enabled("io") ; | |
259 | } | |
260 | 1; | |
a95b6808 | 261 | --FILE-- |
8d93267c | 262 | use warnings 'syntax' ; |
a95b6808 JH |
263 | require "abc14" ; |
264 | eval { | |
265 | use warnings 'io' ; | |
266 | abc14::check() ; | |
c3186b65 | 267 | }; |
a95b6808 | 268 | abc14::check() ; |
8d93267c GS |
269 | print $@ ; |
270 | EXPECT | |
271 | ok1 | |
272 | ok2 | |
273 | ok3 | |
274 | ok1 | |
275 | ok2 | |
276 | ######## | |
277 | ||
a95b6808 JH |
278 | --FILE-- abc15.pm |
279 | package abc15 ; | |
8d93267c GS |
280 | use warnings 'io' ; |
281 | sub check { | |
d3a7d8c7 | 282 | print "ok1\n" if ! warnings::enabled('all') ; |
8d93267c GS |
283 | print "ok2\n" if warnings::enabled("syntax") ; |
284 | print "ok3\n" if ! warnings::enabled("io") ; | |
285 | } | |
286 | 1; | |
a95b6808 | 287 | --FILE-- |
8d93267c | 288 | use warnings 'syntax' ; |
a95b6808 JH |
289 | use abc15 ; |
290 | sub fred { abc15::check() } | |
8d93267c GS |
291 | fred() ; |
292 | EXPECT | |
293 | ok1 | |
294 | ok2 | |
295 | ok3 | |
296 | ######## | |
297 | ||
a95b6808 JH |
298 | --FILE-- abc16.pm |
299 | package abc16 ; | |
8d93267c GS |
300 | use warnings 'io' ; |
301 | sub check { | |
d3a7d8c7 | 302 | print "ok1\n" if ! warnings::enabled('all') ; |
8d93267c GS |
303 | } |
304 | 1; | |
a95b6808 | 305 | --FILE-- |
8d93267c | 306 | use warnings 'syntax' ; |
a95b6808 JH |
307 | use abc16 ; |
308 | sub fred { no warnings ; abc16::check() } | |
8d93267c GS |
309 | fred() ; |
310 | EXPECT | |
311 | ok1 | |
312 | ######## | |
313 | ||
a95b6808 JH |
314 | --FILE-- abc17.pm |
315 | package abc17 ; | |
8d93267c GS |
316 | use warnings 'misc' ; |
317 | sub check { | |
d3a7d8c7 | 318 | print "ok1\n" if ! warnings::enabled('all') ; |
8d93267c GS |
319 | print "ok2\n" if warnings::enabled("syntax") ; |
320 | print "ok3\n" if warnings::enabled("io") ; | |
321 | print "ok4\n" if ! warnings::enabled("misc") ; | |
322 | } | |
323 | 1; | |
a95b6808 | 324 | --FILE-- |
8d93267c | 325 | use warnings 'syntax' ; |
a95b6808 JH |
326 | use abc17 ; |
327 | sub fred { use warnings 'io' ; abc17::check() } | |
8d93267c GS |
328 | fred() ; |
329 | EXPECT | |
330 | ok1 | |
331 | ok2 | |
332 | ok3 | |
333 | ok4 | |
334 | ######## | |
335 | ||
336 | # check warnings::warn | |
337 | use warnings ; | |
a95b6808 JH |
338 | eval { |
339 | warnings::warn() | |
c3186b65 | 340 | } ; |
8d93267c | 341 | print $@ ; |
a95b6808 JH |
342 | eval { |
343 | warnings::warn("fred", "joe") | |
c3186b65 | 344 | } ; |
8d93267c GS |
345 | print $@ ; |
346 | EXPECT | |
879b0cab Z |
347 | Usage: warnings::warn([category,] 'message') at - line 5. |
348 | Unknown warnings category 'fred' at - line 9. | |
7e6d00f8 PM |
349 | ######## |
350 | ||
351 | # check warnings::warnif | |
352 | use warnings ; | |
a95b6808 JH |
353 | eval { |
354 | warnings::warnif() | |
c3186b65 | 355 | } ; |
7e6d00f8 | 356 | print $@ ; |
a95b6808 JH |
357 | eval { |
358 | warnings::warnif("fred", "joe") | |
c3186b65 | 359 | } ; |
7e6d00f8 PM |
360 | print $@ ; |
361 | EXPECT | |
879b0cab Z |
362 | Usage: warnings::warnif([category,] 'message') at - line 5. |
363 | Unknown warnings category 'fred' at - line 9. | |
8d93267c GS |
364 | ######## |
365 | ||
a95b6808 JH |
366 | --FILE-- abc18.pm |
367 | package abc18 ; | |
8d93267c GS |
368 | use warnings 'misc' ; |
369 | sub check { warnings::warn("io", "hello") } | |
370 | 1; | |
371 | --FILE-- | |
372 | use warnings "io" ; | |
a95b6808 JH |
373 | use abc18; |
374 | abc18::check() ; | |
8d93267c | 375 | EXPECT |
879b0cab | 376 | hello at - line 3. |
8d93267c GS |
377 | ######## |
378 | ||
a95b6808 JH |
379 | --FILE-- abc19.pm |
380 | package abc19 ; | |
8d93267c GS |
381 | use warnings 'misc' ; |
382 | sub check { warnings::warn("misc", "hello") } | |
383 | 1; | |
384 | --FILE-- | |
385 | use warnings "io" ; | |
a95b6808 JH |
386 | use abc19; |
387 | abc19::check() ; | |
8d93267c | 388 | EXPECT |
879b0cab | 389 | hello at - line 3. |
8d93267c GS |
390 | ######## |
391 | ||
a95b6808 JH |
392 | --FILE-- abc20.pm |
393 | package abc20 ; | |
8d93267c GS |
394 | use warnings 'misc' ; |
395 | sub check { warnings::warn("io", "hello") } | |
396 | 1; | |
397 | --FILE-- | |
398 | use warnings qw( FATAL deprecated ) ; | |
a95b6808 JH |
399 | use abc20; |
400 | eval { | |
401 | abc20::check() ; | |
c3186b65 | 402 | } ; |
8d93267c GS |
403 | print "[[$@]]\n"; |
404 | EXPECT | |
879b0cab | 405 | hello at - line 4. |
8d93267c GS |
406 | [[]] |
407 | ######## | |
408 | ||
a95b6808 JH |
409 | --FILE-- abc21.pm |
410 | package abc21 ; | |
8d93267c GS |
411 | use warnings 'misc' ; |
412 | sub check { warnings::warn("io", "hello") } | |
413 | 1; | |
414 | --FILE-- | |
415 | use warnings qw( FATAL io ) ; | |
a95b6808 JH |
416 | use abc21; |
417 | eval { | |
418 | abc21::check() ; | |
c3186b65 | 419 | } ; |
8d93267c GS |
420 | print "[[$@]]\n"; |
421 | EXPECT | |
879b0cab | 422 | [[hello at - line 4. |
8d93267c | 423 | ]] |
d3a7d8c7 GS |
424 | ######## |
425 | -W | |
a95b6808 JH |
426 | --FILE-- abc22.pm |
427 | package abc22 ; | |
d3a7d8c7 GS |
428 | use warnings "io" ; |
429 | print "ok1\n" if warnings::enabled("io") ; | |
430 | print "ok2\n" if warnings::enabled("all") ; | |
431 | 1; | |
a95b6808 | 432 | --FILE-- |
d3a7d8c7 | 433 | no warnings; |
a95b6808 | 434 | use abc22 ; |
d3a7d8c7 GS |
435 | EXPECT |
436 | ok1 | |
437 | ok2 | |
438 | ######## | |
439 | -X | |
a95b6808 JH |
440 | --FILE-- abc23.pm |
441 | package abc23 ; | |
d3a7d8c7 GS |
442 | use warnings "io" ; |
443 | print "ok1\n" if !warnings::enabled("io") ; | |
444 | print "ok2\n" if !warnings::enabled("all") ; | |
445 | 1; | |
a95b6808 | 446 | --FILE-- |
d3a7d8c7 | 447 | use warnings; |
a95b6808 | 448 | use abc23 ; |
d3a7d8c7 GS |
449 | EXPECT |
450 | ok1 | |
451 | ok2 | |
452 | ######## | |
453 | ||
a95b6808 JH |
454 | --FILE-- abc24.pm |
455 | package abc24 ; | |
d3a7d8c7 GS |
456 | no warnings ; |
457 | sub check { | |
458 | print "ok\n" if ! warnings::enabled() ; | |
459 | } | |
460 | 1; | |
a95b6808 | 461 | --FILE-- |
d3a7d8c7 | 462 | use warnings 'syntax' ; |
a95b6808 JH |
463 | use abc24 ; |
464 | abc24::check() ; | |
d3a7d8c7 | 465 | EXPECT |
879b0cab | 466 | package 'abc24' not registered for warnings at abc24.pm line 4. |
7e6d00f8 PM |
467 | ######## |
468 | ||
a95b6808 JH |
469 | --FILE-- abc25.pm |
470 | package abc25 ; | |
7e6d00f8 PM |
471 | no warnings ; |
472 | sub check { | |
473 | warnings::warn("fred") ; | |
474 | } | |
475 | 1; | |
a95b6808 | 476 | --FILE-- |
7e6d00f8 | 477 | use warnings 'syntax' ; |
a95b6808 JH |
478 | use abc25 ; |
479 | abc25::check() ; | |
7e6d00f8 | 480 | EXPECT |
879b0cab | 481 | package 'abc25' not registered for warnings at abc25.pm line 4. |
7e6d00f8 PM |
482 | ######## |
483 | ||
a95b6808 JH |
484 | --FILE-- abc26.pm |
485 | package abc26 ; | |
7e6d00f8 PM |
486 | no warnings ; |
487 | sub check { | |
488 | warnings::warnif("fred") ; | |
489 | } | |
490 | 1; | |
a95b6808 | 491 | --FILE-- |
7e6d00f8 | 492 | use warnings 'syntax' ; |
a95b6808 JH |
493 | use abc26 ; |
494 | abc26::check() ; | |
7e6d00f8 | 495 | EXPECT |
879b0cab | 496 | package 'abc26' not registered for warnings at abc26.pm line 4. |
d3a7d8c7 GS |
497 | ######## |
498 | ||
a95b6808 JH |
499 | --FILE-- abc27.pm |
500 | package abc27 ; | |
d3a7d8c7 GS |
501 | use warnings 'io' ; |
502 | use warnings::register ; | |
503 | sub check { | |
504 | print "ok1\n" if warnings::enabled ; | |
505 | print "ok2\n" if warnings::enabled("syntax") ; | |
506 | print "ok3\n" if !warnings::enabled("io") ; | |
507 | } | |
508 | 1; | |
a95b6808 | 509 | --FILE-- |
d3a7d8c7 | 510 | use warnings 'syntax' ; |
a95b6808 JH |
511 | use abc27 ; |
512 | use warnings 'abc27' ; | |
513 | abc27::check() ; | |
d3a7d8c7 GS |
514 | EXPECT |
515 | ok1 | |
516 | ok2 | |
517 | ok3 | |
518 | ######## | |
519 | ||
a95b6808 JH |
520 | --FILE-- abc28.pm |
521 | package abc28 ; | |
d3a7d8c7 GS |
522 | use warnings 'io' ; |
523 | use warnings::register ; | |
524 | sub check { | |
525 | print "ok1\n" if !warnings::enabled ; | |
526 | print "ok2\n" if warnings::enabled("syntax") ; | |
527 | print "ok3\n" if !warnings::enabled("io") ; | |
528 | } | |
529 | 1; | |
a95b6808 | 530 | --FILE-- |
d3a7d8c7 | 531 | use warnings 'syntax' ; |
a95b6808 JH |
532 | use abc28 ; |
533 | abc28::check() ; | |
d3a7d8c7 GS |
534 | EXPECT |
535 | ok1 | |
536 | ok2 | |
537 | ok3 | |
538 | ######## | |
539 | ||
a95b6808 JH |
540 | --FILE-- abc29.pm |
541 | package abc29 ; | |
d3a7d8c7 GS |
542 | no warnings ; |
543 | use warnings::register ; | |
544 | sub check { | |
545 | print "ok1\n" if warnings::enabled ; | |
546 | print "ok2\n" if warnings::enabled("syntax") ; | |
547 | } | |
548 | 1; | |
a95b6808 | 549 | --FILE-- |
d3a7d8c7 | 550 | use warnings 'syntax' ; |
a95b6808 JH |
551 | use abc29 ; |
552 | use warnings 'abc29' ; | |
553 | eval { abc29::check() ; }; | |
d3a7d8c7 GS |
554 | print $@ ; |
555 | EXPECT | |
556 | ok1 | |
557 | ok2 | |
558 | ######## | |
559 | ||
a95b6808 JH |
560 | --FILE-- abc30.pm |
561 | package abc30 ; | |
d3a7d8c7 GS |
562 | use warnings 'io' ; |
563 | use warnings::register ; | |
564 | sub check { | |
565 | print "ok1\n" if !warnings::enabled ; | |
566 | print "ok2\n" if warnings::enabled("syntax") ; | |
567 | print "ok3\n" if !warnings::enabled("io") ; | |
568 | } | |
569 | 1; | |
a95b6808 | 570 | --FILE-- |
d3a7d8c7 | 571 | use warnings 'syntax' ; |
a95b6808 JH |
572 | use abc30 ; |
573 | eval { abc30::check() ; } ; | |
d3a7d8c7 GS |
574 | print $@ ; |
575 | EXPECT | |
576 | ok1 | |
577 | ok2 | |
578 | ok3 | |
579 | ######## | |
580 | ||
a95b6808 JH |
581 | --FILE-- abc31.pm |
582 | package abc31 ; | |
d3a7d8c7 GS |
583 | use warnings 'io' ; |
584 | use warnings::register ; | |
585 | sub check { | |
586 | print "ok1\n" if warnings::enabled ; | |
587 | print "ok2\n" if warnings::enabled("syntax") ; | |
588 | print "ok3\n" if !warnings::enabled("io") ; | |
589 | } | |
590 | 1; | |
a95b6808 | 591 | --FILE-- |
d3a7d8c7 | 592 | use warnings 'syntax' ; |
a95b6808 JH |
593 | use abc31 ; |
594 | use warnings 'abc31' ; | |
595 | sub fred { abc31::check() } | |
d3a7d8c7 GS |
596 | fred() ; |
597 | EXPECT | |
598 | ok1 | |
599 | ok2 | |
600 | ok3 | |
601 | ######## | |
602 | ||
a95b6808 JH |
603 | --FILE-- abc32.pm |
604 | package abc32 ; | |
d3a7d8c7 GS |
605 | use warnings 'io' ; |
606 | use warnings::register ; | |
607 | sub check { | |
608 | print "ok1\n" if ! warnings::enabled ; | |
609 | } | |
610 | 1; | |
a95b6808 | 611 | --FILE-- |
d3a7d8c7 | 612 | use warnings 'syntax' ; |
a95b6808 JH |
613 | use abc32 ; |
614 | sub fred { no warnings ; abc32::check() } | |
d3a7d8c7 GS |
615 | fred() ; |
616 | EXPECT | |
617 | ok1 | |
618 | ######## | |
619 | ||
a95b6808 JH |
620 | --FILE-- abc33.pm |
621 | package abc33 ; | |
d3a7d8c7 GS |
622 | use warnings 'misc' ; |
623 | use warnings::register; | |
624 | sub check { | |
625 | print "ok1\n" if warnings::enabled ; | |
626 | print "ok2\n" if warnings::enabled("syntax") ; | |
627 | print "ok3\n" if warnings::enabled("io") ; | |
628 | print "ok4\n" if ! warnings::enabled("misc") ; | |
629 | } | |
630 | 1; | |
a95b6808 | 631 | --FILE-- |
d3a7d8c7 | 632 | use warnings 'syntax' ; |
a95b6808 JH |
633 | use abc33 ; |
634 | use warnings 'abc33' ; | |
635 | sub fred { use warnings 'io' ; abc33::check() } | |
d3a7d8c7 GS |
636 | fred() ; |
637 | EXPECT | |
638 | ok1 | |
639 | ok2 | |
640 | ok3 | |
641 | ok4 | |
642 | ######## | |
643 | ||
a95b6808 JH |
644 | --FILE-- abc34.pm |
645 | package abc34 ; | |
d3a7d8c7 GS |
646 | use warnings 'misc' ; |
647 | use warnings::register; | |
648 | sub check { warnings::warn("hello") } | |
649 | 1; | |
650 | --FILE-- | |
a95b6808 JH |
651 | use abc34; |
652 | use warnings "abc34" ; | |
653 | abc34::check() ; | |
d3a7d8c7 | 654 | EXPECT |
879b0cab | 655 | hello at - line 3. |
d3a7d8c7 GS |
656 | ######## |
657 | ||
a95b6808 JH |
658 | --FILE-- abc35.pm |
659 | package abc35 ; | |
d3a7d8c7 GS |
660 | use warnings::register; |
661 | sub check { warnings::warn("hello") } | |
662 | 1; | |
663 | --FILE-- | |
a95b6808 JH |
664 | use abc35; |
665 | abc35::check() ; | |
d3a7d8c7 | 666 | EXPECT |
879b0cab | 667 | hello at - line 2. |
d3a7d8c7 GS |
668 | ######## |
669 | ||
a95b6808 JH |
670 | --FILE-- abc36.pm |
671 | package abc36 ; | |
d3a7d8c7 GS |
672 | use warnings::register ; |
673 | sub check { warnings::warn("hello") } | |
674 | 1; | |
675 | --FILE-- | |
a95b6808 | 676 | use abc36; |
d3a7d8c7 | 677 | use warnings qw( FATAL deprecated ) ; |
c3186b65 | 678 | eval { |
a95b6808 | 679 | abc36::check() ; |
c3186b65 | 680 | } ; |
d3a7d8c7 GS |
681 | print "[[$@]]\n"; |
682 | EXPECT | |
879b0cab | 683 | hello at - line 4. |
d3a7d8c7 GS |
684 | [[]] |
685 | ######## | |
686 | ||
a95b6808 JH |
687 | --FILE-- abc37.pm |
688 | package abc37 ; | |
d3a7d8c7 GS |
689 | use warnings::register ; |
690 | sub check { warnings::warn("hello") } | |
691 | 1; | |
692 | --FILE-- | |
a95b6808 JH |
693 | use abc37; |
694 | use warnings qw( FATAL abc37 ) ; | |
695 | eval { | |
696 | abc37::check() ; | |
c3186b65 | 697 | } ; |
d3a7d8c7 GS |
698 | print "[[$@]]\n"; |
699 | EXPECT | |
879b0cab | 700 | [[hello at - line 4. |
d3a7d8c7 GS |
701 | ]] |
702 | ######## | |
703 | -W | |
a95b6808 JH |
704 | --FILE-- abc38.pm |
705 | package abc38 ; | |
d3a7d8c7 GS |
706 | use warnings "io" ; |
707 | use warnings::register ; | |
a95b6808 | 708 | sub check { |
d3a7d8c7 GS |
709 | print "ok1\n" if warnings::enabled() ; |
710 | print "ok2\n" if warnings::enabled("io") ; | |
711 | print "ok3\n" if warnings::enabled("all") ; | |
712 | } | |
713 | 1; | |
a95b6808 | 714 | --FILE-- |
d3a7d8c7 | 715 | no warnings; |
a95b6808 JH |
716 | use abc38 ; |
717 | abc38::check() ; | |
d3a7d8c7 GS |
718 | EXPECT |
719 | ok1 | |
720 | ok2 | |
721 | ok3 | |
722 | ######## | |
723 | -X | |
a95b6808 JH |
724 | --FILE-- abc39.pm |
725 | package abc39 ; | |
d3a7d8c7 GS |
726 | use warnings "io" ; |
727 | use warnings::register ; | |
a95b6808 | 728 | sub check { |
d3a7d8c7 GS |
729 | print "ok1\n" if !warnings::enabled() ; |
730 | print "ok2\n" if !warnings::enabled("io") ; | |
731 | print "ok3\n" if !warnings::enabled("all") ; | |
732 | } | |
733 | 1; | |
a95b6808 | 734 | --FILE-- |
d3a7d8c7 | 735 | no warnings; |
a95b6808 JH |
736 | use abc39 ; |
737 | abc39::check() ; | |
d3a7d8c7 GS |
738 | EXPECT |
739 | ok1 | |
740 | ok2 | |
741 | ok3 | |
742 | ######## | |
743 | ||
a95b6808 JH |
744 | --FILE-- abc40.pm |
745 | package abc40 ; | |
d3a7d8c7 GS |
746 | use warnings "io" ; |
747 | use warnings::register ; | |
a95b6808 | 748 | sub check { |
d3a7d8c7 GS |
749 | print "ok1\n" if warnings::enabled() ; |
750 | print "ok2\n" if warnings::enabled("io") ; | |
751 | print "ok3\n" if warnings::enabled("all") ; | |
752 | } | |
753 | 1; | |
a95b6808 | 754 | --FILE-- |
d3a7d8c7 | 755 | use warnings 'all'; |
a95b6808 JH |
756 | use abc40 ; |
757 | abc40::check() ; | |
d3a7d8c7 GS |
758 | EXPECT |
759 | ok1 | |
760 | ok2 | |
761 | ok3 | |
762 | ######## | |
763 | ||
a95b6808 JH |
764 | --FILE-- abc41.pm |
765 | package abc41 ; | |
d3a7d8c7 GS |
766 | use warnings "io" ; |
767 | use warnings::register ; | |
a95b6808 | 768 | sub check { |
d3a7d8c7 GS |
769 | print "ok1\n" if !warnings::enabled() ; |
770 | print "ok2\n" if !warnings::enabled("io") ; | |
771 | print "ok3\n" if !warnings::enabled("all") ; | |
772 | } | |
773 | 1; | |
a95b6808 JH |
774 | --FILE-- |
775 | use abc41 ; | |
d3a7d8c7 | 776 | no warnings ; |
a95b6808 | 777 | abc41::check() ; |
d3a7d8c7 GS |
778 | EXPECT |
779 | ok1 | |
780 | ok2 | |
781 | ok3 | |
782 | ######## | |
783 | ||
a95b6808 JH |
784 | --FILE-- abc42.pm |
785 | package abc42 ; | |
d3a7d8c7 GS |
786 | use warnings "io" ; |
787 | use warnings::register ; | |
a95b6808 | 788 | sub check { |
d3a7d8c7 GS |
789 | print "ok1\n" if !warnings::enabled() ; |
790 | print "ok2\n" if !warnings::enabled("io") ; | |
791 | print "ok3\n" if !warnings::enabled("all") ; | |
7e6d00f8 | 792 | warnings::warnif("my message 1") ; |
a95b6808 | 793 | warnings::warnif('abc42', "my message 2") ; |
7e6d00f8 PM |
794 | warnings::warnif('io', "my message 3") ; |
795 | warnings::warnif('all', "my message 4") ; | |
d3a7d8c7 GS |
796 | } |
797 | 1; | |
a95b6808 JH |
798 | --FILE-- |
799 | use abc42 ; | |
800 | use warnings 'abc42'; | |
d3a7d8c7 | 801 | no warnings ; |
a95b6808 | 802 | abc42::check() ; |
d3a7d8c7 GS |
803 | EXPECT |
804 | ok1 | |
805 | ok2 | |
806 | ok3 | |
807 | ######## | |
808 | ||
a95b6808 JH |
809 | --FILE-- abc43.pm |
810 | package abc43 ; | |
d3a7d8c7 GS |
811 | use warnings "io" ; |
812 | use warnings::register ; | |
a95b6808 JH |
813 | sub check { |
814 | print "abc43 self" . (warnings::enabled() ? "" : " not") . " enabled\n" ; | |
815 | print "abc43 def" . (warnings::enabled('def') ? "" : " not") . " enabled\n" ; | |
816 | print "abc43 all" . (warnings::enabled('all') ? "" : " not") . " enabled\n" ; | |
d3a7d8c7 GS |
817 | } |
818 | 1; | |
819 | --FILE-- def.pm | |
820 | package def ; | |
821 | use warnings "io" ; | |
822 | use warnings::register ; | |
a95b6808 | 823 | sub check { |
d3a7d8c7 | 824 | print "def self" . (warnings::enabled() ? "" : " not") . " enabled\n" ; |
a95b6808 | 825 | print "def abc43" . (warnings::enabled('abc43') ? "" : " not") . " enabled\n" ; |
d3a7d8c7 GS |
826 | print "def all" . (warnings::enabled('all') ? "" : " not") . " enabled\n" ; |
827 | } | |
828 | 1; | |
a95b6808 JH |
829 | --FILE-- |
830 | use abc43 ; | |
d3a7d8c7 | 831 | use def ; |
a95b6808 JH |
832 | use warnings 'abc43'; |
833 | abc43::check() ; | |
d3a7d8c7 | 834 | def::check() ; |
a95b6808 | 835 | no warnings 'abc43' ; |
d3a7d8c7 | 836 | use warnings 'def' ; |
a95b6808 | 837 | abc43::check() ; |
d3a7d8c7 | 838 | def::check() ; |
a95b6808 | 839 | use warnings 'abc43' ; |
d3a7d8c7 | 840 | use warnings 'def' ; |
a95b6808 | 841 | abc43::check() ; |
d3a7d8c7 | 842 | def::check() ; |
a95b6808 | 843 | no warnings 'abc43' ; |
d3a7d8c7 | 844 | no warnings 'def' ; |
a95b6808 | 845 | abc43::check() ; |
d3a7d8c7 GS |
846 | def::check() ; |
847 | use warnings; | |
a95b6808 | 848 | abc43::check() ; |
d3a7d8c7 | 849 | def::check() ; |
a95b6808 JH |
850 | no warnings 'abc43' ; |
851 | abc43::check() ; | |
d3a7d8c7 GS |
852 | def::check() ; |
853 | EXPECT | |
a95b6808 JH |
854 | abc43 self enabled |
855 | abc43 def not enabled | |
856 | abc43 all not enabled | |
d3a7d8c7 | 857 | def self not enabled |
a95b6808 | 858 | def abc43 enabled |
d3a7d8c7 | 859 | def all not enabled |
a95b6808 JH |
860 | abc43 self not enabled |
861 | abc43 def enabled | |
862 | abc43 all not enabled | |
d3a7d8c7 | 863 | def self enabled |
a95b6808 | 864 | def abc43 not enabled |
d3a7d8c7 | 865 | def all not enabled |
a95b6808 JH |
866 | abc43 self enabled |
867 | abc43 def enabled | |
868 | abc43 all not enabled | |
d3a7d8c7 | 869 | def self enabled |
a95b6808 | 870 | def abc43 enabled |
d3a7d8c7 | 871 | def all not enabled |
a95b6808 JH |
872 | abc43 self not enabled |
873 | abc43 def not enabled | |
874 | abc43 all not enabled | |
d3a7d8c7 | 875 | def self not enabled |
a95b6808 | 876 | def abc43 not enabled |
d3a7d8c7 | 877 | def all not enabled |
a95b6808 JH |
878 | abc43 self enabled |
879 | abc43 def enabled | |
880 | abc43 all enabled | |
d3a7d8c7 | 881 | def self enabled |
a95b6808 | 882 | def abc43 enabled |
d3a7d8c7 | 883 | def all enabled |
a95b6808 JH |
884 | abc43 self not enabled |
885 | abc43 def enabled | |
886 | abc43 all not enabled | |
d3a7d8c7 | 887 | def self enabled |
a95b6808 | 888 | def abc43 not enabled |
d3a7d8c7 | 889 | def all not enabled |
114bafba GS |
890 | ######## |
891 | -w | |
a95b6808 JH |
892 | --FILE-- abc44.pm |
893 | package abc44 ; | |
114bafba GS |
894 | no warnings ; |
895 | use warnings::register ; | |
a95b6808 | 896 | sub check { |
114bafba GS |
897 | print "ok1\n" if warnings::enabled() ; |
898 | print "ok2\n" if warnings::enabled("io") ; | |
899 | print "ok3\n" if warnings::enabled("all") ; | |
900 | } | |
901 | 1; | |
a95b6808 JH |
902 | --FILE-- |
903 | use abc44 ; | |
904 | abc44::check() ; | |
114bafba GS |
905 | EXPECT |
906 | ok1 | |
907 | ok2 | |
908 | ok3 | |
909 | ######## | |
910 | -w | |
a95b6808 JH |
911 | --FILE-- abc45.pm |
912 | package abc45 ; | |
114bafba GS |
913 | no warnings ; |
914 | use warnings::register ; | |
a95b6808 | 915 | sub check { |
114bafba GS |
916 | print "ok1\n" if !warnings::enabled() ; |
917 | print "ok2\n" if !warnings::enabled("io") ; | |
918 | print "ok3\n" if !warnings::enabled("all") ; | |
919 | } | |
920 | 1; | |
a95b6808 JH |
921 | --FILE-- |
922 | use abc45 ; | |
923 | use warnings 'abc45'; | |
114bafba | 924 | no warnings ; |
a95b6808 | 925 | abc45::check() ; |
114bafba GS |
926 | EXPECT |
927 | ok1 | |
928 | ok2 | |
929 | ok3 | |
930 | ######## | |
931 | ||
a95b6808 JH |
932 | --FILE-- abc46.pm |
933 | package abc46 ; | |
114bafba GS |
934 | no warnings ; |
935 | use warnings::register ; | |
a95b6808 | 936 | sub check { |
114bafba GS |
937 | print "ok1\n" if !warnings::enabled() ; |
938 | print "ok2\n" if !warnings::enabled("io") ; | |
939 | print "ok3\n" if !warnings::enabled("all") ; | |
7e6d00f8 | 940 | warnings::warnif("my message 1") ; |
a95b6808 | 941 | warnings::warnif('abc46', "my message 2") ; |
7e6d00f8 PM |
942 | warnings::warnif('io', "my message 3") ; |
943 | warnings::warnif('all', "my message 4") ; | |
114bafba GS |
944 | } |
945 | 1; | |
a95b6808 JH |
946 | --FILE-- |
947 | use abc46 ; | |
948 | use warnings 'abc46'; | |
114bafba GS |
949 | no warnings ; |
950 | BEGIN { $^W = 1 ; } | |
a95b6808 | 951 | abc46::check() ; |
114bafba GS |
952 | EXPECT |
953 | ok1 | |
954 | ok2 | |
955 | ok3 | |
956 | ######## | |
957 | ||
a95b6808 JH |
958 | --FILE-- abc47.pm |
959 | package abc47 ; | |
114bafba GS |
960 | no warnings ; |
961 | use warnings::register ; | |
a95b6808 | 962 | sub check { |
114bafba GS |
963 | print "ok1\n" if !warnings::enabled() ; |
964 | print "ok2\n" if !warnings::enabled("io") ; | |
965 | print "ok3\n" if !warnings::enabled("all") ; | |
966 | } | |
967 | 1; | |
a95b6808 JH |
968 | --FILE-- |
969 | use abc47 ; | |
970 | use warnings 'abc47'; | |
114bafba GS |
971 | no warnings ; |
972 | $^W = 1 ; | |
a95b6808 | 973 | abc47::check() ; |
114bafba GS |
974 | EXPECT |
975 | ok1 | |
976 | ok2 | |
977 | ok3 | |
7e6d00f8 PM |
978 | ######## |
979 | ||
a95b6808 | 980 | --FILE-- abc48.pm |
a781f7c3 | 981 | $| = 1; |
a95b6808 | 982 | package abc48 ; |
7e6d00f8 PM |
983 | no warnings ; |
984 | use warnings::register ; | |
a95b6808 | 985 | sub check { |
7e6d00f8 PM |
986 | print "ok1\n" if warnings::enabled() ; |
987 | print "ok2\n" if !warnings::enabled("io") ; | |
988 | print "ok3\n" if !warnings::enabled("all") ; | |
a95b6808 | 989 | print "ok4\n" if warnings::enabled("abc48") ; |
7e6d00f8 PM |
990 | warnings::warn("my message 1") ; |
991 | warnings::warnif("my message 2") ; | |
a95b6808 | 992 | warnings::warnif('abc48', "my message 3") ; |
7e6d00f8 PM |
993 | warnings::warnif('io', "my message 4") ; |
994 | warnings::warnif('all', "my message 5") ; | |
995 | } | |
996 | sub in2 { no warnings ; check() } | |
997 | sub in1 { no warnings ; in2() } | |
998 | 1; | |
a95b6808 JH |
999 | --FILE-- |
1000 | use abc48 ; | |
1001 | use warnings 'abc48'; | |
1002 | abc48::in1() ; | |
7e6d00f8 | 1003 | EXPECT |
7e6d00f8 PM |
1004 | ok1 |
1005 | ok2 | |
1006 | ok3 | |
1007 | ok4 | |
879b0cab Z |
1008 | my message 1 at - line 3. |
1009 | my message 2 at - line 3. | |
1010 | my message 3 at - line 3. | |
7e6d00f8 PM |
1011 | ######## |
1012 | ||
1013 | --FILE-- def.pm | |
1014 | package def ; | |
1015 | no warnings ; | |
1016 | use warnings::register ; | |
a95b6808 | 1017 | sub check { |
7e6d00f8 PM |
1018 | print "ok1\n" if warnings::enabled() ; |
1019 | print "ok2\n" if !warnings::enabled("io") ; | |
1020 | print "ok3\n" if !warnings::enabled("all") ; | |
1021 | print "ok4\n" if warnings::enabled("def") ; | |
1022 | warnings::warn("my message 1") ; | |
1023 | warnings::warnif("my message 2") ; | |
1024 | warnings::warnif('def', "my message 3") ; | |
1025 | warnings::warnif('io', "my message 4") ; | |
1026 | warnings::warnif('all', "my message 5") ; | |
1027 | } | |
1028 | sub in2 { no warnings ; check() } | |
1029 | sub in1 { no warnings ; in2() } | |
1030 | 1; | |
a95b6808 | 1031 | --FILE-- abc49.pm |
a781f7c3 | 1032 | $| = 1; |
a95b6808 | 1033 | package abc49 ; |
7e6d00f8 PM |
1034 | use def ; |
1035 | use warnings 'def'; | |
1036 | sub in1 { def::in1() ; } | |
1037 | 1; | |
a95b6808 JH |
1038 | --FILE-- |
1039 | use abc49 ; | |
7e6d00f8 | 1040 | no warnings; |
a95b6808 | 1041 | abc49::in1() ; |
7e6d00f8 | 1042 | EXPECT |
7e6d00f8 PM |
1043 | ok1 |
1044 | ok2 | |
1045 | ok3 | |
1046 | ok4 | |
879b0cab Z |
1047 | my message 1 at abc49.pm line 5. |
1048 | my message 2 at abc49.pm line 5. | |
1049 | my message 3 at abc49.pm line 5. | |
7e6d00f8 PM |
1050 | ######## |
1051 | ||
1052 | --FILE-- def.pm | |
a781f7c3 | 1053 | $| = 1; |
7e6d00f8 PM |
1054 | package def ; |
1055 | no warnings ; | |
1056 | use warnings::register ; | |
1057 | require Exporter; | |
1058 | @ISA = qw( Exporter ) ; | |
1059 | @EXPORT = qw( in1 ) ; | |
a95b6808 | 1060 | sub check { |
7e6d00f8 PM |
1061 | print "ok1\n" if warnings::enabled() ; |
1062 | print "ok2\n" if !warnings::enabled("io") ; | |
1063 | print "ok3\n" if !warnings::enabled("all") ; | |
a95b6808 | 1064 | print "ok4\n" if warnings::enabled("abc50") ; |
7e6d00f8 PM |
1065 | print "ok5\n" if !warnings::enabled("def") ; |
1066 | warnings::warn("my message 1") ; | |
1067 | warnings::warnif("my message 2") ; | |
a95b6808 | 1068 | warnings::warnif('abc50', "my message 3") ; |
7e6d00f8 PM |
1069 | warnings::warnif('def', "my message 4") ; |
1070 | warnings::warnif('io', "my message 5") ; | |
1071 | warnings::warnif('all', "my message 6") ; | |
1072 | } | |
1073 | sub in2 { no warnings ; check() } | |
1074 | sub in1 { no warnings ; in2() } | |
1075 | 1; | |
a95b6808 JH |
1076 | --FILE-- abc50.pm |
1077 | package abc50 ; | |
7e6d00f8 PM |
1078 | use warnings::register ; |
1079 | use def ; | |
1080 | #@ISA = qw(def) ; | |
1081 | 1; | |
a95b6808 JH |
1082 | --FILE-- |
1083 | use abc50 ; | |
7e6d00f8 | 1084 | no warnings; |
a95b6808 JH |
1085 | use warnings 'abc50'; |
1086 | abc50::in1() ; | |
7e6d00f8 | 1087 | EXPECT |
7e6d00f8 PM |
1088 | ok2 |
1089 | ok3 | |
1090 | ok4 | |
1091 | ok5 | |
879b0cab Z |
1092 | my message 1 at - line 4. |
1093 | my message 3 at - line 4. | |
7e6d00f8 PM |
1094 | ######## |
1095 | ||
1096 | --FILE-- def.pm | |
1097 | package def ; | |
1098 | no warnings ; | |
1099 | use warnings::register ; | |
1100 | ||
1101 | sub new | |
1102 | { | |
1103 | my $class = shift ; | |
1104 | bless [], $class ; | |
1105 | } | |
1106 | ||
a95b6808 JH |
1107 | sub check |
1108 | { | |
7e6d00f8 PM |
1109 | my $self = shift ; |
1110 | print "ok1\n" if !warnings::enabled() ; | |
1111 | print "ok2\n" if !warnings::enabled("io") ; | |
1112 | print "ok3\n" if !warnings::enabled("all") ; | |
a95b6808 | 1113 | print "ok4\n" if warnings::enabled("abc51") ; |
7e6d00f8 PM |
1114 | print "ok5\n" if !warnings::enabled("def") ; |
1115 | print "ok6\n" if warnings::enabled($self) ; | |
1116 | ||
1117 | warnings::warn("my message 1") ; | |
1118 | warnings::warn($self, "my message 2") ; | |
1119 | ||
1120 | warnings::warnif("my message 3") ; | |
a95b6808 | 1121 | warnings::warnif('abc51', "my message 4") ; |
7e6d00f8 PM |
1122 | warnings::warnif('def', "my message 5") ; |
1123 | warnings::warnif('io', "my message 6") ; | |
1124 | warnings::warnif('all', "my message 7") ; | |
1125 | warnings::warnif($self, "my message 8") ; | |
1126 | } | |
a95b6808 | 1127 | sub in2 |
7e6d00f8 | 1128 | { |
a95b6808 | 1129 | no warnings ; |
7e6d00f8 PM |
1130 | my $self = shift ; |
1131 | $self->check() ; | |
1132 | } | |
a95b6808 JH |
1133 | sub in1 |
1134 | { | |
7e6d00f8 PM |
1135 | no warnings ; |
1136 | my $self = shift ; | |
1137 | $self->in2(); | |
1138 | } | |
1139 | 1; | |
a95b6808 | 1140 | --FILE-- abc51.pm |
a781f7c3 | 1141 | $| = 1; |
a95b6808 | 1142 | package abc51 ; |
7e6d00f8 PM |
1143 | use warnings::register ; |
1144 | use def ; | |
1145 | @ISA = qw(def) ; | |
1146 | sub new | |
1147 | { | |
1148 | my $class = shift ; | |
1149 | bless [], $class ; | |
1150 | } | |
1151 | ||
1152 | 1; | |
a95b6808 JH |
1153 | --FILE-- |
1154 | use abc51 ; | |
7e6d00f8 | 1155 | no warnings; |
a95b6808 JH |
1156 | use warnings 'abc51'; |
1157 | $a = new abc51 ; | |
7e6d00f8 PM |
1158 | $a->in1() ; |
1159 | print "**\n"; | |
1160 | $b = new def ; | |
1161 | $b->in1() ; | |
1162 | EXPECT | |
7e6d00f8 PM |
1163 | ok1 |
1164 | ok2 | |
1165 | ok3 | |
1166 | ok4 | |
1167 | ok5 | |
1168 | ok6 | |
879b0cab Z |
1169 | my message 1 at - line 5. |
1170 | my message 2 at - line 5. | |
1171 | my message 4 at - line 5. | |
1172 | my message 8 at - line 5. | |
7e6d00f8 PM |
1173 | ** |
1174 | ok1 | |
1175 | ok2 | |
1176 | ok3 | |
1177 | ok4 | |
1178 | ok5 | |
879b0cab Z |
1179 | my message 1 at - line 8. |
1180 | my message 2 at - line 8. | |
1181 | my message 4 at - line 8. | |
4f527b71 AS |
1182 | ######## |
1183 | ||
572bfd36 RS |
1184 | --FILE-- abc52.pm |
1185 | package abc52 ; | |
1186 | use warnings::register ('foo', 'bar'); | |
1187 | sub check { | |
1188 | warnings::warnif('abc52', "hello"); | |
1189 | warnings::warnif('abc52::foo', "hello foo"); | |
1190 | warnings::warnif('abc52::bar', "hello bar"); | |
1191 | } | |
1192 | 1; | |
1193 | --FILE-- | |
1194 | use abc52; | |
1195 | use warnings("abc52", "abc52::bar"); | |
1196 | abc52::check() ; | |
1197 | EXPECT | |
879b0cab Z |
1198 | hello at - line 3. |
1199 | hello bar at - line 3. | |
572bfd36 RS |
1200 | ######## |
1201 | ||
4f527b71 AS |
1202 | --FILE-- |
1203 | # test for bug [perl #15395] | |
1204 | my ( $warn_cat, # warning category we'll try to control | |
1205 | $warn_msg, # the error message to catch | |
1206 | ); | |
1207 | ||
1208 | package SomeModule; | |
1209 | use warnings::register; | |
1210 | ||
1211 | BEGIN { | |
1212 | $warn_cat = __PACKAGE__; | |
1213 | $warn_msg = 'from ' . __PACKAGE__; | |
1214 | } | |
1215 | ||
1216 | # a sub that generates a random warning | |
1217 | sub gen_warning { | |
1218 | warnings::warnif( $warn_msg ); | |
1219 | } | |
1220 | ||
1221 | package ClientModule; | |
1222 | # use SomeModule; (would go here) | |
1223 | our @CARP_NOT = ( $warn_cat ); # deliver warnings to *our* client | |
1224 | ||
1225 | # call_warner provokes a warning. It is delivered to its caller, | |
1226 | # who should also be able to control it | |
1227 | sub call_warner { | |
1228 | SomeModule::gen_warning(); | |
1229 | } | |
1230 | ||
1231 | # user | |
1232 | ||
1233 | package main; | |
1234 | my $warn_line = __LINE__ + 3; # this line should be in the error message | |
1235 | eval { | |
1236 | use warnings FATAL => $warn_cat; # we want to know if this works | |
1237 | ClientModule::call_warner(); | |
1238 | }; | |
1239 | ||
1240 | # have we caught an error, and is it the one we generated? | |
1241 | print "ok1\n" if $@ =~ /$warn_msg/; | |
1242 | ||
1243 | # does it indicate the right line? | |
a95b6808 | 1244 | print "ok2\n" if $@ =~ /line $warn_line/; |
4f527b71 AS |
1245 | EXPECT |
1246 | ok1 | |
1247 | ok2 | |
68a00014 AR |
1248 | ######## |
1249 | ||
1250 | --FILE-- fatal1.pm | |
1251 | package fatal1 ; | |
1252 | no warnings ; | |
1253 | print "ok1\n" if !warnings::fatal_enabled('all') ; | |
1254 | print "ok2\n" if !warnings::fatal_enabled("syntax") ; | |
1255 | 1; | |
1256 | --FILE-- | |
1257 | use fatal1 ; | |
1258 | EXPECT | |
1259 | ok1 | |
1260 | ok2 | |
1261 | ######## | |
1262 | ||
1263 | --FILE-- fatal2.pm | |
1264 | package fatal2; | |
1265 | no warnings ; | |
1266 | print "ok1\n" if !warnings::fatal_enabled('all') ; | |
1267 | print "ok2\n" if warnings::fatal_enabled("syntax") ; | |
1268 | 1; | |
1269 | --FILE-- | |
1270 | use warnings FATAL => 'syntax' ; | |
1271 | use fatal2 ; | |
1272 | EXPECT | |
1273 | ok1 | |
1274 | ok2 | |
1275 | ######## | |
1276 | ||
1277 | --FILE-- fatal3.pm | |
1278 | package fatal3 ; | |
1279 | no warnings ; | |
1280 | print "ok1\n" if warnings::fatal_enabled('all') ; | |
1281 | print "ok2\n" if warnings::fatal_enabled("syntax") ; | |
1282 | 1; | |
1283 | --FILE-- | |
1284 | use warnings FATAL => 'all' ; | |
1285 | use fatal3 ; | |
1286 | EXPECT | |
1287 | ok1 | |
1288 | ok2 | |
1289 | ######## | |
1290 | ||
1291 | --FILE-- fatal4.pm | |
1292 | package fatal4 ; | |
1293 | no warnings ; | |
1294 | print "ok1\n" if !warnings::fatal_enabled('all') ; | |
1295 | print "ok2\n" if warnings::fatal_enabled("void") ; | |
1296 | print "ok3\n" if !warnings::fatal_enabled("syntax") ; | |
1297 | 1; | |
1298 | --FILE-- | |
1299 | use warnings FATAL => 'all', NONFATAL => 'syntax' ; | |
1300 | use fatal4 ; | |
1301 | EXPECT | |
1302 | ok1 | |
1303 | ok2 | |
1304 | ok3 |