File: 001-strict-and-warnings.t

package info (click to toggle)
libmouse-perl 2.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,156 kB
  • sloc: perl: 14,569; ansic: 218; makefile: 8
file content (40 lines) | stat: -rw-r--r-- 760 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env perl
use Test::More;

my $id = 0;
foreach my $mod (qw(Mouse Mouse::Role Mouse::Exporter)){
    $id++;
    eval qq{
        no strict;
        no warnings;

        package Class$id;
        use $mod;

        my \$foo = 'foo';
        chop \$\$foo;
    };
    like $@, qr/Can't use string \("foo"\) as a SCALAR ref while "strict refs" in use /, # '
      "using $mod turns on strictures";

    my @warnings;
    local $SIG{__WARN__} = sub {
        push @warnings, @_;
    };

    $id++;
    eval qq{
        no strict;
        no warnings;

        package Class$id;
        use $mod;

        my \$one = 1 + undef;
    };
    is $@, '';

    like("@warnings", qr/^Use of uninitialized value/, "using $mod turns on warnings");
}

done_testing;