xref: /openbsd-src/gnu/usr.bin/perl/t/lib/mypragma.t (revision 43003dfe3ad45d1698bed8a37f2b0f5b14f20d4f)
1#!./perl
2
3BEGIN {
4    chdir 't';
5    @INC = ('../lib', 'lib');
6}
7
8use strict;
9use warnings;
10use Test::More tests => 14;
11
12use mypragma (); # don't enable this pragma yet
13
14BEGIN {
15   is($^H{mypragma}, undef, "Shouldn't be in %^H yet");
16}
17
18is(mypragma::in_effect(), undef, "pragma not in effect yet");
19{
20    is(mypragma::in_effect(), undef, "pragma not in effect yet");
21    eval qq{is(mypragma::in_effect(), undef, "pragma not in effect yet"); 1}
22	or die $@;
23
24    use mypragma;
25    use Sans_mypragma;
26    is(mypragma::in_effect(), 42, "pragma is in effect within this block");
27    is(Sans_mypragma::affected(), undef,
28	"pragma not in effect outside this file");
29    eval qq{is(mypragma::in_effect(), 42,
30	       "pragma is in effect within this eval"); 1} or die $@;
31
32    {
33      no mypragma;
34      is(mypragma::in_effect(), 0, "pragma no longer in effect");
35      eval qq{is(mypragma::in_effect(), 0, "pragma no longer in effect"); 1}
36	or die $@;
37    }
38
39    is(mypragma::in_effect(), 42, "pragma is in effect within this block");
40    eval qq{is(mypragma::in_effect(), 42,
41	       "pragma is in effect within this eval"); 1} or die $@;
42}
43is(mypragma::in_effect(), undef, "pragma no longer in effect");
44eval qq{is(mypragma::in_effect(), undef, "pragma not in effect"); 1} or die $@;
45
46
47BEGIN {
48   is($^H{mypragma}, undef, "Should no longer be in %^H");
49}
50