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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
#! /usr/bin/perl
use strict;
use warnings;
use Test::More;
use Log::Any '$log';
use FindBin;
use lib "$FindBin::Bin/lib";
use TestLogging;
$SIG{__DIE__}= $SIG{__WARN__}= sub { diag @_; };
note "default filter level";
subtest initialization => sub {
my @warnings;
local $SIG{__WARN__}= sub { push @warnings, $_[0] };
use_ok( 'Log::Any::Adapter', 'TAP' ) || BAIL_OUT;
is( scalar @warnings, 0, "No warnings" )
or do { diag("got warning: $_") for @warnings };
};
my $buf;
subtest 'Default filter level' => sub {
test_log_method($log, @$_) for (
# method, message, pattern
[ 'fatal', 'test-fatal', '', qr/\s*# fatal: test-fatal\n/ ],
[ 'error', 'test-error', '', qr/\s*# error: test-error\n/ ],
[ 'warning', 'test-warning', '', qr/\s*# warning: test-warning\n/ ],
[ 'notice', 'test-notice', qr/\s*# notice: test-notice\n/, '' ],
[ 'info', 'test-info', qr/\s*# test-info\n/, '' ],
[ 'debug', 'test-debug', '', '' ],
[ 'trace', 'test-trace', '', '' ],
[ 'info', "line 1\nline 2", qr/\s*# line 1\n\s*#\s+line 2\n/, '' ],
[ 'info', "line 1\nline 2\n", qr/\s*# line 1\n\s*#\s+line 2\n/, '' ],
);
};
subtest "filter level 'error'" => sub {
Log::Any::Adapter->set('TAP', filter => 'error');
test_log_method($log, @$_) for (
# method, message, pattern
[ 'fatal', 'test-fatal', '', qr/\s*# fatal: test-fatal\n/ ],
[ 'error', 'test-error', '', '' ],
[ 'warning', 'test-warning', '', '' ],
[ 'notice', 'test-notice', '', '' ],
[ 'info', 'test-info', '', '' ],
[ 'debug', 'test-debug', '', '' ],
[ 'trace', 'test-trace', '', '' ],
);
};
subtest "filter level 'trace'" => sub {
Log::Any::Adapter->set('TAP', filter => 'trace');
test_log_method($log, @$_) for (
# method, message, pattern
[ 'fatal', 'test-fatal', '', qr/\s*# fatal: test-fatal\n/ ],
[ 'error', 'test-error', '', qr/\s*# error: test-error\n/ ],
[ 'warning', 'test-warning', '', qr/\s*# warning: test-warning\n/ ],
[ 'notice', 'test-notice', qr/\s*# notice: test-notice\n/, '' ],
[ 'info', 'test-info', qr/\s*# test-info\n/, '' ],
[ 'debug', 'test-debug', qr/\s*# debug: test-debug\n/, '' ],
[ 'trace', 'test-trace', '', '' ],
);
};
subtest "filter level 'none'" => sub {
Log::Any::Adapter->set('TAP', filter => 'none');
test_log_method($log, @$_) for (
# method, message, pattern
[ 'fatal', 'test-fatal', '', qr/\s*# fatal: test-fatal\n/ ],
[ 'error', 'test-error', '', qr/\s*# error: test-error\n/ ],
[ 'warning', 'test-warning', '', qr/\s*# warning: test-warning\n/ ],
[ 'notice', 'test-notice', qr/# notice: test-notice\n/, '' ],
[ 'info', 'test-info', qr/# test-info\n/, '' ],
[ 'debug', 'test-debug', qr/# debug: test-debug\n/, '' ],
[ 'trace', 'test-trace', qr/# trace: test-trace\n/, '' ],
);
};
subtest "filter level 'all'" => sub {
Log::Any::Adapter->set('TAP', filter => 'all');
test_log_method($log, @$_) for (
# method, message, pattern
[ 'emergency', 'test-emerg', '', '' ],
[ 'critical', 'test-crit', '', '' ],
[ 'fatal', 'test-fatal', '', '' ],
[ 'error', 'test-error', '', '' ],
[ 'warning', 'test-warning', '', '' ],
[ 'notice', 'test-notice', '', '' ],
[ 'info', 'test-info', '', '' ],
[ 'debug', 'test-debug', '', '' ],
[ 'trace', 'test-trace', '', '' ],
);
};
done_testing;
|